我们在生产中使用了 Oracle 11g。应用系统仍在积极开发中。获取导致任何错误的 SQL 语句将非常方便。
Oracle 是否提供标准函数来跟踪和记录这些语句和附加(调试)信息?
虽然我不确定这是否是最简单的方法,但您可以使用after servererror on database
触发器将所有错误记录到表中。
从将所有数据库错误记录到Ferdous Nadvi的表:
Run Code Online (Sandbox Code Playgroud)drop trigger log_errors_trig; drop table log_errors_tab; create table log_errors_tab ( error varchar2(30), timestamp date, username varchar2(30), osuser varchar2(30), machine varchar2(64), process varchar2(8), program varchar2(48)); create or replace trigger log_errors_trig after servererror on database declare var_user varchar2(30); var_osuser varchar2(30); var_machine varchar2(64); var_process varchar2(8); var_program varchar2(48); begin select username, osuser, machine, process, program into var_user, var_osuser, var_machine, var_process, var_program from sys.v_$session where audsid = userenv('sessionid'); insert into log_errors_tab values(dbms_standard.server_error(1),sysdate,var_user, var_osuser,var_machine,var_process,var_program); end; /
另请参阅PSOUG 上的Oracle 系统事件触发器和系统事件触发器的官方文档
归档时间: |
|
查看次数: |
5795 次 |
最近记录: |