-------批量新增---------
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表的相等)
oracle批量更新操作
專案問題是這樣的,有一張表tb user market使用者記錄繫結使用者,一開始沒有欄位system date,後來新加的,該欄位使用者記錄使用者繫結的時間 還有一張表tb log user market 裡面記錄的是使用者的繫結歷史資訊,可能有重複的使用者記錄,即使用者先繫結後解綁又繫結的情況,...
oracle批量提交
create or replace procedure p cust bossorder sync is 存放t iiss boss order back是否存在 v tablecount number 2 0 定義變數 type v bossorder row is table of t cust...
Oracle批量更新
需求 將t2 t statbuf 表中id和t1 t mt 表相同的記錄更新進t1表。1.錯誤的寫法 1update table name t1 set a,b,c select a,b,c from table name 2 t2 where t1.a t2.a 這種寫法,會更新t1表中的所有行 ...