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

ORA-01036:C# के माध्यम से क्वेरी चलाते समय अवैध चर नाम/संख्या

मूल कारण

Oracle में आपके पास तीन प्रकार के SQL कथन हैं (और इसके अतिरिक्त PL/SQL ब्लॉक हैं):

  • डेटा परिभाषा भाषा में वक्तव्य (डीडीएल)। ये कथन डेटाबेस की संरचना को संशोधित करते हैं। वे आमतौर पर "ALTER" या "CREATE" क्रियाओं से शुरू होते हैं
  • डेटा संशोधन भाषा (डीएमएल) में वक्तव्य। वहाँ कथन तालिका के अंदर की सामग्री को संशोधित करते हैं, जिससे प्रत्येक तालिका की संरचना अपरिवर्तित रह जाती है। ये कथन आमतौर पर "INSERT", "MERGE" या "DELETE" से शुरू होते हैं।
  • जिन कथनों को मैं "क्वेरी भाषा" कहता हूं (ऐसा लगता है कि उनके लिए कोई विहित नाम नहीं है)। यह कथन क्रिया "SELECT" से शुरू होता है।

Oracle में बाइंड वेरिएबल्स की अनुमति केवल DML और क्वेरी स्टेटमेंट में कुछ विशेष स्थानों पर है। आप उन जगहों पर बाइंड वेरिएबल्स का उपयोग करने का प्रयास कर रहे हैं जहां उन्हें अनुमति नहीं है। इसलिए त्रुटि।

समाधान

बाइंड वैरिएबल के बिना अपना स्टेटमेंट बनाएं। स्ट्रिंग कॉन्सटेनेशन का उपयोग करने के बजाय पूरी क्वेरी स्ट्रिंग बनाएं।

यदि आप स्ट्रिंग को जोड़ने से पहले इनपुट को साफ करना चाहते हैं, तो DBMS_ASSERT पैकेज का उपयोग करें।

पृष्ठभूमि

बाइंड वेरिएबल्स का उपयोग केवल तभी किया जा सकता है जब Oracle वेरिएबल के मूल्य को जाने बिना एक क्वेरी प्लान बना सकता है। DDL स्टेटमेंट के लिए, कोई क्वेरी प्लान नहीं है। इसलिए बाइंड वैरिएबल की अनुमति नहीं है।

डीएमएल और क्वेरी स्टेटमेंट में, बाइंड वेरिएबल्स को केवल तभी अनुमति दी जाती है, जब उनका उपयोग टुपल (अंतर्निहित सेट थ्योरी के संबंध में) के अंदर किया जाता है, अर्थात जब मूल्य की तुलना किसी तालिका में मूल्य के साथ की जाएगी या जब मूल्य को एक तालिका में डाला जाएगा . उन्हें निष्पादन योजना की संरचना बदलने की अनुमति नहीं है (उदाहरण के लिए लक्ष्य तालिका बदलने या तुलनाओं की संख्या बदलने के लिए)।



  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 में POWER () फंक्शन

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

  3. ओरेकल नंबर प्रारूप पर अवांछित अग्रणी रिक्त स्थान

  4. Oracle तालिका गतिशील विभाजन

  5. सर्वोत्तम अभ्यास:Oracle क्लाउड के लिए रखरखाव और संवर्द्धन कार्य