我正在创建一个表(下面是代码) - 这是通过 unix 上的一些脚本执行的。该脚本还创建了一些同义词(不确定是什么/如何):
drop table BNS_SAA_MESSAGES;
CREATE TABLE BNS_SAA_MESSAGES
(
HostNumber varchar(50) NOT NULL,
SAAMessage varchar(2048) NOT NULL,
PRIMARY KEY (HostNumber)
);
我收到以下错误:
Processing bns_saa_messages
cat: cannot open bns_saa_messages.sql
Commit complete.
GRANT SELECT ON bns_saa_messages TO RL_ORDFX_RPT
GRANT SELECT ON bns_saa_messages TO RL_ORDFX_RPT
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
GRANT INSERT ON bns_saa_messages TO RL_ORDFX_RPT
GRANT INSERT ON bns_saa_messages TO RL_ORDFX_RPT
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
GRANT UPDATE ON bns_saa_messages TO RL_ORDFX_RPT
GRANT UPDATE ON bns_saa_messages TO RL_ORDFX_RPT
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
GRANT DELETE ON bns_saa_messages TO RL_ORDFX_RPT
GRANT DELETE ON bns_saa_messages TO RL_ORDFX_RPT
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
create public synonym bns_saa_messages for ORDMSO.bns_saa_messages
create public synonym bns_saa_messages for ORDMSO.bns_saa_messages
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
Commit complete.
我用谷歌搜索ORA-01775: looping chain of synonyms
,这似乎意味着一个东西被删除了,但有一个指向它的指针。我猜它发生在select
不再存在的“事物”期间。不确定这些东西是桌子还是其他东西。这是我从研究中收集到的。
知道如何创建我的表格吗?我尝试多次执行 SQL 代码,但无济于事 - 我每次都收到相同的错误。
也没有创建表:
SQL> select * from bns_saa_messages;
select * from bns_saa_messages
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
我已经查看了以下问题,但似乎没有帮助。也许您可以看到我看不到的东西:
当我使用 sqlldr 时出现 ORA-01775:循环同义词链错误
如何调试 ORA-01775:循环同义词链?
ORA-01775: 循环同义词链但没有同义词
谢谢
:更新:
执行后:select * from all_synonyms where synonym_name = 'BNS_SAA_MESSAGES';
根据克雷格的建议,我得到:
OWNER SYNONYM_NAME
------------------------------ ------------------------------
TABLE_OWNER TABLE_NAME
------------------------------ ------------------------------
DB_LINK
--------------------------------------------------------------------------------
PUBLIC BNS_SAA_MESSAGES
ORDMSO BNS_SAA_MESSAGES
:更新:2
运行:select * from all_tables where table_name = 'BNS_SAA_MESSAGES';
SQL> select * from all_tables where table_name = 'BNS_SAA_MESSAGES';
no rows selected