ORA-01775:在all_objects上执行select命令时循环同义词链?

时间:2014-12-19 15:35:49

标签: sql oracle oracle10g

我正在all_objects上执行选择查询:

select * from all_objects;

我收到以下错误:

  

从all_objects中选择*                 *

     

第1行的错误:ORA-01775:同义词的循环链

我不太清楚为什么会出现这个错误。我从这个错误中理解的是,定义了一个以某种方式引用自身的同义词。但是从all_objects中选择任何东西时都不应​​该出现这个错误。我的数据库是否已损坏。

P.S。我知道有关此错误的问题已经足够了,但所有给出的答案都没有回答我的问题。我是oracle的新手,这个问题的解决方案将会有很大的帮助。

1 个答案:

答案 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
            )
        )