我正试图在Snowflake(Snowsight)中创建一个SQL存储过程,但它引发了运行时错误。无法确定问题所在。
我得到了这个错误:
标识符“C_KEY_REC.KEY_NM”无效
有人能帮忙吗?我是这方面的新手,必须使用SQL存储过程。没有从谷歌周围得到任何决议。
以下是我所拥有的一个模拟版本:
CREATE OR REPLACE TABLE KEY_TBL
(
key_nm VARCHAR
,key_val VARCHAR
,active_yn VARCHAR
);
INSERT INTO KEY_TBL(key_nm, key_val, active_yn )
VALUES
('KEY_NAME_1','KEY_VAL_1', 'Y')
,('KEY_NAME_2','KEY_VAL_2', 'Y')
;
CREATE OR REPLACE TABLE LOOP_CHK
(
key_nm VARCHAR
,key_val VARCHAR
);
CREATE OR REPLACE PROCEDURE SP_LOOP_TEST()
RETURNS VARCHAR
LANGUAGE SQL
AS
DECLARE
cur_key CURSOR FOR SELECT key_nm, key_val FROM KEY_TBL WHERE active_yn = 'Y' ORDER BY key_nm;
BEGIN
OPEN cur_key;
FOR c_key_rec IN cur_key
DO
INSERT INTO LOOP_CHK(key_nm, key_val)
VALUES(c_key_rec.key_nm, c_key_rec.key_val);
END FOR;
RETURN '1';
END;
;
CALL SP_LOOP_TEST();
无论有没有OPEN语句,我都尝试过。检查了Snowflake文档,也检查了这个网站和谷歌中的其他网站。但无法解决。