1000行のバッチで行の大きなリストに対して更新を実行したいと思います。定期的に実行されるDBMS_JOB内にupdateステートメントを配置する場合、影響を受ける行の数がゼロになった後、ジョブがそれ自体を一時停止する方法はありますか?
ジョブは自分のジョブIDを見つけて、呼び出すことができますDBMS_JOB.Broken()
か?
1000行のバッチで行の大きなリストに対して更新を実行したいと思います。定期的に実行されるDBMS_JOB内にupdateステートメントを配置する場合、影響を受ける行の数がゼロになった後、ジョブがそれ自体を一時停止する方法はありますか?
ジョブは自分のジョブIDを見つけて、呼び出すことができますDBMS_JOB.Broken()
か?
JOB IDはJOB列です:
select * from dba_jobs
現在実行中のジョブ:
select dbr.sid, s.serial#, s.username, dbj.*
from dba_jobs_running dbr, dba_jobs dbj , v$session s
where dbr.job=dbj.job and s.sid=dbr.sid;
select JOB from all_jobs
where what like '%YOUR_JOB_PROCEDURE%';
また、Oracleバージョンhttp://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htmでも使用できる場合は、DBMS_JOBの代わりにDBMS_SCHEDULERを使用することをお勧めします。