我想知道如何使用 SQL 使用 DB2 中的存储过程插入表中。我创建了一个表,如下所示:
create table ADCLIBT.Itest
(ITNBR CHAR(15) CCSID 65535 NOT NULL DEFAULT '');
此表包含项目列表。使用此列表,我想将各种其他字段插入另一个表。但是,为了举例,假设我只想使用游标一一插入这些值。我编写的存储过程如下:
create procedure ADCLIBT.itest1()
LANGUAGE SQL
BEGIN
DECLARE itemno char(15);
DECLARE END_TABLE INT DEFAULT 0;
DECLARE not_found CONDITION FOR SQLSTATE '20000';
DECLARE c CURSOR FOR
select ITNBR from ADCLIBT.ITEMAT;
DECLARE CONTINUE HANDLER FOR not_found
SET END_TABLE = 1;
open c;
fetch from c into itemno;
WHILE END_TABLE = 0 DO
insert into ADCLIBT.ITEST
(ITNBR)
values
(select a.ITNBR from ADCLIBT.ITEMAT a where ITNBR=itemno GROUP BY a.ITNBR);
END WHILE;
Close c;
END;
这给了我一个无限循环。谁能告诉我如何停止无限循环并插入这些记录。我想使用光标,因为我想进一步使用itemno
来比较并获得单个结果。