我们在包级别声明的变量,可以在包内使用,在执行包时将这些变量存储在哪里。
我们可以检查他们的任何桌子吗?
检查了一些网站,包括oracle文档,但找不到我的问题的准确答案。请指教。
答案 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