CONNECT sys/xxx AS SYSDBA;
GRANT EXECUTE ON DBMS_SCHEDULER TO user1;
GRANT CREATE JOB TO user1;
GRANT MANAGE SCHEDULER TO user1;
GRANT EXECUTE ON dbms_crypto TO user1;
--スケジューラジョブ作成と削除
SELECT * FROM USER_SCHEDULER_JOBS;
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'BBB',
job_type => 'STORED_PROCEDURE',
job_action => 'AAA.BBB',
start_date => TO_DATE('2022/10/29 05:00:00','yyyy/mm/dd hh24:mi:ss'),
repeat_interval => 'TO_DATE(TO_CHAR(SYSDATE,''YYYYMMDD'') || ''050000'',''YYYYMMDDHH24MISS'') + 1',
enabled => TRUE
);
END;
BEGIN
DBMS_SCHEDULER.DISABLE('BBB');
END;
BEGIN
DBMS_SCHEDULER.STOP_JOB('BBB');
END;
BEGIN
DBMS_SCHEDULER.DROP_JOB('BBB');
END;
--スケジューラDBMSジョブ作成と削除
select * from user_jobs;
variable jobno number;
begin
dbms_job.submit(:jobno,'AAA.BBB;'
, TO_DATE('2022/10/30 06:00:00','yyyy/mm/dd hh24:mi:ss')
, 'TO_DATE(TO_CHAR(SYSDATE,''YYYYMMDD'') || ''060000'',''YYYYMMDDHH24MISS'') + 1'
);
commit;
end;
BEGIN
DBMS_JOB.remove(123);
END;
--登録済みジョブの次回の実行時間を変更
execute dbms_job.next_date(362, TO_DATE('2022/10/29 05:00:00','yyyy/mm/dd hh24:mi:ss'));
--登録済みジョブの実行間隔を変更(うまく行けなかった)
execute dbms_job.INTERVAL(362, 'TO_DATE(TO_CHAR(SYSDATE,''YYYYMMDD'') || ''050000'',''YYYYMMDDHH24MISS'') + 1');
--COMMIT;