Oracle PL / SQL:如何在长包中找到未使用的变量?
发布时间:2021-01-08 11:12:22 所属栏目:百科 来源:网络整理
导读:请假设您有一个大约200,000行代码的Oracle PL / SQL包. 有没有快速的方法来检测声明的变量,但没有在包中使用? 提前感谢您的帮助. 编辑(2014年4月7日):我正在使用Oracle 10G. 编辑:我正在寻找一个纯PL / SQL解决方案. 解决方法 以下仅适用于11g R2.它看
请假设您有一个大约200,000行代码的Oracle PL / SQL包. 有没有快速的方法来检测声明的变量,但没有在包中使用? 提前感谢您的帮助. 编辑(2014年4月7日):我正在使用Oracle 10G. 编辑:我正在寻找一个纯PL / SQL解决方案. 解决方法以下仅适用于11g R2.它看起来像 PL/Scope has become available in 11g R1.使用PLSQL_WARNINGS =’ENABLE:ALL’,您将无法获得有关未使用变量的信息: SQL> !cat test.sql set serveroutput on alter session set plsql_warnings = 'ENABLE:ALL'; create or replace procedure foo is v_a number; v_b varchar2(10); begin dbms_output.put_line('hello world!'); end; / show errors exec foo SQL> @test Session altered. SP2-0804: Procedure created with compilation warnings Errors for PROCEDURE FOO: LINE/COL ERROR -------- ----------------------------------------------------------------- 1/1 PLW-05018: unit FOO omitted optional AUTHID clause; default value DEFINER used hello world! PL/SQL procedure successfully completed. SQL> 如您所见,唯一报告的警告与未使用的变量无关.而是必须使用PL/Scope. 以下示例源自Oracle 11g – Generating PL/SQL Compiler Warnings (Java style) using PL/Scope: SQL> alter session set plscope_settings = 'identifiers:all'; Session altered. SQL> alter procedure foo compile; SP2-0805: Procedure altered with compilation warnings SQL> show errors Errors for PROCEDURE FOO: LINE/COL ERROR -------- ----------------------------------------------------------------- 1/1 PLW-05018: unit FOO omitted optional AUTHID clause; default value DEFINER used SQL> @plsql-unused-variables.sql Enter value for name: foo old 10: where object_name = upper('&name') new 10: where object_name = upper('foo') Enter value for type: procedure old 11: and object_type = upper('&type') new 11: and object_type = upper('procedure') COMPILER_WARNING -------------------------------------------------------------------------------- V_B: variable is declared but never used (line 3) V_A: variable is declared but never used (line 2) SQL> 脚本plsql-unused-variables.sql只是上面提到的博客文章的剪切和粘贴.因为我发现它很有用,所以我也在Bitbucket中提供了该脚本. (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |