我有一张表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。