注册
脚本分享:insert_from_select迁移批量提交脚本
技术分享/ 文章详情 /

脚本分享:insert_from_select迁移批量提交脚本

鱼塘顽主 2022/06/30 1924 0 0

使用场景:需要根据已有表快速复制测试表或迁移表,代替insert into … from select …的场景。

SET SERVEROUTPUT ON
DECLARE
loop_count number:=1;
CURSOR course_cur
IS
/* 原表查询SQL */
SELECT * FROM t_1;
TYPE rec IS TABLE OF sysdba.t_1%ROWTYPE;
cur_result rec;
BEGIN
OPEN course_cur;
WHILE (TRUE) LOOP
  /* 限制每次查询提交条数 */
  FETCH course_cur BULK COLLECT INTO cur_result LIMIT 10;
  FOR i IN 1 .. cur_result.COUNT LOOP
    /* 批量循环INSERT,自行修改 */
    insert into t_2(c1) values(cur_result(i).c1);
  END LOOP;
  COMMIT;
  DBMS_OUTPUT.PUT_LINE(now(3)||' Cycle-Index: '||loop_count);
  loop_count:=loop_count+1;
  EXIT WHEN course_cur%NOTFOUND;
END LOOP;
CLOSE course_cur;
DBMS_OUTPUT.PUT_LINE('Complete !');
END;
/
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服