【发布时间】:2012-02-03 09:25:02
【问题描述】:
我们的客户遇到了一些数据不一致的问题,我们向他们提出了修复问题的查询。
现在在运行查询之前,客户要求我提供一个查询,该查询将提供运行该查询所需的临时空间。这实际上很重要,因为此查询可能会影响表中的许多条目。
这是我发送给他们以解决他们的问题的查询:
declare
cursor cur is select distinct SEQID from D_LEAD where SEQID IN( SELECT SEQID FROM D_LEAD WHERE CURR_FLAG = 1 GROUP BY
SEQID HAVING COUNT(SEQID) >1);
seq NUMBER;
begin
open cur;
loop
fetch cur into seq;
update D_LEAD set CURR_FLAG = 0 where LEAD_ID IN (SELECT LEAD_ID FROM D_LEAD WHERE ((LEAD_ID != (SELECT MAX(LEAD_ID) FROM D_LEAD WHERE SEQID=seq)) AND SEQID=seq));
exit when cur%NOTFOUND;
end loop;
close cur;
commit;
end;
感谢您的帮助!
【问题讨论】:
-
为什么这个问题用java标记?
-
sry 我通常在java上工作并默认添加它
-
即使是像
SELECT LEAD_ID FROM D_LEAD这样的简单查询,我也希望得到答复
标签: sql database oracle sql-execution-plan