有没有办法将参数值绑定到导致eventtrigger错误的语句?

时间:2013-11-26 12:20:42

标签: oracle eventtrigger server-error input-parameters

无论如何都要获取输入参数值(如果有的话)绑定到从触发器导致数据库错误的a语句?无论SQL语句中是否有过程/函数调用。

我正在尝试在架构级别设置错误日志,这很正常。但是我找不到记录参数值的方法,这真的很有帮助。

到目前为止,我使用的触发器看起来像这样......

CREATE OR REPLACE TRIGGER t_error
   AFTER SERVERERROR
   ON SCHEMA
DECLARE
   PRAGMA AUTONOMOUS_TRANSACTION;
   l_sql       ora_name_list_t;

   l_sequence  NUMBER;
   l_statement CLOB;
   l_count     NUMBER;
   l_ts        TIMESTAMP (6);
BEGIN
   l_count := ora_sql_txt (l_sql);

   IF l_count >= 1 THEN
      FOR i IN 1 .. l_count LOOP
         l_statement := l_statement || l_sql (i);
      END LOOP;
   END IF;

   INSERT INTO oralog
        VALUES (
           seq_oralog.NEXTVAL,
           dbms_utility.format_call_stack,
           dbms_utility.format_error_stack,
           dbms_utility.format_error_backtrace,
           l_statement,
           SYSTIMESTAMP
        );

   COMMIT;
END t_error;
/

由于

0 个答案:

没有答案