Snowflake自定义SQL函数出现编译语法错误,请求技术支持
Snowflake自定义SQL函数编译错误解决
错误原因
你指定了LANGUAGE SQL,但使用了DECLARE/BEGIN/END这类PL/SQL风格的代码块——Snowflake的SQL语言UDF不支持流程控制语法,只能直接写SQL表达式逻辑,这是导致语法错误的核心原因。
修正方案
方案1:简化逻辑(无变量需求)
如果仅需返回输入参数,直接去掉多余的块结构,写成纯SQL表达式:
CREATE OR REPLACE FUNCTION udf_concatenate_strings(originalcontent STRING) RETURNS STRING LANGUAGE SQL AS $$ originalcontent $$;
方案2:使用Snowflake Scripting(需变量处理)
如果确实需要用变量实现复杂逻辑,要改用Snowflake Scripting语法,添加EXECUTE AS CALLER(规范写法),同时确保块内包含返回语句:
CREATE OR REPLACE FUNCTION udf_concatenate_strings(originalcontent STRING) RETURNS STRING LANGUAGE SQL EXECUTE AS CALLER AS $$ DECLARE content STRING; BEGIN content := originalcontent; RETURN content; -- 必须明确返回结果 END; $$;
内容的提问来源于stack exchange,提问作者Suman
相关产品推荐
相关产品推荐

