나는 다음과 같은 트리거 만드는거야 업데이트되는 오류 언제든지 데이터를 제공한다 : 나는 그것을 만들 때오라클 트리거 만들었지 만
CREATE TRIGGER Trigger_UpdateTrainingDelivery
AFTER DELETE OR INSERT OR UPDATE OF STARTDATE
ON TPM_TRAININGPLAN
BEGIN
UPDATE TPM_PROJECTVERSION V
SET TRAININGDELIVERYSTART = (SELECT MIN(STARTDATE) FROM TPM_TRAININGPLAN WHERE PROJECTID=V.PROJECTID AND VERSIONID=V.VERSIONID AND TRAININGPLANTYPE='prescribed')
END;
, 내가 경고를받을를 그것은 여전히 어쨌든 그것을 만듭니다. TPM_TRAININGPLAN에서 행을 수정하면 오류가 발생합니다.
>[Error] Script lines: 12-12 ------------------------
ORA-04098: trigger 'TPMDBO.TRIGGER_UPDATETRAININGDELIVERY' is invalid and failed re-validation
Script line 12, statement line 1, column 7
트리거가 잘못 되었습니까? 트리거 자체에서 UPDATE 문을 실행할 수 있으며 올바르게 실행되므로 아무 문제가 없다고 생각하지 않습니다.
그래, 확실히 그 버그입니다! 세미콜론을 넣으면 아쿠아 괴물이 나오는데 왜냐하면 내가 두 개의 다른 명령문을 실행하고 있다고 생각하고 유효하지 않은 명령문 오류가 발생하기 때문입니다. 나는 그것을 나의 트리거 문법과 실제 오류로 착각하고 세미콜론을 제거했다. Visual Studio로이 모든 것을 실행 시켰습니다 (언급 한 세미콜론으로). 이제는 완벽합니다. –