从存储过程向表中插入多行的最佳方式是什么?
EXEC SQL
INSERT INTO DSN8A10.ACT
(ACTNO, ACTKWD, ACTDESC)
VALUES (:HVA1, :HVA2, :HVA3)
FOR :NUM-ROWS ROWS
END-EXEC.
以上显然仅适用于z / os,但不适用于luw。有没有等价的?
答案 0 :(得分:1)
“DB2 9.x”有点过于宽泛。从DB2 9.7开始,您可以使用UNNEST()
table function,如下所示:
insert into ACT (ACTNO, ACTKWD, ACTDESC)
select ACTNO, ACTKWD, ACTDESC from unnest (V_ARR) as (ACTNO, ACTKWD, ACTDESC);
假设V_ARR
是一个包含“列”ACTNO
,ACTKWD
和ACTDESC
的行类型数组。