2016-07-30 59 views
1

我有从高级队列中取出队列的作业过程,每次一个消息。当队列为空时应该引发异常并且我想在异常部分删除那个作业,但是我没有知道如何参考那份工作的工作。我希望有人能帮助我。在作业过程中引用jobnum - oracle plsql

回答

0

可以查询SYS_CONTEXT('USERENV', 'BG_JOB_ID')获取当前会话的作业ID

0

THX的男人。 同时,我发现我可以参考job_id创建工作。

“当作业定义在其自己的参数列表中引用这些作业参数时,它们的值将在作业执行时分配给作业定义中的参数。例如,假设名为proc1的过程具有以下规格:

PROCEDURE PROC1(my_job_number整数); 还假设我们提交PROC1到作业队列中执行如下:

DECLARE jobno整数; BEGIN DBMS_JOB.SUBMIT(jobno,`PROC1(my_job_number => job);'); END; / 当proc1由队列执行时,my_job_number参数被分配了作业的作业编号,因此proc1将“知道”它的作业编号。“

而且这里是链接http://docstore.mik.ua/orelly/oracle/bipack/ch13_01.htm,如果有人也将再次

nedded

谢谢