光辉飞翔

导航

 

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

posted on 2012-09-11 11:53  光辉飞翔  阅读(36681)  评论(0编辑  收藏  举报