原文地址:http://www.juliandyke.com/Diagnostics/Events/Events.html#Introduction
Oracle event的序号范围是从10000到10999。
1. 列出所有数据库事件
- 使用PL/SQL从数据库中查询数据库事件
SET SERVEROUTPUT ON
DECLARE
err_msg VARCHAR2(120);
BEGIN
dbms_output.enable (1000000);
FOR err_num IN 10000..10999
LOOP
err_msg := SQLERRM (-err_num);
IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN
dbms_output.put_line (err_msg);
END IF;
END LOOP;
END;
/
- Unix系统上查看event message文件
文件名称:$ORACLE_HOME/rdbms/mesg/oraus.msg
- Unix使用shell脚本查看
#/bin/sh
event=10000
while [ $event -ne 10999 ]
do
event=`expr $event + 1`
oerr ora $event
done
2. 列出当前会话开启动的数据库事件
SET SERVEROUTPUT ON
DECLARE
l_level NUMBER;
BEGIN
FOR l_event IN 10000..10999
LOOP
dbms_system.read_ev (l_event,l_level);
IF l_level > 0 THEN
dbms_output.put_line ('Event '||TO_CHAR (l_event)||' is set at level '||TO_CHAR (l_level));
END IF;
END LOOP;
END;
/