Bis*_*han 2 triggers plsql oracle11g
我有一个表格,Student并且有一个varchar类型列status.我需要在此表上为此status列after insert or update进程设置值.我试着写一个Trigger这个.但我不能用作:new.status.它给了Error: ORA-04084: cannot change NEW values for this trigger type.我怎么能这样做?
我的守则
create or replace
TRIGGER STUDENT_AIU_TRI
AFTER INSERT OR UPDATE ON STUDENT
FOR EACH ROW
DECLARE
v_status VARCHAR2(2);
BEGIN
v_status := '1';
select v_status into :NEW.status from dual;
END;
Run Code Online (Sandbox Code Playgroud)
如果要更改列中的值,则需要使用BEFORE INSER OR UPDATET触发器,而不是AFTER INSERT OR UPDATE触发器.为什么你认为你需要使用AFTER INSERT OR UPDATE触发器?
您也不需要本地变量或SELECT来自双变量
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT OR UPDATE ON student
FOR EACH ROW
BEGIN
:new.status := '1';
END;
Run Code Online (Sandbox Code Playgroud)