Saya pikir Justin berada di jalur yang benar. Yang menurut saya sebenarnya berarti bahwa mydbowner.mytable tidak ada.
Ini contohnya:
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
Saya pikir apa yang terjadi adalah bahwa Oracle mencoba untuk menyelesaikan mytable, tidak ada mytable dalam skema mbobak, jadi mencarinya di PUBLIC, menemukannya, dan melihat bahwa itu menunjuk ke mbobak.mytable. Tapi, mbobak.mytable tidak ada, jadi, ia mencari mytable di PUBLIC, dan ada loopnya.
Dan faktanya, jika Anda membuat mytable, kesalahan akan hilang:
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
Ya, saya menyadari itu tidak sepenuhnya masuk akal, karena, setelah sinonim publik diselesaikan menjadi mbobak.mytable, dan itu tidak ditemukan, menurut saya, itu akan mengembalikan kesalahan ORA-942 "tabel atau tampilan tidak ada ", yang jauh lebih masuk akal bagi saya.
Tapi, sepertinya ini cara kerjanya.
QED
Semoga membantu.