包级别变量在oracle中存储在哪里?有桌子吗

时间:2019-05-07 05:34:39

标签: oracle plsql oracle11g plsqldeveloper plsql-package

我们在包级别声明的变量,可以在包内使用,在执行包时将这些变量存储在哪里。

我们可以检查他们的任何桌子吗?

检查了一些网站,包括oracle文档,但找不到我的问题的准确答案。请指教。

1 个答案:

答案 0 :(得分:0)

是的,您可以从*_IDENTIFIERS数据字典视图中获取它。

首先将PL / SQL编译器设置为在编译程序时分析程序的标识符。参见PL/Scope

ALTER SESSION SET 
plscope_settings='IDENTIFIERS:ALL'
/

启用PL / Scope并编译程序单元后,将在ALL_IDENTIFIERS视图中填充有关在该单元中找到的所有标识符的信息。

如果要在程序单元中查看所有已声明的变量,可以执行以下查询:

SELECT ai.object_name
     , ai.object_type
     , ai.name variable_name
     , ai.name context_name
  FROM all_identifiers ai
 WHERE ai.owner = USER AND 
       ai.TYPE = 'VARIABLE' AND 
       ai.usage = 'DECLARATION'
ORDER BY ai.object_name, 
ai.object_type, ai.usage_id