【问题标题】:Is there any way to find package name of a given procedure in oracle 11g有没有办法在 oracle 11g 中找到给定过程的包名
【发布时间】:2026-01-21 15:55:02
【问题描述】:

有没有办法在 oracle 11g 中找到给定过程的包名。

问候, 塔拉克

【问题讨论】:

    标签: oracle package procedure


    【解决方案1】:

    您可以使用USER_PROCEDURES 视图,因为它在OBJECT_NAME 列中包含包名称,并在PROCEDURE_NAME 列中包含包含OBJECT_TYPE = 'PACKAGE' 的记录的过程。

    使用以下查询:

    SELECT OBJECT_NAME AS PACKAGE_NAME,
           PROCEDURE_NAME
      FROM USER_PROCEDURES
     WHERE OBJECT_TYPE = 'PACKAGE'
       AND PROCEDURE_NAME = 'YOUR_PROCEDURE_NAME';
    

    【讨论】:

    • 感谢 Tejash!我得到了结果。
    • 不过,伙计们,这不会找到 private 过程/函数(仅在包体中声明的,而不是在包规范中公开的。
    【解决方案2】:

    我就是这样做的:

    select *
    from user_source
    where lower(text) like '%my_procedure%'
      and type = 'PACKAGE BODY';
    

    【讨论】:

    • 谢谢小脚!我得到了结果
    最近更新 更多