DBMS_JOBを使用してパッケージを使用して複数のストアド・プロシージャを実行しようとしています。仕事が提出されていて、USER_JOBSに表示されていても何らかの理由でその仕事が始まらない場合でも。私は 'START DATE'パラメータを同じ結果、つまり開始しないで試してみました。dbms_jobを使用してパッケージ内でoracleのストアド・プロシージャを実行する
私は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;
その中に私は9iの使用が、SYSDATE + 1/1440にSTART_DATEを設定してみてください以来。ジョブ定義がDBA_JOBSを見て期待どおりであり、ジョブが「破損していない」ことを確認してください。次に、jobidを指定してDBMS_JOB.RUNを使用してジョブを強制的に実行できるかどうかを確認します。 – BriteSponge
私はDBMS_JOB.RUN(ジョブID)を実行して手動で実行しようとします。実行中ですが、DBMS_JOB.RUN(ジョブID)によってジョブが順次実行されるため、並列処理の目的は無効になります。この例では、2つのジョブが並行して開始する必要があります。 – qwerty