CREATE OR REPLACE TRIGGER UPDATE_TEST_280510
AFTER insert on TEST_TRNCOMPVISIT
declare
V_TRNCOMPNO NUMBER(10);
CURSOR C1 IS SELECT B.COMPNO FROM TEST_TRNCOMPVISIT A, TEST_TRNCOMPMST B,
TEST_MEMMAST C
WHERE A.COMPNO=B.COMPNO
AND B.TRNMEMID=C.MEMID
AND C.MEMOS>=1000;
begin
open c1;
fetch c1 into V_TRNCOMPNO;
UPDATE TEST_TRNCOMPMST SET COMPSTATUS='P',
remark='comp is pending due to O/S>1000'
WHERE COMPNO=V_TRNCOMPNO AND COMPSTATUS='C';
CLOSE C1;
end;
Я сделал этот триггер и при вставке строки в таблицу TEST_TRNCOMPVISIT выдает следующую ошибку:
Произошла следующая ошибка:
ORA-04091: таблица TEST.TEST_TRNCOMPVISIT видоизменяется, триггер/функция может ее не видеть
ORA-06512: в "TEST.UPDATE_TEST_280510", строка 4
ORA-06512: в "TEST.UPDATE_TEST_280510", строка 10
ORA-04088: ошибка при выполнении триггера 'TEST.UPDATE_TEST_280510'