关于对象依赖性(objects Dependencies)

通过一些试验加深了文档描述,下面列出几点平常不太注意到的内容:


1、视图的依赖性
如果基表(base table)的结构定义修改了
那么基于此表通过select * from table创建的视图,将失效;
那么基于此表通过select C1,C2 from table创建的视图,将有可能失效。

如果基表(base table)drop后重新创建同名对象,表结构不变的情况下
那么基于此表创建的视图,将不会失效。
2、程序单元的依赖性
如果依赖对象的引用对象是表或者视图,那么引用对象的任何结构定义修改或者drop创建都将导致依赖对象失效。
只是oracle会在首次执行时候首先自动重新编译依赖对象,因此大家可能不会觉察到而已。
如果引用对象是package,package的声明变更将导致依赖对象失效,如果仅仅是package的定义(body)的变更,依赖对象仍然有效。

上述两点中,第1点可能是大家不太会注意的,经常会遇到如下情况:
客户在使用WEB前端引用过程中报告了XX视图无效的错误~~囧,记得基表变更后重新更新了视图就ok了。

-The End-

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值