[Q]如何获得所有的事件代码 [A] 事件代码范围一般从10000 to 10999,以下列出了这个范围的事件代码与信息 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系统上,事件信息放在一个文本文件里 $ORACLE_HOME/rdbms/mesg/oraus.msg 可以用如下脚本查看事件信息 event=10000 while [ $event -ne 10999 ] do event=`expr $event + 1` oerr ora $event done 对于已经确保的/正在跟踪的事件,可以用如下脚本获得 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; /