DB2 LUW 9.X:存储过程中的多行插入

时间:2015-10-22 10:53:03

标签: stored-procedures db2 db2-luw

从存储过程向表中插入多行的最佳方式是什么?

EXEC SQL
  INSERT INTO DSN8A10.ACT 
    (ACTNO, ACTKWD, ACTDESC)
    VALUES (:HVA1, :HVA2, :HVA3)
    FOR :NUM-ROWS ROWS
END-EXEC.

以上显然仅适用于z / os,但不适用于luw。有没有等价的?

1 个答案:

答案 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是一个包含“列”ACTNOACTKWDACTDESC的行类型数组。