-------批量新增---------
DECLARE
CURSOR cur IS
SELECT a.XH, a.ZYH, a.BJH, a.XM, a.XBM, a.SFZJH, a.CSRQ
FROM xsxxgl_xsjbxx a
WHERE not exists (SELECT 1 FROM zs_xsxx2 b WHERE a.xh = b.xsid); --定义游标
TYPE rec IS TABLE OF cur%ROWTYPE; --定义类型
recs rec;
BEGIN
OPEN cur; --打开游标
WHILE (TRUE) LOOP
--循环条件
FETCH cur BULK COLLECT --取游标里的值
INTO recs LIMIT 100; --提交条件,每100条提交
FORALL i IN 1 .. recs.COUNT --这个是个计数器,用来确保提交的条数,也是循环
INSERT INTO zs_xsxx2
(XSID, BDZY, BJDM, XM, XB, SFZH, CSRQ)
VALUES
(recs(i).XH,
recs(i).ZYH,
recs(i).BJH,
recs(i).XM,
recs(i).XBM,
recs(i).SFZJH,
recs(i).CSRQ); --插入目标表
COMMIT; --提交
EXIT WHEN cur%NOTFOUND; --游标结束条件
END LOOP; --停止循环
CLOSE cur; --关闭游标
END;
-----更新字段值---------
update (select T1.bjdm a, T2.bjh b, T1.bdzy c, T2.Zyh d
from zs_xsxx2 T1, xsxxgl_xsjbxx T2
where T1.xsid = T2.xh)
set a = b, c = d;
---批量新增
这是把A表中不存在B表的数据查询出来并且插入B表;
---更新字段
这是更新B表的两个字段值(即同步B表,使得B表的这两个字段值和A表的相等)