2017-01-31 2 views
0

Я пытаюсь выполнить несколько хранимых процедур через пакет с помощью DBMS_JOB. Даже если задание будет отправлено и показывается в USER_JOBS, его почему-то не начинают работать. Я попытался с параметром «START DATE» и без него с тем же результатом, то есть без запуска.Выполнение хранимых процедур в oracle внутри пакета с использованием dbms_job

Я использую 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; 
+0

Его время, так как я использовал 9i, но попробуйте установить start_date и Sysdate + 1/1440. Убедитесь, что определение задания так же, как вы ожидаете, просмотрев DBA_JOBS и что задание не «сломано». Затем посмотрите, можно ли принудительно запустить задание с помощью DBMS_JOB.RUN с помощью jobid. – BriteSponge

+0

, когда я пытаюсь запустить его вручную, выполнив DBMS_JOB.RUN (id задания). Он выполняется, но цель параллелизма проиграна, поскольку DBMS_JOB.RUN (идентификатор задания) выполняет задания последовательно. в примере есть два задания, которые должны начинаться параллельно. – qwerty

ответ

0

3. параметр dbms_job.submit интервал (see doc). попробуйте опустить третий параметр (Sysdate), если вы whant запустить вам хранимую процедуру только один раз .:

dbms_job.submit(l_jobno1, 'BEGIN SP_ABC(); END;'); 
+0

Я также пропустил последний параметр. dbms_job.submit (l_jobno1, 'BEGIN SP_ABC(); END;'); DBMS_OUTPUT.PUT_LINE ('SP_ABC():' || l_jobno1); COMMIT; еще не началась – qwerty

Смежные вопросы