我在这里错过了什么,为什么它在上下文中是无效的?
CREATE OR REPLACE PROCEDURE "TEST" ()
LANGUAGE SQL
SPECIFIC SQL220908110735859
BEGIN
declare c1 cursor for select * from xyzschema.table;
DECLARE GLOBAL TEMPORARY TABLE abc LIKE xyzschema.table;
open c1;
fetch c1 into abc;
END
错误:{0:0}“abc”在使用它的上下文中无效。SQLCODE= -206,SQLSTATE=42703,DRIVER=4.25.1301
主要任务是通过存储过程复制内容。Current Table
红色数据列已经存在。绿色数据列应该在复制之后建立。这表示应该复制识别码为 1 之数据列的内容。输入参数是 Table_A 的org_id(此处为 1)与tocopy_id(此处为 2),条件是型态应该是 A。
我的解决方案如下所示:
CREATE OR REPLACE PROCEDURE TEST
(IN org_id INT, IN tocopy_id INT)
LANGUAGE SQL
SPECIFIC SQL220909154402272
BEGIN
--copy contents of Table_B
FOR v AS cur1 CURSOR FOR
select * from TABLE_B where Table_A_Ref = org_id JOIN TABLE_A table_a On Table_A_Ref = table_a.id Where table_a.type = 'A'
DO
--Pk is auto generated
INSERT INTO TABLE_B VALUES (tocopy_id, v.name_1, v.name_2);
END FOR;
--copy contents of Table_C
END
1条答案
按热度按时间hzbexzde1#
您可以按原样试用。
使用DGTT存储SELECT的结果。
提取到行变量中。