Tôi nghĩ Justin đang đi đúng hướng. Những gì tôi nghĩ rằng nó thực sự có nghĩa là mydbowner.mytable không tồn tại.
Dưới đây là một ví dụ:
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
Tôi nghĩ rằng những gì xảy ra là Oracle cố gắng giải quyết mytable, không có mytable trong schema mbobak, vì vậy nó trông cho nó ở nơi công cộng, nó tìm thấy nó, và thấy rằng nó trỏ đến mbobak.mytable. Tuy nhiên, mbobak.mytable không tồn tại, vì vậy, nó tìm kiếm mytable trong PUBLIC, và có vòng lặp.
Và trên thực tế, nếu bạn tạo mytable, lỗi biến mất:
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
Vâng, tôi nhận ra rằng không thực sự hoàn toàn có ý nghĩa, như, một khi từ đồng nghĩa nào quyết tâm mbobak.mytable, và điều đó không được tìm thấy, có vẻ như với tôi, nó sẽ trả lại một bảng ORA-942 "không tồn tại", điều này có ý nghĩa hơn với tôi.
Nhưng, điều này dường như là cách hoạt động của nó.
QED
Hy vọng điều đó sẽ hữu ích.
Nguồn
2012-01-24 22:45:18
Hai câu trả lời là chính xác. Tôi đã thực hiện một số loại lỗi đánh máy và từ đồng nghĩa không được đề cập đến. – Joe