EVALUATE_CALENDAR_STRING¶
CREATE_SCHEDULE 手順でスケジュールを作成するときに指定した repeat_interval 値を評価するには、 EVALUATE_CALENDAR_STRING 手順を使用します。 EVALUATE_CALENDAR_STRING プロシージャは、実際にジョブをスケジュールせずに、指定されたスケジュールが実行される日付と時刻を返します。
EVALUATE_CALENDAR_STRING プロシージャのシグネチャは次のとおりです。
EVALUATE_CALENDAR_STRING(
<calendar_string> IN VARCHAR2,
<start_date> IN TIMESTAMP WITH TIME ZONE,
<return_date_after> IN TIMESTAMP WITH TIME ZONE,
<next_run_date> OUT TIMESTAMP WITH TIME ZONE)
Parameters
calendar_string
calendar_stringは、評価中のrepeat_intervalを説明するカレンダー文字列です。
start_date IN TIMESTAMP WITH TIME ZONE
start_dateは、repeat_intervalが有効になる日時です。
return_date_after
repeat_intervalを評価するときにEVALUATE_CALENDAR_STRINGが開始日として使用する日付と時刻を指定するには、return_date_afterパラメーターを使用します。たとえば、
return_date_afterの値に01-APR-13 09.00.00.000000, EVALUATE_CALENDAR_STRINGを指定すると、2013年4月1日以降のスケジュールの最初の反復の日付と時刻が返されます。
next_run_date OUT TIMESTAMP WITH TIME ZONE
next_run_dateはOUTパラメーターで、return_date_afterパラメーターで指定された日付の後のスケジュールの最初のオカレンスが含まれます。
Example
次の例では、カレンダー文字列を評価し、2013年6月15日以降にスケジュールが実行される最初の日付と時刻を返します。
DECLARE
result TIMESTAMP;
BEGIN
DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING
(
'FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI;BYHOUR=17;',
'15-JUN-2013', NULL, result
);
DBMS_OUTPUT.PUT_LINE('next_run_date: ' || result);
END;
/
next_run_date: 17-JUN-13 05.00.00.000000 PM
2013年6月15日は土曜日です。スケジュールは2013年6月17日月曜日の午後5時まで実行されません。