Snowflake存储过程编写报错求助:SQL编译语法错误排查
Snowflake存储过程SQL编译错误排查
我是Snowflake新手,正在使用Snow Scripting编写存储过程,但遇到了SQL编译错误,恳请协助排查问题。
我的存储过程代码如下:
create or replace procedure test_procedure(p_dob date) returns varchar language sql as declare v_age NUMBER; begin v_age := datediff(year, p_dob, current_date); return 'Your age is '||v_age::varchar; end;
报错信息为:SQL编译错误:第6行第17位出现语法错误,意外的空字符。
问题原因及解决方案
问题出在存储过程主体未使用分隔符包裹。Snowflake的SQL语言存储过程要求用分隔符(如$$)界定as之后的存储过程逻辑,否则数据库会错误解析declare关键字,引发语法错误。
修正后的代码如下:
create or replace procedure test_procedure(p_dob date) returns varchar language sql as $$ declare v_age NUMBER; begin v_age := datediff(year, p_dob, current_date); return 'Your age is '||v_age::varchar; end; $$;
内容的提问来源于stack exchange,提问作者Yanki141
相关产品推荐
相关产品推荐

