You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何找出通过指定DB Link访问且被视图引用的数据库对象

找出视图中使用的DB Link关联对象列表

可以通过查询Oracle的数据字典视图获取目标列表,以下是两种实用方法:

方法1:通过依赖关系查询

利用ALL_DEPENDENCIES(有DBA权限改用DBA_DEPENDENCIES)关联视图信息,筛选依赖指定DB Link的远程对象:

SELECT DISTINCT
    d.referenced_owner AS remote_owner,
    d.referenced_name AS remote_object_name,
    d.referenced_type AS remote_object_type,
    v.view_name AS local_view_name
FROM
    ALL_VIEWS v
JOIN
    ALL_DEPENDENCIES d 
        ON v.owner = d.owner 
        AND v.view_name = d.name
WHERE
    d.referenced_type = 'DATABASE LINK'
    AND d.referenced_name IN ('你的DB_LINK1名称', '你的DB_LINK2名称')
    AND d.type = 'VIEW';

方法2:通过视图定义文本匹配

直接解析视图的SQL定义,提取远程对象信息:

SELECT DISTINCT
    REGEXP_SUBSTR(v.text, '@(\w+)', 1, 1, NULL, 1) AS db_link_name,
    REGEXP_SUBSTR(v.text, '(\w+)\.(\w+)@', 1, 1, NULL, 1) AS remote_owner,
    REGEXP_SUBSTR(v.text, '(\w+)\.(\w+)@', 1, 1, NULL, 2) AS remote_object_name,
    v.view_name AS local_view_name
FROM
    ALL_VIEWS v
WHERE
    v.text LIKE '%@你的DB_LINK1名称%' 
    OR v.text LIKE '%@你的DB_LINK2名称%';

注意事项

  • 替换SQL中的DB Link名称为实际名称
  • remote_object_type会显示对象类型(TABLE、MATERIALIZED VIEW等)
  • 若仅需去重的远程对象列表,可去掉local_view_name字段并保留DISTINCT

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:55:58