日期:2014-05-17  浏览次数:20791 次

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的,真正的操作还是在触发器以外做的
------解决方案--------------------
学习