当基表不存在时,为什么会收到不正确的错误“ORA-01775:同义词循环链”?

Ken*_*war 3 oracle-9i informatica

我使用 Informatica 来管理一些将数据加载到 Oracle 9i 数据仓库的 ETL 过程。

今天,我在 Informatica 会话日志中收到以下错误:

Message: Database driver error...
CMN_1022 [DELETE FROM SOME_TABLE 
WHERE PERIOD_NAME = 'OCT-12'

ORA-01775: looping chain of synonyms

Database driver error...
Function Name : executeDirect
SQL Stmt : DELETE FROM SOME_TABLE 
WHERE PERIOD_NAME = 'OCT-12'
Oracle Fatal Error
Database driver error...
Function Name : ExecuteDirect

Oracle Fatal Error
]
Run Code Online (Sandbox Code Playgroud)

现在这是一个印刷错误,表名拼写错误。Oracle 错误显然让我们走错了方向……所以只是想了解为什么在同义词没有问题的情况下会显示此错误。

Phi*_*lᵀᴹ 5

当您有一个“悬空”同义词时会发生这种情况,因为它指向自身。

例如:

SQL> create table blah ( a number );

Table created.

SQL> create public synonym blah for blah;

Synonym created.

SQL> drop table blah;

Table dropped.

SQL> select * from blah;
select * from blah
              *
ERROR at line 1:
ORA-01775: looping chain of synonyms


SQL>
Run Code Online (Sandbox Code Playgroud)