Хорошо, я новичок в Oracle PL / SQL, и я наткнулся на проблему, которую не могу понять.
У меня есть процедура, которая приводит к переносу данных из одной таблицы в другую и триггер, который активируется при вставке во вторую таблицу. Я запланировал, что эта процедура будет выполняться каждую минуту (для тестирования - будет ежедневно, как только я это выясню), используя DBMS_JOB.SUBMIT - запланированная часть работает отлично, однако после завершения процедуры триггер не сработал. Я пытался с пунктами вставки до и после, но он все еще не работает. Если я вызываю процедуру напрямую, она работает и срабатывает триггер просто отлично. Итак ... Мне уже интересно, может ли запланированная процедура вообще сработать?
Это код расписания:
DECLARE
VJOBN BINARY_INTEGER;
BEGIN
DBMS_JOB.SUBMIT(
JOB => VJOBN,
INTERVAL => 'SYSDATE + 1/2880',
WHAT => 'BEGIN my_procedure(); END;'
);
END;
create or replace TRIGGER TO_PRJ
AFTER INSERT ON PROJECTS
FOR EACH ROW
BEGIN
IF INSERTING
THEN DBMS_OUTPUT.PUT_LINE('INSERTED PROJECT WITH ID: '||:NEW.PROJECT_ID||')
END IF;
END;
Таблица PROJECTS имеет идентификационный номер, имя varchar2 и некоторые другие, которые не важны.
Процедура передает идентификатор и имя из заказов в проекты.
P.S. Я использую http://apex.oracle.com, и когда я получаю метку времени, время на самом деле отстает на 6 часов - не уверен, может ли оно иметь какое-либо значение ...