朋友现场要做PL/SQL的DEBUG,工具选择了PL/SQL Developer,回家后跟我说不行,一DEBUG就出错,我刚开始以为是工具的问题,哪里出了毛病。这几天一直玩Oracle SQL Developer,就推荐朋友用这个工具试试。
但是,我也没有用过Oracle SQL Developer做过PL/SQL的DEBUG,只记得这个工具提供了这个功能。于是一起推敲了一下。用SCOTT用户连接到了数据库,做了一个Procedure,一DEBUG的时候(就点那个小虫子),就提示一条信息:
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: at line 1
This session requires DEBUG CONNECT SESSION and DEBUG ANY PROCEDURE user privileges.
Process exited.
刚开始一直忽视这个消息,后来实在憋得不行了,去网上查了查,找到了答案,原来SCOTT用户权限不够,没有DEBUG的权限。朋友的现场出现的状况和这个一样,原来根本就不是工具的问题(哪里会是工具的问题呢?呵呵)。解决方案如下:
◆Connect to the default database as SYSTEM.
◆Run "GRANT debug any procedure, debug connect session TO SCOTT;".
◆Re-connect to the default database as SCOTT.
之后不用说,用SCOTT用户去尽情的DEBUG吧。