Oracle 有没有办法发现包头中定义了哪些公共常量?

Oracle 有没有办法发现包头中定义了哪些公共常量?,oracle,plsql,packages,Oracle,Plsql,Packages,我正试图编写一个工具,在代表我们API的包中对大量Oracle过程进行单元测试。API过程依赖于包头常量,据我所知,没有描述其中哪些可用的视图。我查阅了Oracle文档,但没有发现任何相关内容 有没有办法发现包头中定义了哪些公共常量?SQL或PL/SQL很好 我想答案是否定的,我将不得不提出一个包装器函数,如前所述,但我只是想问一下,万一我遗漏了一些聪明的东西 谢谢。您可以从*\u标识符静态数据库视图中获得所需信息 首先,启用PL/Scope并按照 以下查询返回公共常量和变量 SELECT ui

我正试图编写一个工具,在代表我们API的包中对大量Oracle过程进行单元测试。API过程依赖于包头常量,据我所知,没有描述其中哪些可用的视图。我查阅了Oracle文档,但没有发现任何相关内容

有没有办法发现包头中定义了哪些公共常量?SQL或PL/SQL很好

我想答案是否定的,我将不得不提出一个包装器函数,如前所述,但我只是想问一下,万一我遗漏了一些聪明的东西


谢谢。

您可以从*\u标识符静态数据库视图中获得所需信息

首先,启用PL/Scope并按照

以下查询返回公共常量和变量

SELECT ui.object_name, 
       ui.name,
       ui.type
  FROM user_identifiers ui
 WHERE ui.object_type = 'PACKAGE'
  AND  ui.usage       = 'DECLARATION'
  AND  ui.type IN ('CONSTANT', 'VARIABLE')
ORDER BY ui.object_name, 
         ui.name
/

您使用的是什么Oracle数据库版本?如果您能够(重新)编译启用PL/Scope的API。否则,我认为这种信息不会存储在数据字典中。@AlexPoole这真是太完美了——如果你回答这个问题,我会接受吗?谢谢我真的不能用链接作为答案,杰弗里·坎普已经做了所有的艰苦工作。我可以把它标记为复制品,但感觉也不太对@iAncarCenter先前添加并删除了一个类似的答案;“如果他恢复原状,这可能是一个很好的妥协?”亚历克斯。谢谢,我删除了我的答案,因为它的质量不够高!(它没有提到关键的重新编译步骤)。