在触发器中不能对本表进行操作,否则或引起死循环的.
如果你的表中STORYID是主键的话,不要用UPDATE语句
UPDATE STORYCANDIDACY
SET STORYCANDIDACY.GRADE_SUM = (:NEW.GRADE_CHENC + :NEW.GRADE_ANNIE + :NEW.GRADE_LIXH + :NEW.GRADE_NINGCS)
WHERE (STORYCANDIDACY.STORYID = :NEW.STORYID);改成为: :NEW.GRADE_SUM := :NEW.GRADE_CHENC + :NEW.GRADE_ANNIE + :NEW.GRADE_LIXH + :NEW.GRADE_NINGCS;应该达到你的要求了吧?
如果你的表中STORYID是主键的话,不要用UPDATE语句
UPDATE STORYCANDIDACY
SET STORYCANDIDACY.GRADE_SUM = (:NEW.GRADE_CHENC + :NEW.GRADE_ANNIE + :NEW.GRADE_LIXH + :NEW.GRADE_NINGCS)
WHERE (STORYCANDIDACY.STORYID = :NEW.STORYID);改成为: :NEW.GRADE_SUM := :NEW.GRADE_CHENC + :NEW.GRADE_ANNIE + :NEW.GRADE_LIXH + :NEW.GRADE_NINGCS;应该达到你的要求了吧?
UPDATE OF GRADE_CHENC, GRADE_ANNIE, GRADE_LIXH, GRADE_NINGCS
ON "S-DEW"."STORYCANDIDACY"
FOR EACH ROW
BEGIN
:NEW.GRADE_SUM = :NEW.GRADE_CHENC+:NEW.GRADE_ANNIE+:NEW.GRADE_LIXH+:NEW.GRADE_NINGCS;
END;警告: 创建的触发器带有编译错误。
to
:NEW.GRADE_SUM :=
UPDATE OF GRADE_CHENC, GRADE_ANNIE, GRADE_LIXH, GRADE_NINGCS
ON "S-DEW"."STORYCANDIDACY"
FOR EACH ROW
BEGIN
:NEW.GRADE_SUM := :NEW.GRADE_CHENC + :NEW.GRADE_ANNIE + :NEW.GRADE_LIXH + :NEW.GRADE_NINGCS;
END;ERROR 位于第 1 行:
ORA-04084: 无法更改此触发器类型的 NEW 值
BEFOR UPDATE OF GRADE_CHENC, GRADE_ANNIE, GRADE_LIXH, GRADE_NINGCS
ON "S-DEW"."STORYCANDIDACY"
FOR EACH ROW
BEGIN
:NEW.GRADE_SUM := :NEW.GRADE_CHENC + :NEW.GRADE_ANNIE + :NEW.GRADE_LIXH + :NEW.GRADE_NINGCS;
END;
[email protected]