在oracle

时间:2015-09-11 11:22:42

标签: oracle parallel-processing

我有一张表jobs,如下所示:

JOB_ID STATUS

 1      N     
 2      N     
 3      N     
 4      N     
 5      N     
 6      N     
 7      N     
 8      N     
 9      N     
10      N     
11      N     
12      N 

我要做的是一次选择4个工作ID,将其状态设置为“Y”,一旦完成1个工作,另一个应该开始运行。在任何情况下,必须有4个工作正在运行。

我研究了如何实现以及使用调度程序作业建议的大多数文档。但是,我无法弄清楚如何去做。

以下是我所做的代码示例:

 CREATE OR REPLACE PROCEDURE sp_processTask
(
  JobID NUMBER
)
AS
 vblSQL VARCHAR2(32767);
 vJobID NUMBER;

BEGIN
  vJobID:=JobID;
  EXECUTE IMMEDIATE'insert into job_logs values('''||vJobID||''',sysdate,sysdate)';
  vblSQL:='UPDATE jobs
           SET status=''Y''
           WHERE job_ID='||vJobID;
  EXECUTE IMMEDIATE(vblSQL);
  Dbms_Output.put_line(vblSQL);
END;
/

然后立即传递4个不同的工作ID:

BEGIN
  sp_processTask(1);
  sp_processTask(2);
  sp_processTask(3);
  sp_processTask(4);
END;

如果一个标志设置为“Y”,我应该怎么做才能传递另一个作业ID?我正在使用oracle。

0 个答案:

没有答案