Penso che Justin sia sulla strada giusta. Quello che penso in realtà significa è che mydbowner.mytable non esiste.
Ecco un esempio:
SQL> conn mbobak
Enter password:
Connected.
SQL> drop table mytable;
drop table mytable
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> create public synonym mytable for mbobak.mytable;
Synonym created.
SQL> select * from mytable;
select * from mytable
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
Penso che quello che sta succedendo è che Oracle tenta di risolvere MyTable, non v'è alcun MyTable nello schema mbobak, in modo che appaia in in pubblico, lo trova, e vede che punta a mbobak.mytable. Ma, mbobak.mytable non esiste, quindi, cerca mytable in PUBLIC, e c'è il ciclo.
E in effetti, se si crea MyTable, l'errore va via:
SQL> create table mytable as select * from dual;
Table created.
SQL> select * from mytable;
D
-
X
1 row selected.
SQL> drop table mytable;
Table dropped.
SQL> select * from mytable;
select * from mytable
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
Sì, mi rendo conto che in realtà non del tutto ha senso, in quanto, una volta che il sinonimo pubblico ha deliberato di mbobak.mytable, e questo non è stato trovato, mi sembra, dovrebbe restituire un errore ORA-942 "la tabella o la vista non esiste", che per me ha molto più senso.
Ma questo sembra essere il modo in cui funziona.
QED
Spero che questo aiuti.
fonte
2012-01-24 22:45:18
Le due risposte sono corrette. Ho fatto una specie di errore di battitura e il sinonimo non si riferiva a nulla. – Joe