前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试541】在Oracle中,如何查找存储过程或视图中引用了哪些基表?

【DB笔试面试541】在Oracle中,如何查找存储过程或视图中引用了哪些基表?

作者头像
小麦苗DBA宝典
发布2019-09-29 15:19:30
2K0
发布2019-09-29 15:19:30
举报

题目部分

在Oracle中,如何查找存储过程或视图中引用了哪些基表?

答案部分

可以查询DBA_DEPENDENCIES视图,该视图记录了对象与对象之间的依赖关系,NAME列为当前对象,而REFERENCED_NAME为其依赖的基对象。所以,该视图也可以查询某个表被哪些对象所引用,从而知道该表是否可以被删除。

下例展示了DBA_SQL_PLAN_BASELINES视图依赖的对象:

  SH@PROD1> SELECT D.OWNER,
  2         D.NAME,
  3         D.TYPE,
  4         D.REFERENCED_OWNER,
  5         D.REFERENCED_NAME,
  6         D.REFERENCED_TYPE
  7    FROM DBA_DEPENDENCIES D
  8   WHERE D.NAME = 'DBA_SQL_PLAN_BASELINES';

OWNER     NAME                           TYPE               REFERENCED_OWNER               REFERENCED_NAME            REFERENCED_TYPE
--------- ------------------------------ ------------------ ------------------------------ -------------------------- ------------------
PUBLIC    DBA_SQL_PLAN_BASELINES         SYNONYM            SYS                            DBA_SQL_PLAN_BASELINES     VIEW
SYS       DBA_SQL_PLAN_BASELINES         VIEW               SYS                            SQLOBJ$AUXDATA             TABLE
SYS       DBA_SQL_PLAN_BASELINES         VIEW               SYS                            SQLOBJ$                    TABLE
SYS       DBA_SQL_PLAN_BASELINES         VIEW               SYS                            SQL$TEXT                   TABLE

可以看到,公共同义词DBA_SQL_PLAN_BASELINES依赖于和其同名的视图,而DBA_SQL_PLAN_BASELINES视图依赖于SYS.SQLOBJ$AUXDATA、SYS.SQLOBJ$和SYS.SQL$TEXT这3个基表。

& 说明:

有关Oracle数据字典的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2153324/

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档