Myslím, že Justin je na správné cestě. Myslím, že to ve skutečnosti znamená, že mydbowner.mytable neexistuje.
Zde je příklad:
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
Myslím, že se děje to, že se Oracle pokouší vyřešit mytable, ve schématu mbobak žádná mytable není, takže ji hledá ve PUBLIC, najde ji a vidí, že ukazuje na mbobak.mytable. Ale mbobak.mytable neexistuje, takže hledá mytable v PUBLIC a tam je smyčka.
A ve skutečnosti, pokud vytvoříte mytable, chyba zmizí:
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
Ano, uvědomuji si, že to ve skutečnosti nedává úplně smysl, protože jakmile se veřejné synonymum vyřeší na mbobak.mytable, a ten nebyl nalezen, zdá se mi, mělo by vrátit chybu ORA-942 „tabulka nebo pohled neexistuje “, což mi dává mnohem větší smysl.
Ale zdá se, že to tak funguje.
QED
Doufám, že to pomůže.