比如说我执行下面的操作:
update TestTable set NAME = 'wxl'
该sql语句将影响表中的多条记录,我想在语句级触发器中获得被影响的记录数目,可否?
如果用行级触发器,又应该如何实现?谢谢!!

解决方案 »

  1.   

    行级触发器是每一行被修改都触发一次,那怎么能够判断被影响的行是由同一SQL语句的执行呢?有没有最简单的例子啊?多谢了!!
      

  2.   

    那用包头作一个全局变量,记录触发器触发次数。CREATE OR REPLACE PACKAGE pkg_test
    AS
       v_recordcount number:=0;
    END pkg_test;
    /
    create or replace trigger name_tri
    before update on table
    for each row
    as
    begin
    pkg_test.v_recordcount:=pkg_test.v_recordcount+1;
    end name_tri;
    /
      

  3.   

    对楼上的建议补充两句:
    为了保证是对同一SQL语句结果的统计,可以再为此table增加一语句级触发器:
    create or replace trigger name_tri_after
    after update on table
    begin
     -- 先使用pkg_test.v_recordcount
     
     pkg_test.v_recordcount:=0; --清零
    end name_tri_after;
    /