Wymagane jest utworzenie zadania w Oracle, które będzie uruchamiane codziennie o 3:00 i wykonać procedurę składowaną w celu wykonania określonego zadania. Na przykład nazwa procedury składowanej to PROC_DAILY_UPDATES
.
Aby to osiągnąć, w poniższym przykładzie użyto DBMS_SCHEDULER.CREATE_JOB
Oracle procedura:
1. Utwórz zadanie w Oracle za pomocą 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; /
Po utworzeniu powyższego zadania włącz je:
2. Włącz zadanie za pomocą DBMS_SCHEDULER.ENABLE
BEGIN DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); END; /
Aby potwierdzić pomyślne utworzenie zadania, użyj następującego zapytania:
Select * from user_scheduler_jobs where job_name = 'JOB_DAILY_UPDATES';
Z powyższego zapytania uzyskasz informacje, takie jak data ostatniego rozpoczęcia, data następnego uruchomienia i stan włączenia zadania itp.
Aby uzyskać historię wykonania zadania, użyj następującego zapytania:
Select * from user_scheduler_job_run_details where job_name = 'JOB_DAILY_UPDATES';
Możesz również zauważyć, że w powyższym DBMS_SCHEDULER.CREATE_JOB
przykład procedury, użyłem strefy czasowej America/New_York
. Strefę czasową określonego kraju można uzyskać za pomocą następującego zapytania:
SELECT DISTINCT tzname, TZ_OFFSET (tzname) FROM V$TIMEZONE_NAMES ORDER BY tzname;
Wyjście
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 ...
Zobacz też:
- Jak zaplanować pracę w Oracle SQL Developer?
- Dowiedz się, jak planować zadania/zadania za pomocą Cron (crontab) w systemie Linux
- Pobierz aktualny czas lokalny dowolnego kraju w PL/SQL