触发器时将其写在after之后执行,编译时报出了“无法更改此触发器类的New值”异常,寻思未解,于是开始寻找原因。之后才知道After时:new值只有读的权限,没有写的权限,而Before时:new有读写权限,因此将After改为Before
create or replace trigger triggername
before insert or update of clums
on table1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
begin
if :new.clums is null THEN
:new.clums := 'XX';
end if;
exception
when others then
raise_application_error(-20001,'未知错误'||sqlerrm);
end;