DBMS_SCHEDULER.DROP_JOB seulement si il existe

J'ai un script sql que je dois courir après, j'ai importer un dump. entre autres choses, le script n', il effectue les opérations suivantes:

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; 

Parfois le travail était déjà tombé dans le schéma d'origine, le dump est livré sans le travail et le script échoue:

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 

Comment puis-je éviter cet échec dans le cas où le travail n'existe pas, mais encore être en mesure de tomber si elle est?

OriginalL'auteur user2183505 | 2013-11-24