• ベストアンサー

年に一度の実行(DBMS_JOB)

oracle8,NT4.0でDBMS_JOBを作成しているのですが、 年に一度、年が変わった瞬間に(今回なら2002/01/01 00:00:00)にジョブを走らせたいのですが、next_dateの指定方法がわかりません。 sysdate(yy)+1 & '-01-01' のような指定ができればいいのですが・・。 INTERVALの使い方も良くわかっていません。 ご指導の程よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • PBG3
  • ベストアンサー率77% (7/9)
回答No.1

next_dateには初回にJOBを実行する時刻をdate型で指定します。 intervalには次回JOBを実行する時刻を計算する式を文字列で指定します。 この式はJOBの実行時点で計算されます。 以下の内容にすると初回は2003年1月1日0時0分で 毎年1月1日0時0分に実行するJOBを作成できます。 next_dateの指定:  to_date('20030101','yyyymmdd') intervalの指定:  'trunc(sysdate+366,''YEAR'')'  (JOB実行後の時刻に366日加えて年単位で切り捨てる=次年の1月1日)

sunnys
質問者

お礼

こんにちは。お礼が遅くなってしまって申し訳ありません。 なるほど、next_dateは初回にJOBを実行する日付を指定するんですね。 おかげさまでなんとか設定には成功しました。 ただ、違う環境で設定するとうまく設定できないんです・・。 自分でもまた調べて、もしわからないようならまた質問させていただくかもしれません。 そのときはまたよろしくお願いいたします。 大変勉強になりました。どうもありがとうございました。

関連するQ&A