我正在all_objects上执行选择查询:
select * from all_objects;
我收到以下错误:
从all_objects中选择* *
第1行的错误:ORA-01775:同义词的循环链
我不太清楚为什么会出现这个错误。我从这个错误中理解的是,定义了一个以某种方式引用自身的同义词。但是从all_objects中选择任何东西时都不应该出现这个错误。我的数据库是否已损坏。
P.S。我知道有关此错误的问题已经足够了,但所有给出的答案都没有回答我的问题。我是oracle的新手,这个问题的解决方案将会有很大的帮助。
答案 0 :(得分:0)
尝试此选择以查找有问题的同义词..
从此link引用。我无法检查它是否有效。
SELECT *
FROM dba_synonyms
WHERE table_owner = 'SYSADM'
AND (
NOT EXISTS (
SELECT *
FROM dba_tables
WHERE dba_synonyms.table_name = dba_tables.TABLE_NAME
)
AND NOT EXISTS (
SELECT *
FROM dba_views
WHERE dba_synonyms.table_name = dba_views.VIEW_NAME
)
AND NOT EXISTS (
SELECT *
FROM dba_sequences
WHERE dba_synonyms.table_name = dba_sequences.sequence_NAME
)
AND NOT EXISTS (
SELECT *
FROM dba_dependencies
WHERE type IN (
'PACKAGE'
,'PROCEDURE'
,'FUNCTION'
)
AND dba_synonyms.table_name = dba_dependencies.NAME
)
)