【问题标题】:PL/SQL: Retrieve names of procedures and functions within a packagePL/SQL:检索包中的过程和函数的名称
【发布时间】:2010-11-06 17:31:41
【问题描述】:

是否可以检索驻留在特定包中的所有过程和函数的名称?我知道可以从 ALL_SOURCE 视图中收集到它们(闻起来 hack-ish),但我更喜欢更规范的策略。

【问题讨论】:

    标签: oracle function plsql introspection procedure


    【解决方案1】:

    DBA_PROCEDURES 在包中有公共方法

    SELECT owner, 
           object_name AS package_name, 
           procedure_name AS method_name
      FROM dba_procedures
     WHERE object_type = 'PACKAGE'
    

    如果您还需要私有方法,则无法在数据字典中直接访问该信息。在这种情况下,您需要解析源代码(这显然会很痛苦,特别是如果您碰巧在包中的公共或私有方法中嵌套了私有方法)。

    【讨论】:

    • +1,您还可以在 USER_PROCEDURES 和 ALL_PROCEDURES 公共视图中获取此信息
    【解决方案2】:

    以下将返回特定包中的所有过程和函数名称:

    SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';
    

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多