Go to the FreeLists Home Page Home Signup Help Login
 



[oracle-l] || [Date Prev] [08-2006 Date Index] [Date Next] || [Thread Prev] [08-2006 Thread Index] [Thread Next]

help about ora_sql_txt(sql_text)

  • From: "xiaoyan" <xiaoyezi.xyz@xxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 1 Aug 2006 23:01:36 +0800
How to get the sql text when a user executes a dml statment? I wrote a trigger 
like this:(a triiger on the table 'T' of schema 'TEST')

CREATE OR REPLACE TRIGGER test
  AFTER insert ON test.t  
declare
    sql_text ora_name_list_t; 
    state_sql dml_trace.ddl_sql%TYPE; 
BEGIN 
       FOR i IN 1..ora_sql_txt(sql_text) LOOP 
       state_sql := state_sql||sql_text(i); 
       INSERT INTO t VALUES (i);
    END LOOP; 
   
    INSERT INTO 
dml_trace(user_name,ipaddress,audit_time,schema_user,schema_object,ddl_sql) 
         
VALUES(sys_context('userenv','session_user'),sys_context('userenv','ip_address'),SYSDATE,
 
                ora_dict_obj_owner,ora_dict_obj_name,state_sql); 
EXCEPTION  
    WHEN OTHERS THEN  
        RAISE_APPLICATION_ERROR(-20333,'There is exception!' );
end test;

  but when a user executes a insert on test.t,there is a exception,and through 
a dbms_output.put_line('ora_sql_txt(sql_text)is'||ora_sql_txt(sql_text)) I 
found the value of ora_sql_txt(sql_text) is null,then how can I get a dml text? 




[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.