使用DBMS_JOB从作业中创建作业会抛出:
ORA-32317: cannot run a job from a job
有人知道这个限制是否已在DBMS_SCHEDULER中解除?
答案 0 :(得分: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过程中的任何或所有参数。我猜你可能会产生一份可以产生另一份工作的工作。