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

ORA-00918:चयन में अस्पष्ट रूप से परिभाषित स्तंभ *

किसी क्वेरी के प्रक्षेपण में किसी दिए गए नाम का केवल एक उदाहरण हो सकता है। जैसा कि आपका WHERE क्लॉज दिखाता है, आपके पास आईडी नामक कॉलम के साथ कई टेबल हैं। क्योंकि आप * . का चयन कर रहे हैं आपके प्रोजेक्शन में कई कॉलम होंगे जिन्हें आईडी कहा जाता है। या यह ORA-00918 को प्रभावित करने वाले संकलक के लिए नहीं होता।

समाधान काफी सरल है:आपको नामित स्तंभों को स्पष्ट रूप से चुनने के लिए प्रक्षेपण का विस्तार करना होगा। फिर आप या तो डुप्लिकेट कॉलम छोड़ सकते हैं, बस (कहें) COACHES.ID बनाए रख सकते हैं या कॉलम उपनाम का उपयोग कर सकते हैं:coaches.id as COACHES_ID

शायद यह आपको बहुत टाइपिंग के रूप में प्रभावित करता है, लेकिन यह एकमात्र तरीका है। अगर यह कोई आराम है, SELECT * उत्पादन कोड में खराब अभ्यास के रूप में माना जाता है:स्पष्ट रूप से नामित कॉलम अधिक सुरक्षित होते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में, OR माध्य के साथ कोष्ठक का उपयोग करने का क्या अर्थ है?

  2. Oracle PLSQL ब्लॉक संरचना और प्रकार

  3. Oracle में इनर जॉइन के साथ अपडेट कैसे करें

  4. मेरे द्वारा चलाए जा रहे Oracle क्लाइंट का कौन सा संस्करण निर्धारित करने का सबसे अच्छा तरीका क्या है?

  5. Oracle 10g . पर पिवट करें