You need to enable JavaScript to run this app. 如何编写简单Oracle SQL查询指定表被哪些存储包引用
优惠活动
大模型
产品
解决方案
定价
更多

如何编写简单Oracle SQL查询指定表被哪些存储包引用

Oracle查询指定表被哪些存储包引用的实现方案

Oracle内置的系统依赖视图记录了所有数据库对象的依赖关系,你可以通过以下SQL实现需求,如果你没有DBA权限,可将代码中的DBA_DEPENDENCIES替换为ALL_DEPENDENCIES(仅返回你有权限访问的对象依赖)或USER_DEPENDENCIES(仅返回当前用户下的对象依赖)。

SELECT 
    OWNER AS 包所属用户,
    NAME AS 存储包名称,
    TYPE AS 对象类型,
    REFERENCED_OWNER AS 被引用表所属用户,
    REFERENCED_NAME AS 被引用表名
FROM 
    DBA_DEPENDENCIES
WHERE 
    REFERENCED_TYPE = 'TABLE'
    -- 替换为你要查询的目标表名,UPPER适配Oracle默认大写对象名的规则
    AND REFERENCED_NAME = UPPER('目标表名')
    -- 可选条件:如果存在多用户下同名表的情况,建议加上指定表所属用户
    AND REFERENCED_OWNER = UPPER('目标表所属用户名')
    -- 只筛选存储包,若需要包含包体引用可改为 TYPE IN ('PACKAGE', 'PACKAGE BODY')
    AND TYPE = 'PACKAGE'
ORDER BY 
    OWNER, NAME;
  • 输出结果会返回所有引用了目标表的存储包的所属用户、包名等信息
  • 如果你创建表时手动加了双引号指定了小写表名,去掉UPPER()函数直接填实际表名即可
  • 若执行报错提示视图不存在,替换DBA_DEPENDENCIES为ALL_DEPENDENCIES即可

内容的提问来源于stack exchange,提问作者HamsterBoomer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 06:00:02