今天测试部在跑系统时,老是会报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