विवरण
ORA-00936 :लापता अभिव्यक्ति Oracle SQL में काम करने वाले सभी लोगों को एक सामान्य त्रुटि का सामना करना पड़ा होगा। यह आम तौर पर तब होता है जब आप Sql स्टेटमेंट में महत्वपूर्ण चीज़ों को छोड़ देते हैं यानी आपने जो चलाने की कोशिश कर रहे थे उसका एक महत्वपूर्ण हिस्सा छोड़ दिया था
संदर्भ :Oracle दस्तावेज़ीकरण
ORA-00936 का कारण:लापता अभिव्यक्ति
यह Oracle त्रुटि मुख्य रूप से SQL SELECT स्टेटमेंट से संबंधित है। एक स्पष्ट कारण यह है कि चुनिंदा कॉलम सूची गायब है या चयनित कॉलम में अभिव्यक्ति अपूर्ण हैं।
ORA-00936 गुम एक्सप्रेशन त्रुटि को हल करने के लिए चलाने के लिए सूची की जाँच करें
(1) ऐसा तब होता है जब आप चुनिंदा स्टेटमेंट में कॉलम को सूचीबद्ध करना भूल जाते हैं
Select from mrp_details; select from mrp_details; ERROR at line 1: ORA-00936: missing expression
सही तरीका यह होगा कि आप जिस कॉलम का चयन करना चाहते हैं उसे सूचीबद्ध करें
Select col1,col2 from mrp_details;
(2) हम कभी-कभी डिस्टिंक्ट स्टेटमेंट के उपयोग में गलती करते हैं। निम्नलिखित कथन ORA-00936 के साथ विफल हो जाएगा
select distinct a, b,c,d, distinct e from tab_example where b=’ABCD’ and c =1 and d= ‘JOHN’ ERROR at line 1: ORA-00936: missing expression
दो अलग-अलग उपवाक्य होने का कोई मतलब नहीं है और त्रुटि देते हैं
एक और उदाहरण
select a, b,c,d, distinct e from tab_example where b=’ABCD’ and c =1 and d= ‘JOHN’ ERROR at line 1: ORA-00936: missing expression
विशिष्ट का उपयोग केवल प्रारंभ में ही किया जा सकता है
तो सही कथन होगा
select distinct a, b,c,d, e from tab_example where b=’ABCD’ and c =1 and d= ‘JOHN’
(3) यह त्रुटि तब होती है जब व्यंजक के भाग को छोड़ दिया जाता है, इसके कुछ उदाहरण हैं
select 2**8 from dual; select 2**8 from dual; ERROR at line 1: ORA-00936: missing expression
**ऑपरेटर पीएलएसक्यूएल में काम करते हैं लेकिन एसक्यूएल में नहीं, हमें इसके लिए पावर फंक्शन का उपयोग करने की आवश्यकता है, तो सही तरीका होगा
select power(2,3) from dual; POWER(2,3) -------- 8
(4) एक और उदाहरण
select dept_name||' '|| from dept; select dept_name||' '|| from dept ERROR at line 1: ORA-00936: missing expression
यहां आप कॉन्सटेनेशन ऑपरेटर के बाद कॉलम नाम का उल्लेख करना भूल जाते हैं, सही SQL होगा
select dept_name||' '||dept_no from dept;
(5) जब आप कॉलम की सूची में अतिरिक्त अल्पविराम जोड़ते हैं
select dept_no, dept_name, ,dept_location from dept_table; select dept_no, dept_name, ,dept_location from dept_table; ERROR at line 1: ORA-00936: missing expression
इसलिए जब हम इस त्रुटि को मारते हैं तो हमें SQL कथन को दोबारा जांचना होगा और सुनिश्चित करें कि हम सामान्य गलती कर रहे हैं
(6) यह त्रुटि तब भी आएगी जब आप SQL कथन में From को छोड़ देंगे
select dept_no, dept_name, ,dept_location where dept_name like ‘A%’; select dept_no, dept_name, ,dept_location where dept_name like ‘A%’; ERROR at line 1: ORA-00936: missing expression
यहां हम खंड से उल्लेख करने से चूक गए। चयन कथन के तीन भाग हैं:बुद्धि के लिए:"चुनें-> से-> कहां
आप जहां खंड को छोड़ सकते हैं लेकिन चयन करें और से आवश्यक हैं
select dept_no, dept_name, ,dept_location from dept_table where dept_name like ‘A%’;
(7) यह नीचे दिए गए इंसर्ट स्टेटमेंट में भी हो सकता है
insert into table1 (col1,col2) values as select col1,col2 from table2; ERROR at line 1: ORA-00936: missing expression
हमें इस कथन के अनुसार मूल्यों की आवश्यकता नहीं है
insert into table1 (col1,col2) select col1,col2 from table2;
(8) हम कभी-कभी उपयोगकर्ता द्वारा परिभाषित कार्यों और ओरेकल कार्यों को मिला सकते हैं, और ऐसा करने से भ्रमित वाक्यविन्यास हो सकता है जिसके परिणामस्वरूप एक त्रुटि संदेश होगा। इसलिए उनसे बचें
(9) Oracle कुछ बग भी हैं
(a) बग:4567818 बेस बग#:4192148 - 9207 पर अप्रकाशित
(बी) बग:4212516 (अप्रकाशित) oracle 10.1.0.4.0 पर।
इन बग्स के साथ, ORA-00936 त्रुटि तब उत्पन्न होती है जब SELECT ON व्यू विफल हो जाता है। मूल रूप से, ORA-00936 तब फेंका जाता है जब एक SQL दृश्य "MY_VIEW को चुनिंदा t.*,other_tab_col से tab t, other_tab" के रूप में बनाया या प्रतिस्थापित किया जाता है। यह एक दृश्य परिभाषा बनाता है जो DBA_VIEWS में गलत है, इस प्रकार ORA को फेंकना- 00936 और संभावित कोर डंप। बग को ठीक करने और ORA-00936 को हल करने के लिए, मेटालिंक उपयुक्त संस्करण के लिए ये समाधान प्रदान करता है:
9.2.0.7 के लिए फिक्स:पैच 4192148 सोलारिस (64 बिट) और AIX5L आधारित सिस्टम के लिए उपलब्ध है। (64-बिट)। 10.1.0.4 के लिए फिक्स :
पैच 4212516 अधिकांश प्लेटफॉर्म के लिए उपलब्ध है।
संक्षेप में, ORA-00936 व्यंजक गायब है आपके SQL कथन की सावधानीपूर्वक जाँच करके हल किया जा सकता है।
संबंधित लेखORA-00911:अमान्य वर्ण
ORA-03113:संचार चैनल पर अंतिम फ़ाइल
ORA-00257
ORA-27154:स्टार्टअप के दौरान पोस्ट/प्रतीक्षा बनाना विफल
बाहरी तालिकाओं के साथ ORA-29913
ora-20001 11g(FND_HISTOGRAM_COLS) पर स्कीमा आंकड़े इकट्ठा करें
समवर्ती प्रबंधक:ORA-01427 के कारण क्लीनअप_नोड विफल