oracle的trigger,Session的问题(超难)有一个table的一个栏位(process_name),时常会被莫明奇妙的修改,现在做一个triger,作用是(1)保存修改前的数据,(2)追踪是哪个session做的。CREATE OR REPLACE TRIGGER MING_BEFORE_QTY
  BEFORE update on SAJET.SYS_PROCESS --另外又定义了一个after型
  FOR EACH ROW
declare
  -- local variables here
begin
  INSERT INTO HT_PROCESS(PROCESS_ID, PROCESS_NAME)
    VALUES(:OLD.PROCESS_ID, :OLD.PROCESS_NAME);
  
  INSERT INTO  MING_QTY1
   SELECT L.SQL_TEXT, S.*
   FROM V$SQL L, V$SESSION S 
        WHERE UPPER(L.SQL_TEXT) LIKE 'UPDATE%PROCESS%'
              AND S.SQL_ADDRESS = L.ADDRESS;          
end  MING_BEFORE_QTY;HT_PROCESS能保存到修改前的数据,但是MING_QTY1却是空的(没有跟踪到相应的session)。但是在select * from V$SQL 
WHERE UPPER(L.SQL_TEXT) LIKE 'UPDATE%PROCESS%'却能看到是那一条update语句.我已多次修改LIKE 'UPDATE%PROCESS%' 这一处语句,它们在V$SQL里能查到相应的SQL_TEXT,但在V$session里就是查不相应的session.