Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

सार्वजनिक पर्यायवाची शब्द को सही तरीके से कैसे बनाया जाए

मुझे लगता है कि जस्टिन सही रास्ते पर है। मुझे लगता है कि इसका वास्तव में मतलब यह है कि 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 नहीं है, इसलिए यह इसे सार्वजनिक में ढूंढता है, इसे पाता है, और देखता है कि यह mbobak.mytable को इंगित करता है। लेकिन, mbobak.mytable मौजूद नहीं है, इसलिए, यह सार्वजनिक में 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 को हल कर दिया गया है, और यह नहीं मिला है, ऐसा लगता है कि इसे एक त्रुटि ओआरए -942 वापस करनी चाहिए "तालिका या दृश्य मौजूद नहीं है ", जो मेरे लिए कहीं अधिक मायने रखता है।

लेकिन, ऐसा लगता है कि यह कैसे काम करता है।

क्यूईडी

आशा है कि यह मदद करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेपीए इकाई वर्ग 2 @GeneratedValue फ़ील्ड के साथ त्रुटि दे रहा है

  2. Oracle ने बाहरी सम्मिलित क्वेरी को छोड़ दिया

  3. प्रभावी लंबाई मापने के लिए समग्र अतिव्यापी खंड

  4. कर्सर अप्रचलन डंप

  5. एक साथ कई विभाजनों में से चुनें