create or replace trigger ttt before insert on test_tri for each row begin :new.k= :new.i + :new.j; end;要Before时触发
哦,对,在before触发器中是可以的。 create or replace trigger ttt before insert on test_tri for each row begin :new.k:= :new.i + :new.j; --此处应该是赋值 end;
感谢:waterfirer(水清) , myrou(myrou) KDE(黎明) 等的帮助。 以上只是一个例子,下面是具体的应用: create or replace trigger Set_Lanmu before insert or update of infotype on infolist referencing old as oldd new as neww for each row when (length(nvl(neww.resourcecolumnids,''))=0) declare columnID varchar2(40) begin select LanmuID into columnID from infotype where oid=neww.infotype; neww.resourcecolumnids:=ColumnID; end; 在编译的时候没有错误,但是在插入数据的时候,提示信息"..无效且未通过确认”,怎么回事??
你写的trigger有问题,试试这个 create or replace trigger Set_Lanmu before insert or update of infotype on infolist referencing old as oldd new as neww for each row declare columnID varchar2(40); begin if :neww.resourcecolumnids is null then select LanmuID into columnID from infotype where oid=:neww.infotype; :neww.resourcecolumnids:=ColumnID; end if; end;
create or replace trigger ttt after insert on test_tri for each row begin :new.K = :new.i + :new.j; end;
不会吧...
before insert
on test_tri
for each row
begin
:new.k= :new.i + :new.j;
end;要Before时触发
create or replace trigger ttt
before insert
on test_tri
for each row
begin
:new.k:= :new.i + :new.j; --此处应该是赋值
end;
以上只是一个例子,下面是具体的应用:
create or replace trigger Set_Lanmu
before insert or update
of infotype on infolist
referencing old as oldd
new as neww
for each row
when (length(nvl(neww.resourcecolumnids,''))=0)
declare columnID varchar2(40)
begin
select LanmuID into columnID from infotype where oid=neww.infotype;
neww.resourcecolumnids:=ColumnID;
end;
在编译的时候没有错误,但是在插入数据的时候,提示信息"..无效且未通过确认”,怎么回事??
create or replace trigger Set_Lanmu
before insert or update
of infotype on infolist
referencing old as oldd
new as neww
for each row
declare columnID varchar2(40);
begin
if :neww.resourcecolumnids is null then
select LanmuID into columnID from infotype where oid=:neww.infotype;
:neww.resourcecolumnids:=ColumnID;
end if;
end;
after insert
on test_tri
for each row
begin
:new.K = :new.i + :new.j;
end;