关联更新的过程
方法一:
update b_f_evt_dep_sae2007 PARTITION(P_200709) a
set (a.CM_OPP_ACCT_NO,a.SA_OP_CUST_NAME,a.SA_OP_BANK_NO)=
(select b.SA_OP_ACCT_NO_32,b.SA_OP_CUST_NAME,b.SA_OP_BANK_NO
from SAETXETX_2007 partition(p_200709) b
where a.acct_no=b.SA_ACCT_NO
and a.SA_DDP_ACCT_NO_DET_N=b.SA_DDP_ACCT_NO_DET_N)
where exists
(select 1
from  SAETXETX_2007 partition(p_200709) b
where a.acct_no = b.SA_ACCT_NO
and a.SA_DDP_ACCT_NO_DET_N = b.SA_DDP_ACCT_NO_DET_N);
COMMIT;update语法大全
方法二:
select * from t1;
X          Y
---------- ----------
1        100
2        200
sys@ora10g> select * from t2;
X          Y
-
--------- ----------
1    1111111
sys@ora10g> update t1 set y = (select y from t2 where t1.x=t2.x) where x in ( select x from t2);
上语句等同下语句:
update t1
set t1.y=(select t2.y from t2 where t1.x=t2.x)
where exists (select '1' from t2 where t1.x=t2.x)
注意,在关联更新时,一定要制定更新的范围,否则会后果不堪设想,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。