按块提交抽取数据

CREATE OR REPLACE PROCEDURE SP_DM_OUTPAT_FEE_DOC_D_3 AS
CURSOR cur IS
        SELECT *
                FROM CDINFO.CLINIC_CLASS_DICT@zyhdc236;

      TYPE rec IS TABLE OF CDINFO.CLINIC_CLASS_DICT@zyhdc236%ROWTYPE;
  recs rec;     -- --- 声明需要集合类型及变量,参照字段的 type 来声明类型 
    BEGIN
     OPEN cur;
      WHILE (TRUE) LOOP
        FETCH cur BULK COLLECT    ---游标逐行获取,按块收集
         INTO recs LIMIT 100;           ----recs 相当于一个容器
       FORALL i IN 1 .. recs.COUNT              --遍历集合
         INSERT INTO CDINFO.CLINIC_CLASS_DICT VALUES recs (i);---i表示所有行数
       COMMIT;
       EXIT WHEN cur%NOTFOUND;  ----没找到数据退出 ,否则死循环
     END LOOP;
     CLOSE cur;
   END;

异构

CREATE OR REPLACE PROCEDURE SP_DM_OUTPAT_FEE_DOC_D_3 AS
CURSOR cur IS
        SELECT org_code,
item_class,
item_class_name,
upper_class,
sysdate,
null
 FROM CDINFO.CLINIC_CLASS_DICT@zyhdc236;

      TYPE rec IS TABLE OF CDINFO.CLINIC_CLASS_DICT@zyhdc236%ROWTYPE;
  recs rec;     -- --- 声明需要集合类型及变量,参照字段的 type 来声明类型 
    BEGIN
     OPEN cur;
      WHILE (TRUE) LOOP
        FETCH cur BULK COLLECT    ---游标逐行获取,按块收集
         INTO recs LIMIT 100;           ----recs 相当于一个容器
       FORALL i IN 1 .. recs.COUNT              --遍历集合
         INSERT INTO CDINFO.CLINIC_CLASS_DICT(a, 
b, 
c, 
d, 
e, 
f
) VALUES(sys_guid(),
 recs (i).item_class,
  recs (i).item_class_name,
   recs (i).upper_class,
 sysdate,
    null



);---i表示所有行数
       COMMIT;
       EXIT WHEN cur%NOTFOUND;  ----没找到数据退出 ,否则死循环
     END LOOP;
     CLOSE cur;
   END;
-------------------------------------------------------------------------
## 极客时间全网最便宜最优惠购买方式,优惠券返现 百度网盘 微信关注公众号“选门好课”
扫描下方二维码关注我的公众号"选门好课",与我一起交流知识
原文地址:https://www.cnblogs.com/singworld/p/12206955.html