oracle中sql%rowcount的使用
偶是oracle一菜鸟,写一触发器如下:
create or replace trigger del_tblname_trg
before delete
On tblname
declare
rowcnt int;
begin
rowcnt :=sql%rowcount;
.....
if rowcnt > 1 then
raise err2;
end if;
......
注:.....处省略
本来自以为sql%rowcount此处可以得到delete语句影响的行数,但运行后发现此处的sql%rowcount是null值,依偶的理解,触发器是这个事务的一部分,且没有其他的dml语句,为什么在触发器中得不到这个值?难道只能写一个审计表记录影响的行数吗?如果确实只能如此,那原因是什么?请帮忙解释一下,多谢多谢
------解决方案--------------------触发器只是一个机制,他不进行数据的INSERT,DELETE,UPDATE的,真正的操作还是在触发器以外做的
------解决方案--------------------学习