今天测试部在跑系统时,老是会报ORA-00980错误。发现同义词有问题。
同义词创建时,不会去检测内容的准确性,即如果表不存在,也可以创建该表的同义词,但是select时会报ORA-00980 同义词转换不再有效(ORA-00980: synonym translation is no longer valid)的错误。
Tom对此错误的解释:
That error
simply means "synonym is still here, but the object it points to is inaccessible". It
could be inaccessible due to a missing grant, or due to the object not being there.
You need to find out what synonym it is, query the data dictionary to figure out what
object it points to and figure out why you no longer have access to that object.
ops$tkyte@ORA920> create synonym s for t;
Synonym created.
ops$tkyte@ORA920> select * from s where rownum = 1;
C
----------
1
ops$tkyte@ORA920> drop table t;
Table dropped.
ops$tkyte@ORA920> select * from s where rownum = 1;
select * from s where rownum = 1
*
ERROR at line 1:
ORA-00980: synonym translation is no longer valid
TOM解释:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:7095288486502
本文探讨了在Oracle数据库中遇到的ORA-00980错误,详细解释了同义词指向无效对象时产生的问题及解决方法。
1928

被折叠的 条评论
为什么被折叠?



