「Oracle12c」CREATE_JOB文でスケジュール ジョブを作成する方法

環境
Oracle Database 12c Standard Edition Release 12.2.0.1.0 – 64bit Production

構文

DBMS_SCHEDULER.CREATE_JOB
(
  job_name           =>  ジョブの名前,
  job_type           =>  ジョブタイプ
  job_action         =>  ストアド・プロシージャ名
  start_date         =>  ジョブの開始日時,
  end_date           =>  ジョブの終了日時,
  repeat_interval    =>  ジョブの実行間隔
  enabled            =>  TRUE(有効)/FALSE(無効)
);

ジョブタイプについて説明

PLSQL_BLOCK	        PL/SQLコード
STORED_PROCEDURE	       ストアドプロシージャ
EXECUTABLE	        外部プログラム
CHAIN	            チェーン

使用例
「2022/11/21」0時から3時間ごとに「PROCCFT」を実行するジョブ「JOB_PROCCFT」を作成します。

1.ジョブの権限を割り当てます

GRANT CREATE JOB TO CFTUSER;
GRANT MANAGE SCHEDULER TO CFTUSER;

2.スケジュール ジョブの構文を定義します

BEGIN

DBMS_SCHEDULER.CREATE_JOB
(
  job_name           =>  'JOB_PROCCFT',
  job_type           =>  'STORED_PROCEDURE',
  job_action         =>  'CFTUSER.PROCCFT',
  start_date         =>  TO_DATE('2022/11/21 00:00:00','yyyy/mm/dd hh24:mi:ss'),
  repeat_interval    =>  'FREQ=HOURLY;INTERVAL=3',
  enabled            =>  TRUE
);

END;

 

Oracle 12c

Posted by arkgame