У меня есть таблица в базе данных Oracle 11.2.Я хочу, чтобы база данных запускала исполняемый файл на удаленном сервере, если конкретная ячейка в таблице 1 обновлена до значения 1 И если число существующих строк в таблице 2> 0. У меня нет большого опыта в том, что возможнов базах данных - возможно ли следующее для достижения этой цели?
создать задание с помощью Oracle Scheduler.Задание выполняется немедленно и используется для запуска внешней исполняемой программы на удаленном сервере.Задание существует, но не выполняется до шага 5 ниже (возможно ли это?).http://docs.oracle.com/cd/E11882_01/server.112/e17120/schedadmin001.htm#BAJHIDDC
присоединить триггер DML к столбцу таблицы, который запускается в инструкции UPDATE.http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#CIHEHBEB
имеет триггер для вызова подпрограммы PL / SQL http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#CIHEGACF
в подпрограмме PL / SQL, выполните следующую бизнес-логику: если конкретная ячейкав таблице 1 равно 1, а если количество строк в таблице 2 больше 0, перейдите к шагу 5, в противном случае остановите (выход, выход).
Запустите задание на шаге 1
Или, если задание / планировщик не предназначен для предоставления этой функции, есть ли другой способдобиться того же?То есть изменение таблицы базы данных вызывает внешнее задание.
ОБНОВЛЕНИЕ 1:
Интересно, возможно ли реализовать описанные выше шаги 1-5, просто используя Oracle Scheduler с DBMS_SCHEDULER.CREATE_JOB
, используя параметр event_condition
?
http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse005.htm#CHDIAJEB
Вот пример из приведенной выше ссылки:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'process_lowinv_j1',
program_name => 'process_lowinv_p1',
event_condition => 'tab.user_data.event_type = ''LOW_INVENTORY''',
queue_spec => 'inv_events_q, inv_agent1',
enabled => TRUE,
comments => 'Start an inventory replenishment job');
END;
Приведенный выше код создает задание, которое запускается, когда приложение сообщает планировщику, что уровни запасов для элемента упали до низкого порогауровень.
Можно ли каким-либо образом изменить вышеуказанный код для выполнения запланированных шагов?Например, можно ли исключить вышеприведенные шаги 2-4, используя вместо этого event_condition
здесь?и т.д. Если так, то как бы это выглядело, например, как установить queue_spec
?