比方说有表table1 其中含字段 ddate Date类型;我想在本表插入更新或者删除之后,取得当前表中ddate最新的数据。请问各位如何实现!!!

解决方案 »

  1.   

    简单写了些,仅供参考
    create or replace trigger t_test
     after update on test
     for each row
     declare
     maxid number;
     pragma autonomous_transaction;
     begin 
     commit;
     select max(id) into maxid from test where id<>:old.id;
     dbms_output.put_line(greatest(maxid,:new.id));
     end;
    -------------------------------------------------------
    SQL> set autocommit on;
    SQL> set serveroutput on;
    SQL> select * from test;        ID
    ----------
             2
             4
             7
           129SQL> update test set id=130 where id=129;
    130已更新 1 行。提交完成。
    SQL> update test set id=120 where id=130;
    120已更新 1 行。提交完成。
    SQL> update test set id=6 where id=120;
    7已更新 1 行。提交完成。
      

  2.   

    触发器里能Commit吗?触发器里能对本表进行select吗?楼上的说的是不是有问题
      

  3.   

    触发器的数据会自行提交,不要Commit
      

  4.   

    如果要在应用上实现,我觉得还不如用个procedure带上output参数就可以了。