Oracle快速拷贝数据

游标拷贝数据

根据条件进行数据拷贝

-- 游标方式拷贝数据
DECLARE
CURSOR cur IS
SELECT * FROM JACKPOT WHERE TO_CHAR(JACKPOT.CREATE_TIME,'yyyy-mm-dd') >= '2021-08-01' AND TO_CHAR(JACKPOT.CREATE_TIME,'yyyy-mm-dd') <= '2021-08-23';--定义游标(aa换成你自己表名)
TYPE rec IS TABLE OF JACKPOT%ROWTYPE;--定义类型(这里的aa也要替换成你自己表名)
recs rec;
BEGIN
OPEN cur; --打开游标
WHILE (TRUE) LOOP --循环条件
FETCH cur BULK COLLECT --取游标里的值
INTO recs LIMIT 10000; --提交条件,每10000条提交
FORALL i IN 1 .. recs.COUNT --这个是个计数器,用来确保提交的条数,也是循环
INSERT INTO JACKPOT_6 VALUES recs (i);--插入目标表(bb替换成你目标表名)
COMMIT; --提交
EXIT WHEN cur%NOTFOUND;--游标结束条件
END LOOP; --停止循环
CLOSE cur;--关闭游标
END;

 

posted @ 2022-02-22 16:53  阿尔法哲  阅读(219)  评论(0编辑  收藏  举报