запущенный объект, созданный DBMS_SCHEDULER.create_program - PullRequest
1 голос
/ 22 июня 2011

У меня была проблема с DBMS_SCHEDULER в oracle. У меня есть внешняя программа (сценарий perl, находящийся на сервере, на котором работает oracle), которую я хочу запустить из своей хранимой процедуры на основе определенных условий. Так что я узналчто внешняя программа может быть запущена путем создания DBMS_SCHEDULER.create_program.So Я сделал только это. Теперь проблема, у меня есть программный объект, созданный в Oracle, но я не могу выполнить этот объект. Я пытался что-то вроде этого, чтобызапустите этот объект:

EXECUTE MY_PROGRAM_OBJECT;

Но каждый раз, когда я делаю это, он говорит, что объект MY_PROGRAM_OBJECT недопустим (FYI ... Я вижу этот объект, используя select * from ALL_OBJECTS).Теперь я искренне думаю, что должен быть какой-то другой способ запустить это. К сожалению, я, кажется, не нахожу никакого официального документа.для запуска созданного объекта Программы. Теперь вы можете посоветовать мне, как его нужно выполнить? Разве для выполнения мне нужно создать другую работу и указать ее оттуда, для которой я не вижу рационального.

PS Я получил разрешение на выполнение для DBMS_SCHEDULER.Буду признателен за любую помощь в этом отношении.

Большое спасибо, что нашли время!

1 Ответ

1 голос
/ 22 июня 2011

Вы должны создать работу, которая использует созданную вами программу.Что-то вроде:

exec dbms_scheduler.create_job(
job_name=>'JOB_RUN_MY_PROGRAM',
program_name=>'PROG_RUN_MY_PROCEDURE',
schedule_name=>'INTERVAL_EVERY_DAY',
enabled=>true,
auto_drop=>false,
comments=>'This will run my scheduler program');

Обратите внимание, что расписание 'INTERVAL_EVERY_DAY' должно быть создано с помощью dbms_scheduler.create_schedule.

Для запуска или остановки вручную вы можете использовать dbms_scheduler.run_job и dbms_scheduler.STOP_JOB Служит.Используйте dba_scheduler_jobs для просмотра состояния только что созданного задания.

Что касается обоснования создания программ, они помогают вам создавать более сложные ситуации, включающие цепочки заданий.Вы должны определить шаги своей цепочки, чтобы указать на программы и определить правила того, как проходить через цепочку (выполнение шагов одновременно или последовательно в определенном порядке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...