oracle - 包级别变量存储在 oracle 中的什么位置?有桌子吗?
问题描述
我们在包级别声明的变量,可以在包中使用,这些变量在包执行时存储在哪里。
他们有我们可以检查的表格吗?
检查了一些网站,包括 oracle 文档,但找不到我的问题的准确答案。请指教。
解决方案
是的,您可以从*_IDENTIFIERS
数据字典视图中获取它。
首先设置 PL/SQL 编译器在编译时分析程序的标识符。见PL/范围
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
推荐阅读
- javascript - 如何在 Vuejs 上的 CKEditor 5 上激活和/或安装插件
- here-api - HERE Maps API 检索每个国家/地区的分层管理组
- google-sheets - 以近似匹配为条件的 GoogleSheet 值搜索
- java - 如何使用 Docx4J 向现有表中添加行
- amazon-web-services - 如何以编程方式获取 aws 短信发送报告?
- bash - 在 sed 中展开匹配的字符串
- python - 无法在 python 中使用 quiver 绘制风矢量
- r - r shiny selectInput - 仅在一列中可选择的类
- c++ - C++、Google、ServiceAccount、OAUTH2_JWT -> SHA256withRSA -> “error_description”:“无效的 JWT 签名。”
- c++11 - 在不同环境中缺少返回的相同非无效函数的不同结果