暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库分批插入数据的脚本

WorkLifeRecords 2021-06-24
2100

最近在做OGG同步的时候发现,当一次性插入源表数据过多的时候,目标表同步会有延时。甚至同步失败的情况,所以,想到采用分批插入数据的方式来解决这个问题。

1、脚本如下:

    --分批提交脚本
    declare
    Type v_rowid is table of varchar2(100) index by binary_integer; --定义rowid类型
    var_rowid v_rowid; --定义rowid变量
    cursor v_cur is
    select ROWID FROM t3;
    BEGIN
    OPEN v_cur;
    loop
    FETCH v_cur BULK COLLECT
    INTO var_rowid LIMIT 5000;
    FORALL i IN 1 .. var_rowid.count
    insert into t2 select * from t3 where ROWID = var_rowid(i);
    COMMIT;
    EXIT WHEN v_cur%NOTFOUND OR v_cur%NOTFOUND IS NULL;
    END LOOP;
    CLOSE v_cur;
    end;
    复制

    2、脚本说明:

    脚本中t2表为插入的目标表,t3为源表。每次提交5000条数据。

    文章转载自WorkLifeRecords,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论