2015-10-22 70 views
1

从存储过程向表中插入多行的最佳方式是什么?DB2 LUW 9.X:存储过程中的多行插入

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

上面显然只在z/os中可用,但不在luw中。有没有相同的东西?

+0

从哪里插入行? –

+0

我的情况下,存储过程的数组参数 – Jayp

回答

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