Creo que Justin está en el camino correcto. Lo que creo que significa en realidad es que mydbowner.mytable no existe.
He aquí un ejemplo:
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
Creo que lo que sucede es que Oracle intenta resolver mytable, no hay mytable en el esquema de mbobak, entonces lo busca en PUBLIC, lo encuentra y ve que apunta a mbobak.mytable. Pero, mbobak.mytable no existe, entonces, busca mytable en PUBLIC, y ahí está el bucle.
Y de hecho, si crea mytable, el error desaparece:
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í, me doy cuenta de que en realidad no tiene mucho sentido, ya que, una vez que el sinónimo público se resolvió en mbobak.mytable, y no se encuentra, me parece que debería devolver un error ORA-942 "la tabla o la vista no existe ", lo que tiene mucho más sentido para mí.
Pero parece que así es como funciona.
QED
Espero que ayude.