Ik denk dat Justin op de goede weg is. Wat ik denk dat het eigenlijk betekent, is dat mydbowner.mytable niet bestaat.
Hier is een voorbeeld:
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
Ik denk dat Oracle probeert mytable op te lossen, er is geen mytable in mbobak-schema, dus zoekt het ernaar in PUBLIC, vindt het en ziet dat het naar mbobak.mytable verwijst. Maar mbobak.mytable bestaat niet, dus het zoekt naar mytable in PUBLIC, en daar is de lus.
En in feite, als u mytable maakt, verdwijnt de fout:
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
Ja, ik realiseer me dat dit niet helemaal logisch is, omdat, zodra het openbare synoniem is opgelost naar mbobak.mytable, en dat niet is gevonden, het naar mijn mening een fout zou moeten retourneren ORA-942 "tabel of weergave bestaat niet ", wat voor mij veel logischer is.
Maar zo lijkt het te werken.
QED
Ik hoop dat dat helpt.