2011-09-30 42 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过程的任何或全部参数。我想你可能会产生一项产生另一份工作的工作。

相关问题