调用Snowflake存储过程报错:无效标识符'ID_1PAR'
Snowflake存储过程报错解决:invalid identifier 'ID_1PAR'
问题原因
Snowflake的SQL语言存储过程中,引用输入参数必须在参数名前加冒号(:)前缀,否则系统会将参数名当作普通表字段或标识符,而非存储过程的输入参数,进而抛出"invalid identifier"错误。
修正后的存储过程代码
CREATE OR REPLACE PROCEDURE PUBLIC.SP_BRANDS (ID_1PAR NUMBER(38,0), NOTESPAR VARCHAR(50), PRODUCTPAR VARCHAR(50), KPI1PAR NUMBER(38,0), KPI2PAR NUMBER(38,0)) RETURNS VARCHAR(50) LANGUAGE SQL EXECUTE AS OWNER AS ' BEGIN INSERT INTO BRANDS (ID_1, NOTES, PRODUCT, KPI1, KPI2) VALUES (:ID_1PAR, :NOTESPAR, :PRODUCTPAR, :KPI1PAR, :KPI2PAR); RETURN ''Insert Successful''; END; ';
关键修改说明
在INSERT语句的VALUES子句里,每个参数名前添加了冒号前缀(比如:ID_1PAR、:NOTESPAR),让Snowflake正确识别这些是存储过程的输入参数。
验证步骤
- 执行上述修正后的存储过程创建语句
- 用原调用语句执行:
CALL SP_BRANDS(123, 'Important note', 'New Product', 150, 75);
此时可正常插入数据并返回Insert Successful。
内容的提问来源于stack exchange,提问作者joseph madrinkian
相关产品推荐
相关产品推荐

