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;
트리거 실행 중에 IT- 오류가 표시되지 않을 수돌연변이, 트리거/함수 I이 트리거를 제작하고 테이블 - TEST_TRNCOMPVISIT의 행을 삽입하면서 에러 - 다음 부여합니다
다음 에러가 발생:
ORA-04091은: 테이블 TEST.TEST_TRNCOMPVISIT가 돌연변이되어, 트리거/함수는 표시되지 않을 수
ORA-06512 "TEST.UPDATE_TEST_280510에서"TEST.UPDATE_TEST_280510 "4 줄
ORA-06,512에서 ", 줄 10,627,552,314,960,453,210 ORA-04088 : 트리거 'TEST.UPDATE_TEST_280510'
트리거가 FOR EACH ROW 트리거를 기반으로하는 테이블에 액세스하려고하면이 오류가 발생합니다. 트리거 정의에 각 행을 넣지 않았습니까? –
Dear Mr Tony, FOR EACH ROW를 제거한 후에는 오류가 발생하지 않지만 레코드가 트리거 본문에 지정된대로 업데이트되지 않습니다. 친절하게 제안합니다. MaheshA .... –
해야 할 방아쇠가 무엇입니까? 커서 c1이 행을 반환하면 일부 행을 업데이트하는 것처럼 보입니다. –