You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DB2存储过程批量插入后返回ID数组的技术问询

DB2批量插入并返回生成ID的单列结果集存储过程实现

要实现批量插入多条记录并返回所有生成ID的单列结果集,直接利用DB2的FINAL TABLE特性就能解决问题——它可以捕获所有插入操作生成的记录ID,再通过游标返回这些数据即可。以下是修改后的完整存储过程代码:

CREATE OR REPLACE PROCEDURE INSERT_ITEMS (IN JSON_VALUE_IN CLOB(16777216))
LANGUAGE SQL
MODIFIES SQL DATA
BEGIN
    -- 定义游标,直接返回FINAL TABLE中捕获的所有ID
    DECLARE C2 CURSOR WITH RETURN FOR
        SELECT EVENTID AS EVENTID
        FROM FINAL TABLE (
            INSERT INTO ITEMS (TITLE)
            SELECT
                JSON_VAL(SYSTOOLS.JSON2BSON(ITEMS.value), 'title', 's:100')
            FROM
                TABLE(
                    SYSTOOLS.JSON_TABLE(SYSTOOLS.JSON2BSON(JSON_VALUE_IN), 'items', 's:32000')
                ) ITEMS
        );
    
    OPEN C2;
END
@

关键修改说明

  • 移除了原代码中硬编码的intEventId变量,直接通过FINAL TABLE获取插入操作生成的所有ID
  • 游标直接查询FINAL TABLE的结果,这样就能返回所有新插入记录的ID,形成单列结果集
  • FINAL TABLE会捕获INSERT操作产生的所有新记录,完美适配批量插入的场景

调用这个存储过程后,你会得到一列名为EVENTID的结果集,每一行对应一条新插入记录的生成ID。

内容的提问来源于stack exchange,提问作者Patters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 17:42:10