现象:
在查询表时出现报错'ORA-01775: looping chain of synonyms'
同时能够确认对象存在有同义词
SQL> select count(*) from <table_name>;
select count(*) from <table_name>
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
原因:
官方文档Doc ID 1284844.1
可能是Bug 9648686 - ORA-01775 FOR A TABLE WITH FUNCTION BASED INDEX, AFTER THE FUNCTION WAS DROPPED
There is a function and a PUBLIC synonym for the function with the same name.
The function is used in a function-based index and everything is OK if the function exists.
If we drop the function, but the associated public synonym still exists, every attempt to reference the function results in ORA-1775 Looping chain of synonyms; which seems like correct behavior according to Note 392705.1.
The problem in this case is that we are not even able to perform a simple select from a base table, even without any filter, which seems like incorrect behavior. If we drop the PUBLIC synonym for the non-existing function, we can again select the table, although there is of course no function used by the existing function-based index.
In this case the function does not exist, however, there is a public synonym pointing to that function.
处理方法:
删掉同义词
|