重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4866|回复: 0

[Oracle] 同义词有效性

[复制链接]
发表于 2017-6-29 11:40:14 | 显示全部楼层 |阅读模式
oracle数据库中同义词状态如何正确定位:现在我有一个同义词,依赖于表test。状态正常。
449305954721224f63.png
现在我把依赖表test删除掉之后,该同义词状态变为无效。
664845954728adb3c1.png
此时,当我查询这个同义词的时候会报错:ORA-00980: synonym translation is no longer valid。
但是查询同义词的时候会自动编译该同义词(等同于执行了alter synonym hr.COUNTRIE compile;),此时该无效同义词状态又会变为有效。
310845954737d092ea.png

而此时,如果我在创建一下该依赖对象,该同义词状态又变为了无效。再次查询该同义词即可查询到相应数据。
41225954745a9fcb6.png
当执行select 查询之后(或者手工comlile)该同义词状态又变为VALID。

总结:
无效同义词不管依赖对象存在不存在,只要对其进行comlile编译,该同义词状态都会变为有效。

问题:
我应该如何查询同义词状态是否为有效同义词。


1.每个同义词select一下可以实现,但是如果每个同义词都去select一下。这时所有的同义词状态都会变为VALID,此时可能引起业务混乱。
2.查询依赖对象是否存在,此时依赖对象状态可能也为invalid,需要再继续分析依赖对象invalid原因。

那么有没有其他简便的方法可以查询到同义词的真实有效性呢?



4031595471fbd7e10.png
495765954741014fd8.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-18 22:15 , Processed in 0.123694 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表