要件は、毎日午前3時に実行されるジョブをOracleで作成することです。 ストアドプロシージャを実行して、特定のタスクを実行します。たとえば、ストアドプロシージャの名前はPROC_DAILY_UPDATES
です。 。
これを実現するために、次の例ではOracleのDBMS_SCHEDULER.CREATE_JOB
を使用しています。 手順:
1。 DBMS_SCHEDULER.CREATE_JOB
を使用してOracleでジョブを作成します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; /
上記のジョブを作成したら、有効にします。
2。 DBMS_SCHEDULER.ENABLE
を使用してジョブを有効にしますBEGIN DBMS_SCHEDULER.enable('JOB_DAILY_UPDATES'); END; /
正常に作成されたジョブを確認するには、次のクエリを使用します。
Select * from user_scheduler_jobs where job_name = 'JOB_DAILY_UPDATES';
上記のクエリから、最終開始日、次の実行日、ジョブの有効化ステータスなどの情報が取得されます。 、など。
ジョブの実行履歴を取得するには、次のクエリを使用します。
Select * from user_scheduler_job_run_details where job_name = 'JOB_DAILY_UPDATES';
上記のDBMS_SCHEDULER.CREATE_JOB
でもわかります。 手順の例では、タイムゾーンAmerica/New_York
を使用しました 。次のクエリを使用して、特定の国のタイムゾーンを取得できます。
SELECT DISTINCT tzname, TZ_OFFSET (tzname) FROM V$TIMEZONE_NAMES ORDER BY tzname;
出力
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 ...
関連項目:
- Oracle SQL Developerでジョブをスケジュールする方法は?
- LinuxでCron(crontab)を使用してタスク/ジョブをスケジュールする方法を学ぶ
- PL/SQLで任意の国の現在の現地時間を取得