Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara membuat sinonim publik dengan benar

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - menggunakan variabel bind dalam klausa LIKE dari kursor dinamis

  2. pembuatan urutan di oracle

  3. dapatkah saya mempertahankan satu sesi Oracle dari dua klien oci?

  4. Setara dengan fungsi Group_concat MySQL di Oracle

  5. java.sql.SQLException:ORA-03115:tipe data atau representasi jaringan yang tidak didukung