DBMS_SCHEDULER.DROP_JOB nur wenn vorhanden
Ich habe ein SQL-Skript, das ich ausführen muss, nachdem ich einen Speicherauszug importiert habe. Das Skript führt unter anderem Folgendes aus:
BEGIN
--remove program
SYS.DBMS_SCHEDULER.DROP_PROGRAM(program_name=>'STATISTICS_COLUMNS_PROG',FORCE=>TRUE);
--remove job
SYS.DBMS_SCHEDULER.DROP_JOB (job_name => 'STATISTICS_COLUMNS_JOB');
END;
Manchmal wurde der Job bereits im ursprünglichen Schema gelöscht, der Dump kommt ohne den Job und das Skript schlägt fehl:
ERROR at line 1:
ORA-27475: "DMP_6633.STATISTICS_SET_COLUMNS_JOB" must be a job
ORA-06512: at "SYS.DBMS_ISCHED", line 213
ORA-06512: at "SYS.DBMS_SCHEDULER", line 657
ORA-06512: at line 5
Wie kann ich diesen Fehler vermeiden, wenn der Job nicht vorhanden ist, ihn aber dennoch löschen kann?