如何判断谁往表里增加了一条纪录? 

解决方案 »

  1.   

    事先打开审计功能或者在表上建立触发器。
    事后可以通过logmnr查看。
      

  2.   

    用触发器
    create or replace trigger tri_test 
    after insert 
    on tb -->判断此表是否被插入记录
    for each row 
    begin 
    insert into ta(日期) values(sysdate) ;
    commit;
    end ;
      

  3.   

    建立表级触发器是个好办法,能够跟踪到更多的信息.
    可以在应用程序中嵌入包DBMS_APPLICATION_INFO,利用DBMS_APPLICATION_INFO.SET_CLIENT_INFO设置CLIENT_INFO信息,然后在trigger中用DBMS_APPLICATION_INFO.READ_CLIENT_INFO得到其设置的信息,可以判断是不是应用程序插入了数据。
      

  4.   

    用数据库审计即可,
    先设置audit_trail参数,决定审计结果保存地点;
    然后执行audit insert on schema.table_name whenever successful;
    这样就行了,在有人做insert操作后,根据audit_trail参数到相应位置去看审计结果就行了。建触发器其实也是审计,是基于值的审计,比数据库审计慢,不过审计的内容可以更详细。 你的需求上面我说的3种方法都能实现。
      

  5.   

    不一定要在oracle中判断,也可以在程序端判断!
    insert into来判断!