ジャスティンは正しい方向に進んでいると思います。私が実際に意味していると思うのは、 mydbowner.mytable が存在しないということです。
次に例を示します。
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
何が起こっているかというと、Oracle が mytable を解決しようとしていて、mbobak スキーマに mytable がないため、PUBLIC でそれを探し、それを見つけ、それが mbobak.mytable を指していることを確認します。しかし、mbobak.mytable が存在しないため、PUBLIC で mytable を検索し、ループが発生します。
実際、mytable を作成すると、エラーはなくなります。
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
はい、パブリック シノニムが mbobak.mytable に解決され、それが見つからない場合、エラー ORA-942 "テーブルまたはビューが存在しません」、それは私にとってはるかに理にかなっています。
しかし、これはそれがどのように機能するかのようです。
QED
それが役立つことを願っています。