SQL> ALTER SYSTEM SET PLSQL_WARNINGS = ‘ENABLE:ALL‘; SQL> ALTER SESSION SET PLSQL_WARNINGS = ‘ENABLE:PERFORMANCE‘; SQL> ALTER PROCEDURE proc_raise_comm COMPILE PLSQL_WARNINGS=‘ENABLE:PERFORMANCE‘; SQL> ALTER SYSTEM SET PLSQL_WARNINGS = ‘DISABLE:ALL‘; SQL> ALTER SESSION SET PLSQL_warnings = ‘DISABLE:SERVER‘, ‘ENABLE:PERFORMANCE‘,‘ERROR:06002‘;当激活或禁止PL/SQL编译警告时,不仅可以使用ALTER SYSTEM,ALTER SESSION和ALTER PROCEDURE命令,还可以使用PL/SQL系统包DBMS_WARNINGS。示例如下:
SQL> CALL dbms_warning.set_warning_setting_string(VALUE => ‘ENABLE:ALL‘,scope => ‘SESSION‘);
CREATE OR REPLACE PROCEDURE proc_deadcode AS x NUMBER := 10; BEGIN IF x = 10 THEN x := 20; ELSE x := 100; --死代码(永远不会执行) END IF; END proc_deadcode;为了检测该子程序是否包含死代码,必须首先激活警告检查,然后重新编译子程序,最后使用SHOW ERRORS命令显示警告错误。示例如下:
SQL> ALTER SESSION SET PLSQL_WARNINGS = ‘ENABLE:INFORMATIONAL‘; SQL> ALTER PROCEDURE proc_deadcode COMPILE; SQL> SHOW ERRORS;(2)检测引起性能问题的代码
CREATE OR REPLACE PROCEDURE proc_updatesql(NAME VARCHAR2,salary VARCHAR2) AS BEGIN UPDATE emp SET sal = salary WHERE ename = NAME; END;为了检测该子程序是否会引起性能问题,应首先激活警告检查,然后重新编译子程序,最后再使用SHOW ERRORS命令显示警告错误。示例如下:
SQL> ALTER SESSION SET PLSQL_WARNINGS = ‘ENABLE:PERFORMANCE‘; SQL> ALTER PROCEDURE PROC_UPDATESQL COMPILE; SQL> SHOW ERRORS;
PL/SQL处理例外3(PL/SQL编译警告),布布扣,bubuko.com
原文:http://blog.csdn.net/com185272358/article/details/21787815