如何找到处理哪些记录以及哪些记录未处理?
示例:
update oppar
set oppar_run_mode = 0,
oppar_run_time = 0,
oppar_interval_ind = 'N' ,
oppar_destination = '',
oppar_run_date ='',
oppar_run_interval=''
where (oppar_job_name = oppar_job_rec) and (oppar_job_rec in
(
'CSCLM',
'ARCLEVEXT',
'ARCLEVUPD',
'ARCLSAEXT',
'ARCLSACA',
'ARCLSACL',
'ARCLSAAG',
'ARCLSAGN',
'ARCLSAWO',
'ARCLSALN',
'ARCLSASU',
'ARCLSACBL',))
如果我更新了两行。特别是 我想要没有更新的oppar_job_rec(CLCLM,ARCLEVEXT等)的确切名称。
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
答案 0 :(得分:4)
您可以考虑使用RETURNING INTO
子句。这是我进行的一项小测试。
create table test3 (
flag1 VARCHAR2(2),
id NUMBER
);
insert into test3 values ('A', 1);
insert into test3 values ('A', 2);
insert into test3 values ('A', 3);
insert into test3 values ('A', 4);
insert into test3 values ('B', 5);
更新我的问题是:
update test3 set id = id +10
where flag1 = 'A'
这将更新4行。
PL / SQL块下面返回4个更新行的flag1
列:
DECLARE
TYPE vat is table of varchar2(2) index by pls_integer;
vatt vat;
begin
update test3 set id = id +10
where flag1 = 'A'
RETURNING flag1 BULK COLLECT INTO vatt;
FOR IDX IN VATT.first .. VATT.LAST
loop
DBMS_OUTPUT.PUT_LINE(VATT(IDX));
END LOOP;
END;
结果显示:
A
A
A
A
答案 1 :(得分:0)
您还可以考虑审核,但会增加额外费用。 在此doc
之后