declare
CURSOR C1
IS select tgt.exp_date ,(src.eff_date - 1/(24*60*60))eff_date
from mira_rate tgt,mira_rate_dummy src
where src.tc_code = tgt.tc_code and src.carrier_code = tgt.carrier_code and tgt.exp_date is null for update of tgt.exp_date;
v_a date;
v_b date;
i number:=0;
begin
open c1;
loop
fetch c1 into v_a, v_b;
exit when c1%notfound;
update mira_rate
set exp_date =v_b where current of c1;
i:=i+1;
end loop;
dbms_output.put_line(i||' rows updated');
close c1;
commit;
end;
在我执行查询后,它正在锁定表说
ORA-00054: 资源繁忙并使用指定的 NOWAIT 获取
另外请告诉我如何删除我试图杀死它没有发生的会话的锁。但它说的一样
取下锁后。请清除我这个要求
select tgt.exp_date ,(src.eff_date - 1/(24*60*60))eff_date
from mira_rate tgt,mira_rate_dummy src
where src.tc_code = tgt.tc_code and src.carrier_code = tgt.carrier_code and tgt.exp_date is null;
它会返回行我需要转到 mira_rate 表需要更新 exp_date=eff_date。
请建议我如何使用 Oracle 9i 进行即时操作,以便在没有不匹配的情况下进行合并