2012-01-24 28 views
8

यह एक सुंदर मूर्खतापूर्ण है, लेकिन मुझे सहायता चाहिए।सही ढंग से सार्वजनिक पर्याय कैसे बनाएं

मेरे पास mydbowner के स्वामित्व वाली एक तालिका है। इसे mydbowner.mytable नाम दिया गया है। मैंने आदेश जारी करके सार्वजनिक पर्याय बनाने की कोशिश की:

mydbowner.mytable के लिए सार्वजनिक सिनीम Mytable बनाएं या बदलें;

जब मैं ऐसा करते हैं, और मैं मेज मैं क्वेरी: समस्या बिना समानार्थी शब्द

मैं इस पर्याय बनाने के पाशन श्रृंखला:

ORA-01775।

+0

दो उत्तरों सही हैं। मैंने कुछ प्रकार के टाइपो और समानार्थी को कुछ भी नहीं बताया। – Joe

उत्तर

12

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

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

QED

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

6

आपको जो त्रुटि मिल रही है, वह दर्शाती है कि mydbowner.mytable वास्तव में एक तालिका नहीं है।

SELECT object_type 
    FROM all_objects 
WHERE owner = 'MYDBOWNER' 
    AND object_name = 'MYTABLE' 

वापसी?

संबंधित मुद्दे