批量新增数据
INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name
批量更新数据
Update (select * from a,b where a.id=b.id)set a.name = b.name
如果是对a表字段更新,要求select中对b表的过滤字段必须有唯一约束
批量更新或插入数据
MERGE INTO products p
USING newproducts np
ON (p.product_id = np.product_id)
WHEN MATCHED THEN
UPDATE
SET p.product_name = np.product_name,
WHERE p.category = 'DVD'
WHEN NOT MATCHED THEN
INSERT VALUES (np.product_id, np.product_name)
WHERE np.category != 'BOOKS'
BULK COLLECT和forall
open detailRuleCursor;
loop
FETCH detailRuleCursor BULK COLLECT
INTO detailRuleList limit 500;
forall i in detailRuleList.FIRST .. detailRuleList.LAST
update C_DETAIL_RULE r
set r.actdatekey = detailRuleList(i).actdatekey, r.check_result = detailRuleList(i).result where rowid = detailRuleList(i).rowid;
commit;
exit when detailRuleCursor%notfound;
end loop;
close detailRuleCursor;
本文介绍如何使用SQL进行批量数据操作,包括新增、更新和插入等关键步骤。通过具体实例展示了不同场景下的操作方法,如利用MERGE语句实现批量更新或插入数据,以及通过BULK COLLECT和FORALL提高更新效率。
371

被折叠的 条评论
为什么被折叠?



