【发布时间】:2011-01-05 22:26:09
【问题描述】:
我想开始使用 dbms_submit 在 plsql 中分离(并行)任务。 (请注意,我没有通过提交调用传递任何间隔数据)。
在我的示例中 .. 出于某种原因,当我尝试在第二个作业上调用 run 时,我得到了在队列中找不到作业的错误。关于我的第二份工作的任何想法都没有被添加到工作队列中?
set serveroutput on
DECLARE
jobno number;
jobno2 number;
BEGIN
dbms_job.submit(jobno,'begin dbms_lock.sleep(10); dbms_output.put_line(''test1'');end;');
commit;
dbms_job.submit(jobno2,'begin dbms_lock.sleep(5); dbms_output.put_line(''test2'');end;');
commit;
dbms_output.put_line(jobno || ' ' || jobno2);
dbms_job.run(jobno);
dbms_job.run(jobno2);
END;
/
错误报告:
ORA-23421: 作业号 154230 不是作业队列中的作业 ORA-06512: 在“SYS.DBMS_SYS_ERROR”,第 86 行 ORA-06512:在“SYS.DBMS_IJOB”,第 770 行 ORA-06512:在“SYS.DBMS_JOB”,第 267 行 ORA-06512: 在第 14 行 23421. 00000 - “作业号 %s 不是作业队列中的作业” *原因:具有给定工作编号的呼叫者看不到工作。 *Action:选择调用者可见的作业编号。
输出:
154229 154230
测试1
【问题讨论】: