插入更新触发器PL/SQL后

Bis*_*han 2 triggers plsql oracle11g

我有一个表格,Student并且有一个varchar类型列status.我需要在此表上为此statusafter 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)

Jus*_*ave 7

如果要更改列中的值,则需要使用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)