<small id='CZ3Mt'></small><noframes id='CZ3Mt'>

        <bdo id='CZ3Mt'></bdo><ul id='CZ3Mt'></ul>

      <tfoot id='CZ3Mt'></tfoot>
      <i id='CZ3Mt'><tr id='CZ3Mt'><dt id='CZ3Mt'><q id='CZ3Mt'><span id='CZ3Mt'><b id='CZ3Mt'><form id='CZ3Mt'><ins id='CZ3Mt'></ins><ul id='CZ3Mt'></ul><sub id='CZ3Mt'></sub></form><legend id='CZ3Mt'></legend><bdo id='CZ3Mt'><pre id='CZ3Mt'><center id='CZ3Mt'></center></pre></bdo></b><th id='CZ3Mt'></th></span></q></dt></tr></i><div id='CZ3Mt'><tfoot id='CZ3Mt'></tfoot><dl id='CZ3Mt'><fieldset id='CZ3Mt'></fieldset></dl></div>

        <legend id='CZ3Mt'><style id='CZ3Mt'><dir id='CZ3Mt'><q id='CZ3Mt'></q></dir></style></legend>

        如何判断是否正在使用 PL/SQL 包、过程或函数?

        How can you tell if a PL/SQL Package, Procedure, or Function is being used?(如何判断是否正在使用 PL/SQL 包、过程或函数?)
          <bdo id='hMfCC'></bdo><ul id='hMfCC'></ul>

            <tfoot id='hMfCC'></tfoot>

                <tbody id='hMfCC'></tbody>

              <small id='hMfCC'></small><noframes id='hMfCC'>

            • <i id='hMfCC'><tr id='hMfCC'><dt id='hMfCC'><q id='hMfCC'><span id='hMfCC'><b id='hMfCC'><form id='hMfCC'><ins id='hMfCC'></ins><ul id='hMfCC'></ul><sub id='hMfCC'></sub></form><legend id='hMfCC'></legend><bdo id='hMfCC'><pre id='hMfCC'><center id='hMfCC'></center></pre></bdo></b><th id='hMfCC'></th></span></q></dt></tr></i><div id='hMfCC'><tfoot id='hMfCC'></tfoot><dl id='hMfCC'><fieldset id='hMfCC'></fieldset></dl></div>

                <legend id='hMfCC'><style id='hMfCC'><dir id='hMfCC'><q id='hMfCC'></q></dir></style></legend>
                  本文介绍了如何判断是否正在使用 PL/SQL 包、过程或函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  如何判断是否正在使用 PL/SQL 包、过程或函数?是否有包含有关 PL/SQL 包、过程或函数使用情况的统计信息的 Oracle 表或视图?

                  How can you tell if a PL/SQL Package, Procedure, or Function is being used? Is there an Oracle table or view that contains statistics on PL/SQL Package, Procedure, or Function usage?

                  推荐答案

                  你也可以试试查询USER/ALL_source:

                  You can also try querying USER/ALL_source:

                  SELECT * FROM all_source
                  where UPPER(TEXT) like UPPER('%procedure_name%')
                  

                  SELECT * FROM all_source
                  where UPPER(TEXT) like UPPER('%package.function_name%')
                  

                  您必须忽略自我引用,但这应该很容易发现.

                  You'll have to ignore self references, but that should be easy to spot.

                  您还需要检查来自 user/all_views 的查看"源.请参阅有关查询视图源的另一个问题.

                  You'll also need to check "view" source from user/all_views. See the other question about querying view source though.

                  您还可以检查包或顶级函数/过程是否与

                  you can also check if a package or top level function/procedure is used with

                  select * from all_dependencies
                  where referenced_name like '%PACKAGE_NAME%';
                  

                  注意:根据需要将 user_ 切换为 all_/dba_

                  NB: switch user_ with all_/dba_ as needed

                  如果您专门寻找未调用的函数,那么另一种选择是在打开 WARNINGS 的情况下编译您的代码,然后寻找 PLW-06002 和 LPW-06006

                  if you are specifically looking for uncalled functions then another option is to compiler your code with WARNINGS turned on and then look for PLW-06002 and LPW-06006

                  exec DBMS_WARNING.add_warning_setting_cat('ALL','ENABLE','SESSION')
                  create or replace function x return number
                  as
                  procedure y is begin null; end;
                  begin
                  return 0;
                  return 1;
                  end;
                  
                  show errors
                  
                  Errors for FUNCTION X:
                  
                  LINE/COL ERROR
                  -------- -----------------------------------------------------------------
                  1/1      PLW-05018: unit X omitted optional AUTHID clause; default value DEFINER used
                  3/1      PLW-06006: uncalled procedure "Y" is removed.
                  6/1      PLW-06002: Unreachable code
                  

                  这篇关于如何判断是否正在使用 PL/SQL 包、过程或函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How to redirect the output of DBMS_OUTPUT.PUT_LINE to a file?(如何将 DBMS_OUTPUT.PUT_LINE 的输出重定向到文件?)
                  How do I get column datatype in Oracle with PL-SQL with low privileges?(如何使用低权限的 PL-SQL 在 Oracle 中获取列数据类型?)
                  Get a list of all functions and procedures in an Oracle database(获取 Oracle 数据库中所有函数和过程的列表)
                  Why cannot I create triggers on objects owned by SYS?(为什么我不能在 SYS 拥有的对象上创建触发器?)
                  Returning result even for elements in IN list that don#39;t exist in table(即使对于表中不存在的 IN 列表中的元素也返回结果)
                  Reset Sequence in oracle 11g(oracle 11g 中的重置序列)

                    • <bdo id='IiZEy'></bdo><ul id='IiZEy'></ul>
                    • <legend id='IiZEy'><style id='IiZEy'><dir id='IiZEy'><q id='IiZEy'></q></dir></style></legend>
                      • <tfoot id='IiZEy'></tfoot>

                        <small id='IiZEy'></small><noframes id='IiZEy'>

                          • <i id='IiZEy'><tr id='IiZEy'><dt id='IiZEy'><q id='IiZEy'><span id='IiZEy'><b id='IiZEy'><form id='IiZEy'><ins id='IiZEy'></ins><ul id='IiZEy'></ul><sub id='IiZEy'></sub></form><legend id='IiZEy'></legend><bdo id='IiZEy'><pre id='IiZEy'><center id='IiZEy'></center></pre></bdo></b><th id='IiZEy'></th></span></q></dt></tr></i><div id='IiZEy'><tfoot id='IiZEy'></tfoot><dl id='IiZEy'><fieldset id='IiZEy'></fieldset></dl></div>
                              <tbody id='IiZEy'></tbody>