Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle PL/SQL:DBMS_SCHEDULER.CREATE_JOB Beispiel

Die Anforderung besteht darin, einen Job in Oracle zu erstellen, der täglich um 3:00 Uhr ausgeführt wird und eine gespeicherte Prozedur ausführen, um eine bestimmte Aufgabe auszuführen. Der Name der gespeicherten Prozedur lautet beispielsweise PROC_DAILY_UPDATES .

Um dies zu erreichen, verwendet das folgende Beispiel Oracles DBMS_SCHEDULER.CREATE_JOB Verfahren:

1. Erstellen Sie einen Job in Oracle mit DBMS_SCHEDULER.CREATE_JOB

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'JOB_DAILY_UPDATES',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'YOURSCHEMA.PROC_DAILY_UPDATES',
   start_date         =>  '28-SEP-19 03.00.00 AM America/New_York',
   repeat_interval    =>  'FREQ=DAILY;INTERVAL=1', 
   end_date           =>  NULL,
   auto_drop          =>   FALSE,
   job_class          =>  'SYS.DEFAULT_JOB_CLASS',
   comments           =>  'extract data');
END;
/

Nachdem Sie den obigen Job erstellt haben, aktivieren Sie ihn:

2. Aktivieren Sie den Job mit DBMS_SCHEDULER.ENABLE

BEGIN 
    DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); 
END;
/

Um zu bestätigen, dass der Job erfolgreich erstellt wurde, verwenden Sie die folgende Abfrage:

Select * from user_scheduler_jobs 
 where job_name = 'JOB_DAILY_UPDATES';

Aus der obigen Abfrage erhalten Sie Informationen wie Datum des letzten Starts, Datum der nächsten Ausführung und Status der Auftragsaktivierung usw.

Um den Auftragsausführungsverlauf abzurufen, verwenden Sie die folgende Abfrage:

Select * from user_scheduler_job_run_details 
  where job_name = 'JOB_DAILY_UPDATES';

Sie können dies auch im obigen DBMS_SCHEDULER.CREATE_JOB erkennen Prozedurbeispiel, ich habe die Zeitzone America/New_York verwendet . Sie können die Zeitzone eines bestimmten Landes mit der folgenden Abfrage abrufen:

SELECT DISTINCT tzname, TZ_OFFSET (tzname)
 FROM V$TIMEZONE_NAMES
ORDER BY tzname;

Ausgabe

America/Mexico_City -05:00 
America/Miquelon -02:00 
America/Moncton -03:00 
America/Monterrey -05:00 
America/Montevideo -03:00 
America/Montreal -04:00 
America/Montserrat -04:00 
America/Nassau -04:00 
America/New_York -04:00
...

Siehe auch:

  • Wie plane ich einen Job in Oracle SQL Developer?
  • Erfahren Sie, wie Sie Aufgaben/Jobs mit Cron (crontab) unter Linux planen
  • Aktuelle Ortszeit eines beliebigen Landes in PL/SQL erhalten