【问题标题】:Error while creating a trigger创建触发器时出错
【发布时间】:2014-01-31 12:44:41
【问题描述】:
以下触发器将为为特定列所做的每个插入更新表中其他列的值,但不知何故我收到以下错误。
ORA-04084: 无法更改此触发器类型的新值
甚至更新语句在触发器主体中似乎也不起作用;
create or replace trigger encode_trigger
after insert on vulnerable_tags
for each row
declare
var1 varchar2(20);
var2 varchar2(40);
begin
var1 := :OLD.tag_name;
var2 := Encode12(var1);
:NEW.ascii_tags := var2;
end;
/
【问题讨论】:
标签:
oracle
triggers
oracle10g
【解决方案1】:
如果要更改列中的值,则需要使用 BEFORE INSER OR UPDATET 触发器,而不是 AFTER INSERT OR UPDATE 触发器。
create or replace trigger encode_trigger
before insert on vulnerable_tags
for each row
declare
var1 varchar2(20);
var2 varchar2(40);
begin
var1:= :OLD.tag_name;
var2:=Encode12(var1);
:NEW.ascii_tags:=var2;
end
您是否出于特定原因需要after?