Es ist möglich, Cursor innerhalb IF zu verwenden() Dann Bedingung? Ich versuchte den folgenden Code Aber es funktioniert .. jemand hilft mir, dies zu lösen?Cursor innerhalb IF() Dann
mein Code:
BEGIN
IF EXISTS
((select '1'
from cttest c
where not exists(
select 1 from cof o where c.createddate > add_months(sysdate,-6) and c.ctid not in (
o.ctid , o.bctid, o.lc1, o.lc2, o.sslc1,o.sslc2)
) and c.lastupdated is null and c.lastupdatedcof is null)) THEN
begin
cursor ctdelete
IS
select ctid,ctname from cttest c
where not exists(
select 1 from cof o where c.createddate > add_months(sysdate,-6) and c.ctid not in (
o.ctid , o.bctid, o.lc1, o.lc2, o.sslc1,o.sslc2)
) and c.lastupdated is null and c.lastupdatedcof is null
end;
FOR reDel_audit IN ctdelete
LOOP
insert into ctaudit (ctid,ctname,v_IsDeleted,null,sysdate);
COMMIT;
END LOOP;
END;
Fehler ist:
Fehler (22,8): PLS-00103: Fand das Symbol "ctdelete", wenn eines der folgenden erwartet: =. (@%;
Haben Sie auch den ersten Cursor müssen? Ihr FOR LOOP wird das Vorhandensein eines Datensatzes bewerten. – Drumbeg
@Drumbeg Basierend auf dem Cursor-Ergebnis muss ich jede Zeile wiederholen und in Ctaudit-Tabelle einfügen. –
Nun, die Cursor sehen für mich ziemlich gleich aus. Denken Sie nicht, dass Sie die Existenz eines Datensatzes überprüfen müssen, bevor Sie eine Schleife basierend auf denselben Kriterien durchführen. – Drumbeg