1

私は以下のオラクルの仕事をしています。

dbms_scheduler.create_job
                   (job_name                 => m_job_name,
                    job_type                 => 'PLSQL_BLOCK',
                    job_action               =>    'begin Pkg_Shell.PR_WF_PROC('
                                                || p_seq_request
                                                || '); end;',
                    number_of_arguments      => 0,
                    start_date               => sysdate,               
                    repeat_interval          => null,
                    end_date                 => null,                                       
                    job_class                => 'DEFAULT_JOB_CLASS',
                    enabled                  => false,
                    auto_drop                => true,
                    comments                 => null
                   );

上記のジョブは自動的にドロップされません。このジョブは 1 回だけ実行されます。色々サイト見たらそう書いてあった

For auto drop,This flag if TRUE, causes a job to be automatically dropped after it has completed or has been automatically disabled. A job is considered completed if:
1.Its end date (or the end date of the job schedule) has passed.
2.It has run max_runs number of times. max_runs must be set with SET_ATTRIBUTE.
3.It is not a repeating job and has run once.

私のジョブは一度だけ実行されます。特定のシナリオでジョブが自動ドロップされないのはなぜですか。? ドロップされていない場合は見つかりませんでした。これを克服するには、sysdate + 2時間のようにend_dateに言及したい場合、どのように言及しますか? max_runs または max_fails を設定したい場合、仕事でそれを使用する方法。? これら2つの設定または上記の誰かが私の問題を解決するかどうか?

4

1 に答える 1

1

長い間、私は私の問題を解決するのに役立つ以下のリンクを見つけました. max_runs を 1 に設定して使用しました。

dbms_scheduler.set_attribute(m_job_name,'max_runs',1);

https://community.oracle.com/thread/936850

https://community.oracle.com/message/2458833#2458833

于 2014-08-22T11:10:54.967 に答える