细粒度依赖(一)通过数据字典找到数据库对象之间的引用关系

本文介绍了在开发中如何利用Oracle的数据字典DBA_DEPENDENCIES来查找和管理数据库对象之间的引用关系,以解决因对象变更导致的程序错误。通过理解DEPENDENCY_TYPE的HARD和REF类型,可以查询哪些对象依赖于特定表,或者一个程序引用了哪些数据库对象。建立依赖关系管理系统能有效防止因对象变更带来的问题。
摘要由CSDN通过智能技术生成

开发过程中,我们经常碰到这样的问题,一个好好的程序某一天忽然报错了。

重新编译,发现程序里引用的某个对象不存在或表结构被改了,往往是在团队合作时,由于业务需要某个成员修改了结构,但是不清楚哪些地方引用了这个对象,因此没有处理好善后工作,最后搞得焦头烂额。

事实上,ORACLE提供了细粒度依赖的数据字典*_dependencies,可以找出引用关系来解决这个麻烦。

先看下数据字典的结构:


从表结构可以看出,这个视图里包含了对远程数据库对象的引用关系,以下是我的一个数据库下面远程对象的引用关系:


下图是我的一个生产数据库中对象类型的引用矩阵,这是实际用到的引用关系,并不涵盖Oracle支持的所有引用关系。

其中DEPENDENCY_TYPE分为HARD和REF两种,对于这2种类型的解释是REF for REF dependency HARD otherwise(引用关系是REF,其余都是HARD)。


了解了这个数据字典以后,我们就会经常用到2个查询:

1.查找哪些对象依赖于(引用了&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值