0

我正在尝试使用 DBMS_JOB 通过包执行多个存储过程。即使作业正在提交并在 USER_JOBS 中显示,但由于某种原因它没有开始。我尝试过使用和不使用具有相同结果的“开始日期”参数,即没有开始。

我正在使用 ORACLE 9i,我想我不能使用 dbms_scheduler。

在代码下方找到:

--PACKAGE BODY--

create or replace
PACKAGE BODY PKG_TEST IS

  PROCEDURE PASSPORT_DC_1 IS

  l_jobno binary_integer;
  l_jobno1 binary_integer;

    BEGIN

       dbms_job.submit(l_jobno1, 'BEGIN SP_ABC(); END;',SYSDATE );
       DBMS_OUTPUT.PUT_LINE('SP_UPDATE_TIDCUMTL :' || l_jobno1);
       COMMIT;

       dbms_job.submit(l_jobno, 'BEGIN SP_XYZ(); END;',SYSDATE);
       DBMS_OUTPUT.PUT_LINE('SP_UPDATE_TIDPTDTL :' || l_jobno);
       COMMIT; 

  END PASSPORT_DC_1;

--PACKAGE SPEC--

create or replace PACKAGE PKG_TEST AS

  PROCEDURE PASSPORT_DC_1;

END PKG_TEST;
4

1 回答 1

0

dbms_job.submit 的 3. 参数是间隔(参见 doc)。如果您只想运行一次存储过程,请尝试省略第三个参数(SYSDATE)。:

dbms_job.submit(l_jobno1, 'BEGIN SP_ABC(); END;');
于 2017-01-31T09:22:38.357 回答