2011-09-30 87 views
1

創建作業使用DBMS_JOB作業中拋出:是否可以從DBMS_SCHEDULER作業中創建作業?

ORA-32317: cannot run a job from a job 

有誰知道這一限制在DBMS_SCHEDULER被揭開?

+0

你想要做什麼? dbms_scheduler具有鏈的概念,這是一組按同步或順序運行的作業,具體取決於如何定義鏈規則。 – tbone

回答

1

是,您可以:

DECLARE 
BEGIN 
    dbms_scheduler.create_job 
(job_name => 'TEST1', 
    job_type=> 'PLSQL_BLOCK', 
    job_action=>'BEGIN dbms_scheduler.create_job 
       (job_name => ''TEST2'', 
       job_type=> ''PLSQL_BLOCK'', 
       job_action=>''DECLARE v_result NUMBER; BEGIN SELECT 1 INTO v_result FROM dual; END;'', 
       start_date=>SYSDATE, 
       repeat_interval=>''FREQ=DAILY'', 
       end_date=>SYSDATE+1, 
       enabled=>true, 
       auto_drop=>false, 
       comments=>''Job submitted FROM a job''); end;', 
    start_date=>SYSDATE, 
    repeat_interval=>'FREQ=DAILY', 
    end_date=>SYSDATE+1, 
    enabled=>true, 
    auto_drop=>false, 
    comments=>'Job to submit a job'); 
END; 

這證明了概念。您可以調用一個過程而不是內聯的PL/SQL塊來完成您的作業提交。很明顯,您可以調整create_job過程的任何或全部參數。我想你可能會產生一項產生另一份工作的工作。

相關問題