各位大哥,我有个表其中有三个触发器 A_INS(插入)、A_DEL(删除)、A_UPD(修改)在A_INS中出现对本表的修改操作,但不能触发A_UPD,怎么办???
解决方案 »
- VIO_ADMIN.SYS_LOB0000027183C00004$$无法通过5314958(在表空间VIO_PIC中)扩展ORA-06512: 在"SYS.DBMS_LOB", line 700
- 请教各位大虾,在c#访问客户端的数据库视图时会提示客户数据库未开始一个事务处理,怎么处理呢,急急急!
- 查询速度的怪异问题。
- 请教,这样一句SQL语句如何写。好像有点难
- 关于透明网关
- oracle存储过程,输出参数为数组的问题?紧急求助!寝室疯了。。
- 这段sql有没有可以优化的地方
- 求助!这语句那里错了 ORACLE 语法不熟啊 T_T
- Oracle菜鸟问题
- 简单select语句请教
- 谁使用过ORACLE做数据仓库,高分相送!
- 高手请进。急!关于oracle初始化参数!!!
不过如果是一个表上有多个触发器,我一般会写
create or replace trigger ut_accompany_income
after insert or update or delete on t_accompany_income_byday
for each row
declare
....
begin
if updating then
.....
elsif inserting then
....
else --注释,delete
......
end if;
end;
例如
create or replace trigger ut_accompany_income
after insert or update or delete of ymd on t_accompany_income_byday
for each row
.....
上面的ymd为t_accompany_income_byday的一个字段
create or replace trigger ut_accompany_income
after insert or update or delete on tableA
for each row
declare
....
begin
if updating then
.....
elsif inserting then
....
update tableA set fA=vA where .... 这句会再触发updating
....
else --注释,delete
......
end if;
end;
应该不行吧?!
最好将update操作写成一个存储过程,
在触发器中调用该过程,试试看。
A_UPD中有对:new....也有:old....的操作,怎么能合在一起呢!!
:old你可以在UPDATE之前select出来啊
但可以对:new.col_file操作.
所以你所谓的if inserting then
update 触发表 set ....; --是不可能的
:new.col_filed:=....; --这样操作吧
elsif updating then
...