ジョブを作成しようとしていますが、コンパイルできません。このエラーが発生します。オラクル フォーラムに質問があります。ラップするプログラムを作成する必要があるとのことです。これに対する回避策はありますか?
-- Created on 30.09.2014 by ALI.ORHAN
declare
-- Local variables here
i integer;
begin
-- Test statements here
dbms_scheduler.create_job(job_name => 'blabla'
,job_type => 'STORED_PROCEDURE'
,job_action => 'dingdongprocedure;'
,start_date => '30-OCT-14 10.00.00 PM'
,end_date => '15-JULY-08'
,repeat_interval => 'FREQ=WEEKLY BYDAY=TUE,FRI BYHOUR=10,13'
,enable => 'TRUE'
,comments => 'SUPREME COMMENT');
end;
PL/SQL Developer UI からジョブを作成した後、構文エラーが見つかりました。新しいコードは以下のとおりです。
- dbms_scheduler.create_job の代わりに sys.dbms_scheduler.create_job を使用します。違いはわかりませんが、重要な変更ではありません。
- 私は to_date を使用して start_date を定義しました。フレッシュスターターとして、このより良い方法を見つけました。
重要job_class パラメータを 'DBMS_JOB$' に追加しました。DBMS_JOB は、Oracle RDBMS の組み込みジョブ クラスです。したがって、次のクエリですべての求人を検索します。
select * from ALL_SCHEDULER_JOBS WHERE JOB_CLASS='DBMS_JOB$'
重要私の間隔は間違っていました。のようなすべてのパラメータの間
repeat_interval => freq=weekly;byhour=10, 13
- 私の最初のジョブ コードには別の構文エラーがあります。 enableの代わりにenableを使用します。
auto_drop を false に設定しました。このパラメーターは、ジョブが完了したときにジョブをドロップするために使用されると思います。つまり、今日から来週まで毎日変更を加えるジョブを作成する場合です。終了時間に達すると、このジョブは削除されました。間違っている場合は修正してください。
sys.dbms_scheduler.create_job(job_name => 'BOMBASTICJOB' ,job_type => 'STORED_PROCEDURE' ,job_action => 'dingdongprocedure' ,start_date => to_date('30-09-2014 00:00:00' , 'dd-mm-yyyy hh24:mi:ss') ,end_date => to_date(null) ,job_class => 'DBMS_JOB$' ,repeat_interval => 'Freq=Weekly; ByDay=Tue, Fri; ByHour=10, 13' ,enabled => true ,auto_drop => false ,comments => '');