नवीनतम लेख
घर / समाचार / Oracle डेटाबेस सर्वर की त्रुटि प्रबंधन की विशेषताएं। Oracle त्रुटियाँ: डेटाबेस त्रुटियाँ, स्पष्टीकरण और उपचारात्मक क्रिया oracle अपवाद विकल्प

Oracle डेटाबेस सर्वर की त्रुटि प्रबंधन की विशेषताएं। Oracle त्रुटियाँ: डेटाबेस त्रुटियाँ, स्पष्टीकरण और उपचारात्मक क्रिया oracle अपवाद विकल्प

पीएल/एसक्यूएल में अपवाद हैंडलिंग

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

संबंधपरक डेटाबेस में, डेटाबेस हमेशा SQLCODE नामक एक विशेष चर को किसी भी कॉलिंग प्रोग्राम में वापस भेज देगा। SQLCODE प्रोग्राम से डेटाबेस तक पहुंच कॉल से लौटा, Oracle द्वारा नामित बूलियन चर (नीचे तालिका देखें) में अनुवादित किया गया है।

पीएल/एसक्यूएल अपवाद चर

ACCESS_INTO_NULL

COLLECTION_IS_NULL

CURSOR_ALREADY_OPEN

DUP_VAL_ON_INDEX

ROWTYPE_MISMATCH

SUBSCRIPT_BEYOND_COUNT

SUBSCRIPT_OUTSIDE_LIMIT

SYS_INVALID_ROWID

TIMEOUT_ON_RESOURCE

उदाहरण के लिए, यदि डेटाबेस SQLCODE=100 देता है, तो PL/SQL चर NO_DATA_FOUND TRUE पर सेट हो जाएगा।

अपवाद के बिना, सभी PL/SQL प्रोग्रामों को रद्द करने के लिए बनाया जाना चाहिए जब भी Oracle डेटाबेस द्वारा कोई अनपेक्षित SQLCODE लौटाया जाता है।

यह डेटाबेस पर विनाशकारी प्रभाव डाल सकता है, खासकर जब पीएल/एसक्यूएल झूठे परिसर के आधार पर डेटा को टेबल में लोड करता है। इस त्रासदी को रोकने के लिए, Oracle एक WHEN अन्य चर प्रदान करता है, जो कि TRUE पर सेट होता है यदि Oracle डेटाबेस से कोई अनपेक्षित SQLCODE लौटाया जाता है।

उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:

घोषित
err_num NUMBER;
err_msg VARCHAR2 (100);
शुरू करना
...
अपवाद
...
जब अन्य तब
err_num:= SQLCODE;
err_msg: = सबस्ट्र (एसक्यूएलईआरआरएम, 1, 100);
त्रुटियों में INSERT VALUES (err_num, err_msg);
अंत;

यहां हम देखते हैं कि हमारे अपवाद हैंडलिंग में एक अपवाद क्षेत्र परीक्षण है जब अन्य। यदि अन्य बूलियन चर TRUE है, तो PL/SQL कोड SQLCODE और संबंधित त्रुटि संदेश (SQLERRM) को कैप्चर करता है, और इन मानों को एक विशेष Oracle त्रुटि तालिका में संग्रहीत करता है।

Oracle अपवाद हैंडलिंग

डेवलपर्स अक्सर त्रुटि की स्थिति को चिह्नित करते हैं और Oracle अपवाद हैंडलिंग और IF-THEN तर्क के उपयोग का उपयोग करके उन्हें संभालते हैं।

त्रुटियों को फ़्लैग करने के लिए IF-THEN तर्क का उपयोग करके Oracle अपवाद हैंडलिंग

उपरोक्त उदाहरण बूलियन चर का उपयोग करके Oracle अपवाद हैंडलिंग को दिखाता है bAidAmountठीक हैप्रत्येक छात्र रिकॉर्ड के प्रसंस्करण के दौरान एक शर्त का ट्रैक रखने के लिए।

Oracle अपवाद हैंडलिंग के इस उपयोग का प्रदर्शन पर प्रभाव पड़ता है। Oracle अपवाद हैंडलिंग त्रुटि स्थिति के परीक्षण के लिए कई निर्देशों का उपयोग करता है। प्रत्येक Oracle अपवाद हैंडलिंग निर्देश को पूरा करने के लिए CPU चक्रों की आवश्यकता होती है। एक बेहतर दृष्टिकोण में CPU चक्रों को बर्बाद करने से बचने के लिए Oracle अपवाद हैंडलिंग का उपयोग शामिल है, जैसा कि नीचे देखा गया है:

प्रदर्शन में सुधार के लिए Oracle अपवाद हैंडलर का उपयोग करना।

Oracle अपवाद प्रबंधन के इस उदाहरण में, xAID_AMOUNT_OKअपवाद स्पष्ट रूप से लूप के अंदर उठाया जाता है। यह निष्पादन को उन निर्देशों को छोड़ने की अनुमति देता है जो छात्र के GPA की जाँच के बाद होते हैं, Oracle अपवाद हैंडलिंग में उपयोग किए जाने वाले सीपीयू में कटौती करते हैं।

Oracle अपवाद हैंडलिंग अत्यधिक प्रदर्शन कुशल है। जब एक Oracle अपवाद उठाया जाता है, तो ब्लॉक के भीतर के सभी निर्देशों को बायपास कर दिया जाता है ताकि अपवाद को Oracle अपवाद हैंडलर द्वारा नियंत्रित किया जा सके। प्रदर्शन को उल्लेखनीय रूप से बढ़ावा देने के लिए Oracle अपवाद हैंडलिंग का उपयोग किया जा सकता है।

बर्लसन अमेरिकी टीम है

टिप्पणी: यह Oracle प्रलेखन हमारे DBA प्रदर्शन ट्यूनिंग परामर्श पेशेवरों द्वारा उपयोग के लिए एक समर्थन और Oracle प्रशिक्षण संदर्भ के रूप में बनाया गया था। हमारे ओरेकल फ़ोरम पर सवाल पूछने में संकोच न करें ।

सत्यापित करना अनुभव! Oracle समर्थन विशेषज्ञ की सेवाओं का उपयोग करने पर विचार करने वाले किसी भी व्यक्ति को स्वतंत्र रूप से अपनी साख और अनुभव की जांच करनी चाहिए, और विज्ञापनों और स्व-घोषित विशेषज्ञता पर भरोसा नहीं करना चाहिए। सभी वैध Oracle विशेषज्ञ अपनी .

इरेटा? प्रदर्शन सुधारना


कॉपीराइट 1996 - 2017

बर्लसन द्वारा सुरक्षित सभी अधिकार

® Oracle Corporation का पंजीकृत ट्रेडमार्क है।

वार्तालाप द्वारा प्रदान की गई दूरस्थ आपातकालीन सहायता

इस अध्याय में, हम PL/SQL में अपवादों पर चर्चा करेंगे। एक अपवाद एक प्रोग्राम निष्पादन के दौरान एक त्रुटि स्थिति है। पीएल/एसक्यूएल प्रोग्रामर को ऐसी स्थितियों को पकड़ने के लिए समर्थन करता है अपवादकार्यक्रम में अवरोध और त्रुटि की स्थिति के खिलाफ उचित कार्रवाई की जाती है। अपवाद दो प्रकार के होते हैं -

  • सिस्टम-परिभाषित अपवाद
  • उपयोगकर्ता द्वारा परिभाषित अपवाद

अपवाद हैंडलिंग के लिए सिंटेक्स

अपवाद से निपटने के लिए सामान्य वाक्य रचना इस प्रकार है। यहां आप अधिक से अधिक अपवादों को सूचीबद्ध कर सकते हैं जिन्हें आप संभाल सकते हैं। डिफ़ॉल्ट अपवाद का उपयोग करके संभाला जाएगा जब अन्य तब

घोषित शुरू करना अपवाद जब अपवाद1 तब अपवाद1-हैंडलिंग-कथन जब अपवाद2 तब अपवाद2-हैंडलिंग-कथन जब अपवाद3 तब अपवाद3-हैंडलिंग-कथन ........ जब अन्य तब अपवाद3-हैंडलिंग-कथन समाप्त होते हैं;

उदाहरण

आइए अवधारणा को स्पष्ट करने के लिए एक कोड लिखें। हम ग्राहक तालिका का उपयोग करेंगे जिसे हमने पिछले अध्यायों में बनाया और उपयोग किया था -

DECLARE c_id customer.id%type:= 8; c_name ग्राहकS.नाम% प्रकार; c_addr ग्राहक। पता% प्रकार; BEGIN नाम चुनें, पता c_name में, c_addr ग्राहकों से जहां id = c_id; DBMS_OUTPUT.PUT_LINE("नाम:"||c_name); DBMS_OUTPUT.PUT_LINE("पता:" || c_addr); अपवाद जब no_data_मिला तब dbms_output। put_line ("ऐसा कोई ग्राहक नहीं!"); जब अन्य तब dbms_output। put_line ("त्रुटि!"); अंत; /

ऐसा कोई ग्राहक नहीं! पीएल/एसक्यूएल प्रक्रिया सफलतापूर्वक पूरी हुई।

उपरोक्त प्रोग्राम उस ग्राहक का नाम और पता प्रदर्शित करता है जिसकी आईडी दी गई है। चूंकि हमारे डेटाबेस में आईडी मान 8 वाला कोई ग्राहक नहीं है, इसलिए प्रोग्राम रन-टाइम अपवाद उठाता है कोई डेटा नहीं मिला, जो में कैद है अपवाद ब्लॉक.

अपवाद बढ़ाना

जब भी कोई आंतरिक डेटाबेस त्रुटि होती है, तो डेटाबेस सर्वर द्वारा अपवाद स्वचालित रूप से उठाए जाते हैं, लेकिन प्रोग्रामर द्वारा कमांड का उपयोग करके अपवादों को स्पष्ट रूप से उठाया जा सकता है उठाना. अपवाद उठाने के लिए सरल सिंटैक्स निम्नलिखित है -

DECLARE अपवाद_नाम अपवाद; BEGIN IF शर्त तब अपवाद_नाम बढ़ाएं; अगर अंत; अपवाद जब अपवाद_नाम तब कथन; अंत;

आप Oracle मानक अपवाद या किसी उपयोगकर्ता-परिभाषित अपवाद को बढ़ाने में उपरोक्त सिंटैक्स का उपयोग कर सकते हैं। अगले भाग में, हम आपको उपयोक्ता-परिभाषित अपवाद उठाने पर एक उदाहरण देंगे। आप इसी तरह Oracle मानक अपवाद बढ़ा सकते हैं।

उपयोगकर्ता द्वारा परिभाषित अपवाद

PL/SQL आपको अपने प्रोग्राम की आवश्यकता के अनुसार अपने स्वयं के अपवादों को परिभाषित करने की अनुमति देता है। एक उपयोगकर्ता-परिभाषित अपवाद घोषित किया जाना चाहिए और फिर स्पष्ट रूप से उठाया जाना चाहिए, या तो RAISE कथन या प्रक्रिया का उपयोग करके DBMS_STANDARD.RAISE_APPLICATION_ERROR.

अपवाद घोषित करने का सिंटैक्स है -

मेरा अपवाद अपवाद घोषित करें;

उदाहरण

निम्नलिखित उदाहरण अवधारणा को दर्शाता है। यह प्रोग्राम ग्राहक आईडी मांगता है, जब उपयोगकर्ता एक अमान्य आईडी दर्ज करता है, अपवाद अमान्य पहचान पत्रउठाया है।

DECLARE c_id customer.id%type:= &cc_id; c_name ग्राहकS.नाम% प्रकार; c_addr ग्राहक। पता% प्रकार; -- उपयोगकर्ता परिभाषित अपवाद ex_invalid_id अपवाद; शुरू अगर c_id<= 0 THEN RAISE ex_invalid_id; ELSE SELECT name, address INTO c_name, c_addr FROM customers WHERE id = c_id; DBMS_OUTPUT.PUT_LINE ("Name: "|| c_name); DBMS_OUTPUT.PUT_LINE ("Address: " || c_addr); END IF; EXCEPTION WHEN ex_invalid_id THEN dbms_output.put_line("ID must be greater than zero!"); WHEN no_data_found THEN dbms_output.put_line("No such customer!"); WHEN others THEN dbms_output.put_line("Error!"); END; /

जब उपरोक्त कोड को SQL प्रांप्ट पर निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

cc_id के लिए मान दर्ज करें: -6 (एक मान दर्ज करें -6) पुराना 2: c_id customer.id%type:= &cc_id; नया 2: c_id customer.id%type:= -6; आईडी शून्य से अधिक होना चाहिए !PL/SQL प्रक्रिया सफलतापूर्वक पूर्ण।

पूर्व-निर्धारित अपवाद

पीएल/एसक्यूएल कई पूर्व-परिभाषित अपवाद प्रदान करता है, जो किसी प्रोग्राम द्वारा किसी डेटाबेस नियम का उल्लंघन होने पर निष्पादित होते हैं। उदाहरण के लिए, पूर्वनिर्धारित अपवाद NO_DATA_FOUND तब उठाया जाता है जब कोई SELECT INTO स्टेटमेंट कोई पंक्तियाँ नहीं देता है। निम्न तालिका कुछ महत्वपूर्ण पूर्व-निर्धारित अपवादों को सूचीबद्ध करती है -

अपवाद ओरेकल त्रुटि SQLCODE विवरण
ACCESS_INTO_NULL 06530 -6530 यह तब उठाया जाता है जब एक अशक्त वस्तु को स्वचालित रूप से एक मान सौंपा जाता है।
CASE_NOT_FOUND 06592 -6592 यह तब उठाया जाता है जब किसी केस स्टेटमेंट के WHEN क्लॉज में से कोई भी विकल्प नहीं चुना जाता है, और कोई ELSE क्लॉज नहीं होता है।
COLLECTION_IS_NULL 06531 -6531 यह तब उठाया जाता है जब कोई प्रोग्राम एक गैर-आरंभिक नेस्टेड तालिका या चर के लिए EXISTS के अलावा अन्य संग्रह विधियों को लागू करने का प्रयास करता है, या प्रोग्राम एक गैर-आरंभिक नेस्टेड तालिका या चर के तत्वों को मान निर्दिष्ट करने का प्रयास करता है।
DUP_VAL_ON_INDEX 00001 -1 यह तब उठाया जाता है जब अद्वितीय अनुक्रमणिका वाले कॉलम में डुप्लिकेट मानों को संग्रहीत करने का प्रयास किया जाता है।
INVALID_CURSOR 01001 -1001 यह तब उठाया जाता है जब एक कर्सर ऑपरेशन करने का प्रयास किया जाता है जिसकी अनुमति नहीं है, जैसे कि एक बंद कर्सर को बंद करना।
अमान्य संख्या 01722 -1722 यह तब उठाया जाता है जब किसी वर्ण स्ट्रिंग का किसी संख्या में रूपांतरण विफल हो जाता है क्योंकि स्ट्रिंग एक मान्य संख्या का प्रतिनिधित्व नहीं करती है।
LOGIN_DENIED 01017 -1017 यह तब उठाया जाता है जब कोई प्रोग्राम अमान्य उपयोगकर्ता नाम या पासवर्ड के साथ डेटाबेस में लॉग ऑन करने का प्रयास करता है।
कोई डेटा नहीं मिला 01403 +100 यह तब उठाया जाता है जब कोई SELECT INTO स्टेटमेंट कोई पंक्तियाँ नहीं देता है।
NOT_LOGGED_ON 01012 -1012 यह तब उठाया जाता है जब डेटाबेस से जुड़े बिना डेटाबेस कॉल जारी किया जाता है।
PROGRAM_ERROR 06501 -6501 यह तब उठाया जाता है जब पीएल/एसक्यूएल में आंतरिक समस्या होती है।
ROWTYPE_MISMATCH 06504 -6504 यह तब उठाया जाता है जब कोई कर्सर असंगत डेटा प्रकार वाले वेरिएबल में मान प्राप्त करता है।
SELF_IS_NULL 30625 -30625 यह तब उठाया जाता है जब किसी सदस्य विधि को लागू किया जाता है, लेकिन ऑब्जेक्ट प्रकार का उदाहरण प्रारंभ नहीं किया गया था।
STORAGE_ERROR 06500 -6500 यह तब उठाया जाता है जब पीएल/एसक्यूएल स्मृति से बाहर हो जाता है या स्मृति दूषित हो जाती है।
TOO_MANY_ROWS 01422 -1422 यह तब उठाया जाता है जब एक सेलेक्ट INTO स्टेटमेंट एक से अधिक पंक्तियों को लौटाता है।
VALUE_ERROR 06502 -6502 यह तब उठाया जाता है जब कोई अंकगणित, रूपांतरण, काट-छाँट, या आकार बाधा त्रुटि होती है।
ZERO_DIVIDE 01476 1476 इसे तब उठाया जाता है जब किसी संख्या को शून्य से विभाजित करने का प्रयास किया जाता है।

पीएच.डी. व्लादिमीर लिकचेव, कलुगा पेडागोगिकल यूनिवर्सिटी का नाम के.ई. त्सोल्कोवस्की के नाम पर रखा गया है

डेटाबेस के साथ काम करने वाले कार्यक्रमों के लिए, न केवल उनकी त्रुटियों को सही ढंग से संभालना महत्वपूर्ण है, बल्कि इन त्रुटियों के बारे में सूचनात्मक संदेश उत्पन्न करना भी महत्वपूर्ण है। ऐसे संदेशों की उपस्थिति आपको कारणों की शीघ्रता से पहचान करने और त्रुटियों को ठीक करने की अनुमति देती है। एंड यूजर प्रोग्राम के साथ काम करते समय यह विशेष रूप से सच है, क्योंकि ज्यादातर मामलों में वह न केवल किसी विशेष डेटाबेस की संरचना को जानता है, बल्कि रिलेशनल डेटाबेस की सैद्धांतिक नींव भी जानता है।

अजीब तरह से, कार्यक्रमों में त्रुटि संदेशों के गठन की स्थिति अक्सर स्वयं त्रुटियों के प्रसंस्करण से बहुत अलग होती है। त्रुटियों को संभालते समय, आमतौर पर एक सामान्य रणनीति विकसित करना संभव होता है, जो आपको एक या अधिक कार्यों में उनके प्रसंस्करण को स्थानीयकृत करने की अनुमति देता है। त्रुटि संदेशों के लिए एक समान दृष्टिकोण इस आधार पर लागू किया जा सकता है कि त्रुटि संदेश में Oracle सर्वर त्रुटि के प्रकार और डेटाबेस ऑब्जेक्ट को इंगित करता है जिसके कारण यह हुआ। ऐसी वस्तुएं आमतौर पर बाधाएं होती हैं, जैसे प्राथमिक, अद्वितीय और विदेशी कुंजी, अद्वितीय अनुक्रमणिका, "शून्य नहीं" बाधाएं, आदि। इन बाधाओं के बारे में विस्तृत जानकारी सिस्टम टेबल और डेटाबेस दृश्यों और मूल्यों से प्राप्त की जा सकती है जिन्हें बदला जा सकता है और बदला गया निर्धारित किया जा सकता है। एक त्रुटि का कारण बना। लेकिन समस्या यह है कि वास्तविक अनुप्रयोगों में त्रुटि संदेश उत्पन्न करने के लिए इस तरह के तंत्र के कार्यान्वयन में कई कठिनाइयाँ आती हैं:

  • कार्यक्रम के उद्देश्य पर त्रुटि संदेश की निर्भरता। एक ही डेटाबेस के साथ काम करने वाले प्रोग्रामों के लिए भी, एक ही त्रुटि के बारे में अलग-अलग संदेश उत्पन्न करना आवश्यक हो सकता है। उदाहरण के लिए, उपयोगकर्ता डेटा को संपादित करने के लिए एक कार्यक्रम में, संदेश होना चाहिए: "इस नाम वाला एक उत्पाद पहले से पंजीकृत है! उत्पाद का नाम जांचें!"। लेकिन डेटा आयात कार्यक्रम में, एक पूरी तरह से अलग सामग्री के साथ एक संदेश की आवश्यकता होती है: "आयातित डेटा डुप्लिकेट किया गया है - उस तिथि की जांच करें जिसके लिए डेटा आयात किया जा रहा है!"।
  • डेटाबेस सीमाओं के कारण कुछ त्रुटियों के लिए संदेश उत्पन्न करने में कठिनाई। उदाहरण के लिए, तालिकाओं पर CHECK की कमी काफी जटिल प्रश्नों और शर्तों का उपयोग कर सकती है। इसलिए, उनके विश्लेषण के आधार पर संदेशों का निर्माण काफी कठिन कार्य हो सकता है।
  • क्लाइंट प्रोग्राम में टेबल और कॉलम के कस्टम नामों का उपयोग करना जो डेटाबेस में उनके नाम से भिन्न होते हैं। उदाहरण के लिए, तालिका का नाम "GOODS" है, और क्लाइंट एप्लिकेशन में, इस तालिका का डेटा निर्देशिका में "उत्पाद" या "उत्पाद" के रूप में प्रदर्शित किया जा सकता है।

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

लेख में विचार किए गए उपयोगकर्ता के लिए सूचनात्मक त्रुटि संदेश उत्पन्न करने की विधि काफी सार्वभौमिक है, इसे क्लाइंट एप्लिकेशन और Oracle सर्वर साइड दोनों में लागू किया जा सकता है। इसका उपयोग विभिन्न प्रकार के कार्यक्रमों में किया जा सकता है, जैसे:

  • प्रोग्राम जो डेटाबेस डेटा दर्ज करने और संशोधित करने के लिए एक विशेष इंटरफ़ेस का उपयोग करते हैं। ज्यादातर मामलों में, सूचनात्मक त्रुटि संदेश डेटाबेस संरचना के विश्लेषण से प्राप्त किए जा सकते हैं। यह उपयोगकर्ता को डेवलपर्स और सॉफ्टवेयर की ओर से न्यूनतम प्रयास के साथ उनके कारण के बारे में सूचित करेगा।
  • उपयोगकर्ता द्वारा मनमानी SQL क्वेरी बनाने की क्षमता वाले प्रोग्राम। डेटाबेस संरचना के विश्लेषण के आधार पर संदेशों का निर्माण उन कार्यक्रमों के लिए विशेष रूप से प्रासंगिक हो सकता है जो उपयोगकर्ताओं की एक विस्तृत श्रृंखला पर लक्षित होते हैं, जिनमें इस क्षेत्र में निम्न स्तर के ज्ञान वाले लोग भी शामिल हैं। यह SQL क्वेरी में त्रुटि संदेशों को उपयोगकर्ता के लिए अधिक समझने योग्य बना देगा।
  • विषय मंच। लेख में वर्णित विधियों का उपयोग करने से विषय मंच को ही इसकी संरचना के विश्लेषण के आधार पर सूचनात्मक डेटाबेस त्रुटि संदेश उत्पन्न करने की अनुमति मिल जाएगी। यह त्रुटि स्थितियों को संभालने के लिए उपयोग किए जाने वाले प्लेटफ़ॉर्म भाषा कोड को छोटा करना संभव बना देगा। और त्रुटियां जिनके लिए विशेष संदेशों की आवश्यकता होती है, लेकिन वे उनके बिना निकली हैं, उनके कारण की पहचान करना बहुत आसान बनाने के लिए पर्याप्त जानकारीपूर्ण होंगी।

ऊपर वर्णित संदेश निर्माण की समस्याओं को हल किया जा सकता है यदि त्रुटि संदेशों को पारंपरिक रूप से दो समूहों में विभाजित किया जाता है:

  • सार्वभौमिक संदेश जो डेटाबेस संरचना के विश्लेषण के आधार पर बनते हैं;
  • विशेष संदेश जो प्रत्येक त्रुटि के लिए अलग-अलग परिभाषित किए गए हैं।

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

1. डेटाबेस प्रतिबंधों के कारण सार्वभौमिक त्रुटि संदेश

जैसा कि ऊपर उल्लेख किया गया है, सार्वभौमिक संदेश बनाने का मुख्य विचार एक ऐसा संदेश बनाना है जो ओरेकल और डेटाबेस संरचना से त्रुटि संदेश के डेटा के आधार पर अंतिम उपयोगकर्ता के लिए पर्याप्त जानकारीपूर्ण और समझने योग्य हो। आइए मान लें कि तालिका "GOODS" (स्क्रिप्ट 1.1) में उपयोगकर्ता एक नाम (कॉलम "TITLE") के साथ एक उत्पाद जोड़ने का प्रयास करता है, जो पहले से ही तालिका में है।

टेबल डेमो बनाएं। गुड्स (कोड इंटीजर नॉट न्यूल, टाइटल VARCHAR2 (50 बाइट) नॉट न्यूल, प्राइस नंबर (16, 2) नॉट न्यूल, कॉन्स्ट्रेंट सीके_प्राइस चेक (कीमत> 0), कॉन्स्ट्रेंट पीके_गुड्स प्राथमिक कुंजी (कोड)); टेबल डेमो पर टिप्पणी करें। माल "माल" है; COLUMN DEMO.GOODS.CODE पर टिप्पणी "उत्पाद कोड" है; COLUMN DEMO.GOODS पर टिप्पणी करें। शीर्षक "शीर्षक" है; COLUMN DEMO.GOODS.PRICE पर टिप्पणी "कीमत" है; DEMO.GOODS(TITLE) पर UNIQUE INDEX DEMO.IDX_GOODS_TITLE बनाएं;

स्क्रिप्ट 1.1. "माल" तालिका का निर्माण।

सर्वर इस मामले में एक त्रुटि उत्पन्न करेगा, क्योंकि "TITLE" कॉलम, जो उत्पाद का नाम संग्रहीत करता है, अद्वितीय अनुक्रमणिका "DEMO.IDX_GOODS_TITLE" में शामिल है:

इसके बजाय, उपयोगकर्ता के लिए एक संदेश बनाया जा सकता है, उदाहरण के लिए, संदेशों में से एक:

  • "उत्पाद" तालिका में "नाम" फ़ील्ड का मान अद्वितीय होना चाहिए!
  • इस नाम का एक उत्पाद पहले से पंजीकृत है! उत्पाद का नाम जांचें!
  • समान नाम वाले उत्पाद उत्पाद निर्देशिका में नहीं हो सकते!

हालांकि ये संदेश भिन्न हैं, वे सभी उस वस्तु के बारे में जानकारी दर्शाते हैं जिसके लिए विशिष्टता बाधा का उल्लंघन किया गया है - यह "उत्पाद" तालिका का "नाम" फ़ील्ड है।

इस प्रकार के संदेश को उत्पन्न करने में एक समस्या यह है कि कस्टम फ़ील्ड और तालिका नाम डेटाबेस में तालिका और स्तंभ नामों से भिन्न होते हैं। उपयोगकर्ता को त्रुटि संदेश को समझने के लिए, उसे कस्टम नामों का उपयोग करना चाहिए। टेबल और कॉलम के लिए एक अलग टेबल या टिप्पणियों का उपयोग टेबल और फील्ड नामों और उनके कस्टम नामों से मेल खाने के लिए किया जा सकता है। बाद वाले विकल्प को अधिक बेहतर माना जा सकता है, क्योंकि यह आपको उसी समय डेटाबेस का दस्तावेजीकरण करने की अनुमति देता है। यही कारण है कि स्क्रिप्ट 1.1 में, उपयोगकर्ता द्वारा परिभाषित नाम तालिका और उसके कॉलम के लिए टिप्पणियों के रूप में दिए गए हैं। यदि हम तालिका और कॉलम के लिए उपरोक्त संदेशों और टिप्पणियों की तुलना करते हैं, तो हम देख सकते हैं कि पहले संदेश का निर्माण सबसे सरल विकल्प है। अन्य दो संदेशों को बनाने के लिए, शाब्दिक संश्लेषण की आवश्यकता हो सकती है, लेकिन यह एक अलग कार्य है। मैं इस तथ्य पर आपका ध्यान आकर्षित करना चाहता हूं कि लेख में भविष्य में प्रत्येक त्रुटि मामले के लिए संभावित संदेश विकल्पों में से केवल एक ही दिया गया है। व्यवहार में, संदेश शैली और सामग्री का चुनाव कई कारकों पर निर्भर हो सकता है और सिस्टम डिजाइनर द्वारा निर्धारित किया जाएगा।

बेशक, इस बात से इंकार नहीं किया जा सकता है कि किसी तालिका या कॉलम के लिए कोई टिप्पणी नहीं है जिसे संदेश में शामिल किया जाना चाहिए। इस स्थिति में, त्रुटि संदेश तालिका या स्तंभ का नाम सीधे प्रदर्शित कर सकता है।

2. आवश्यक फ़ील्ड का मान निर्दिष्ट नहीं है (प्रतिबंध न्यूल नहीं)

यह त्रुटि सर्वर द्वारा कई मामलों में उत्पन्न होती है:

  • स्तंभ पर "शून्य नहीं" बाधा का उल्लंघन किया गया था;
  • किसी स्तंभ के लिए कोई मान निर्दिष्ट नहीं किया गया है जो एक अद्वितीय अनुक्रमणिका, मास्टर कुंजी या अद्वितीय कुंजी का हिस्सा है।

इन सभी मामलों में, सर्वर एक त्रुटि उत्पन्न करता है:

त्रुटि संदेश से तालिका और स्तंभ विवरण प्राप्त करने के लिए, क्वेरी 2.1 का उपयोग किया जा सकता है।

tc.comments को table_comment के रूप में, cc.comments को column_comment के रूप में चुनें से all_tab_columns c, all_tab_comments tc, all_col_comments cc c.owner और cc.table_name = c.table_name और cc.column_name = c.column_name

अनुरोध 2.1. एक टेबल और कॉलम विवरण प्राप्त करें

क्वेरी पैरामीटर "स्वामी", "table_name", "column_name" के रूप में आपको त्रुटि संदेश से क्रमशः स्कीमा, तालिका और कॉलम का नाम निर्दिष्ट करना होगा। क्वेरी तालिका और कॉलम के लिए टिप्पणियां लौटाती है।

इस क्वेरी के परिणामों का उपयोग करके, एक त्रुटि संदेश उत्पन्न किया जा सकता है, उदाहरण के लिए, निम्नलिखित सामग्री:

आपको कॉलम का मान निर्दिष्ट करना होगा "<Описание поля>"तालिका में"<Описание таблицы>" पर<добавлении новой/изменении>रिकॉर्ड।

3. किसी फ़ील्ड या कॉलम के सेट के मान की विशिष्टता टूट जाती है

कॉलम के लिए एक अद्वितीय मान दर्ज करने की आवश्यकता मुख्य रूप से तीन मामलों में आवश्यक हो सकती है:

  • कॉलम मास्टर कुंजी का हिस्सा है;
  • स्तंभ अद्वितीय कुंजी में शामिल है;
  • कॉलम एक अद्वितीय अनुक्रमणिका में शामिल है।

तीनों मामलों में, Oracle डेटाबेस एक ही त्रुटि उत्पन्न करता है:
ORA-00001: अद्वितीय बाधा का उल्लंघन किया गया (<Схема>.<Ограничение>)

त्रुटि संदेश उस बाधा को निर्दिष्ट करता है जिसके कारण त्रुटि हुई। मुख्य या अद्वितीय कुंजियों में शामिल स्तंभों के बारे में जानकारी प्राप्त करने के लिए, आप क्वेरी 3.1 का उपयोग कर सकते हैं, अनुक्रमणिका के बारे में जानकारी प्राप्त करने के लिए - क्वेरी 3.2।

dcs.constraint_type, cc.table_name, tc.comments को table_comment, cc.column_name, ccom.comments को column_comment के रूप में चुनें से all_cons_columns cc all_tab_comments tc पर शामिल हों (tc.owner = cc.owner और tc.table_name = cc.table_name) all_col_comments ccom पर शामिल हों (ccom.owner = cc.owner और ccom.table_name = cc.table_name और ccom.column_name = cc. column_name) (dcs.constraint_name = cc.constraint_name) पर all_constraints dc से जुड़ें, जहां cc.owner = :owner और cc.constraint_name = :key_name
अनुरोध 3.1। मुख्य या अद्वितीय कुंजियों में शामिल तालिका के स्तंभों के बारे में जानकारी प्राप्त करना।
ic.table_name, tc.comments को table_comment के रूप में, ic.column_name, ccom.comments को column_comment के रूप में चुनें से(tc.owner = ic.table_owner और tc.table_name = ic.table_name) all_col_comments ccom पर शामिल हों (ccom.owner = ic.table_owner और ccom.table_name = ic.table_name और ccom.column_name = ic. column_name) जहां table_owner = :owner और index_name = :index_name
अनुरोध 3.2. अनुक्रमणिका में शामिल तालिका के स्तंभों के बारे में जानकारी प्राप्त करना।

क्वेरी पैरामीटर स्कीमा नाम ("स्वामी"), कुंजी नाम ("key_name") या अनुक्रमणिका नाम ("index_name") हैं। प्रश्न बाधा में तालिकाओं और स्तंभों के लिए नाम और टिप्पणियां लौटाते हैं। क्वेरी 3.1 भी बाधा प्रकार ("constraint_type") लौटाता है: "पी" - मास्टर कुंजी, "यू" - अद्वितीय कुंजी। क्वेरी द्वारा लौटाए गए रिकॉर्ड की संख्या अद्वितीय बाधा में स्तंभों की संख्या से मेल खाती है।

उपयोगकर्ता के लिए अद्वितीयता बाधा के बारे में प्राप्त जानकारी के आधार पर, त्रुटि संदेशों के प्रकार उत्पन्न किए जा सकते हैं, उदाहरण के लिए, जो खंड 1 में दिए गए हैं।

4. विदेशी कुंजी बाधाओं के कारण त्रुटियाँ

विदेशी कुंजियों से जुड़े सारणीबद्ध डेटा पर संचालन करते समय, कई कारण हैं जो त्रुटियों का कारण बनते हैं:

1. अधीनस्थ तालिका में एक रिकॉर्ड जोड़ा जाता है, जिसमें विदेशी कुंजी में शामिल कॉलम का मुख्य तालिका में संबंधित मान नहीं होता है। इसी तरह की स्थिति तब होती है जब एक अधीनस्थ तालिका के कॉलम के मान को बदलते समय नया कॉलम मान मुख्य तालिका में नहीं होता है। इस मामले में Oracle डेटाबेस एक त्रुटि उत्पन्न करता है:

  1. चाइल्ड टेबल में संदर्भित पैरेंट टेबल में कॉलम के मान को बदलने का प्रयास किया जाता है। इस स्थिति के लिए, Oracle डेटाबेस एक त्रुटि उत्पन्न करता है:
  1. चाइल्ड टेबल में संदर्भित मास्टर टेबल में डेटा को हटाने का प्रयास किया जाता है। यदि डेटा डिलीट ऑपरेशन के लिए तालिकाओं के बीच संबंध की परिभाषा में "कोई कार्रवाई नहीं" बाधा निर्दिष्ट है, तो ओरेकल मास्टर टेबल से डेटा को हटाने की अनुमति नहीं देता है यदि चाइल्ड टेबल में रिकॉर्ड हटाए जाने से जुड़े रिकॉर्ड हैं। इस स्थिति के लिए, Oracle डेटाबेस पिछले मामले के समान एक त्रुटि उत्पन्न करता है।

आप मास्टर और चाइल्ड टेबल के कॉलम के बारे में जानकारी प्राप्त करने के लिए नीचे क्वेरी 4.1 का उपयोग कर सकते हैं जो विदेशी कुंजी का हिस्सा हैं।

a.constraint_name, a.table_name, tc1.comments को table_comment के रूप में, a2.column_name, cc1.comments को column_comment के रूप में, b.owner को r_owner, b.table_name को r_table_name, tc2.comments को r_table_comment, b2.column_name के रूप में, cc2 को r_table_comment के रूप में चुनें। .comments के रूप में r_column_comment से all_constraints a, all_constraints b, all_cons_columns a2, all_cons_columns b2, all_tab_comments tc1, all_col_comments cc1, all_tab_comments tc2, all_col_comments cc2 जहां a.owner = :owner and a.constraint and a.contraint_name = :owner and a.constraint and a.contraint_type = "R.constraintname" ("P", "U") और b.constraint_name = a.r_constraint_name और b.owner = a.r_owner और a2.constraint_name = a.constraint_name और a2.table_name = a.table_name और a2.owner = a.owner और b2.constraint_name = b.constraint_name और b2.table_name = b.table_name और b2.owner = b.owner और b2.position = a2.position और tc1.owner = a.owner और tc1.table_name = a.table_name और cc1। मालिक = a2.स्वामी और cc1.table_name = a2.table_name और cc1.column_name = a2.column_name और tc2.owner = b.स्वामी और tc2.table_name = b.table_name और cc2.owner = b2.owner और cc2.table_name = b2.table_name और cc2.column_name = b2.column_name
अनुरोध 4.1. एक विदेशी कुंजी के बारे में जानकारी प्राप्त करना।

अनुरोध के दो पैरामीटर हैं: "स्वामी" और "विदेशी_की" - स्कीमा और विदेशी कुंजी, जिसके बारे में आप जानकारी प्राप्त करना चाहते हैं। यह विदेशी कुंजी में शामिल कॉलम के बारे में जानकारी देता है: "table_name", "table_comment" - अधीनस्थ तालिका का नाम और विवरण; "column_name", "column_comment" - अधीनस्थ तालिका के कॉलम का नाम और विवरण। मुख्य तालिका के बारे में "r_" रिटर्न जानकारी के साथ प्रीफ़िक्स्ड क्वेरी कॉलम। क्वेरी द्वारा लौटाए गए रिकॉर्ड की संख्या विदेशी कुंजी में शामिल कॉलम की संख्या से मेल खाती है।

इस जानकारी के आधार पर, उपयोगकर्ता के लिए विदेशी कुंजी त्रुटि संदेश उत्पन्न किए जा सकते हैं।

5. डेटाबेस प्रतिबंधों के कारण विशेष त्रुटि संदेश

यदि किसी कारणवश सार्वभौमिक त्रुटि संदेश का उपयोग नहीं किया जा सकता है या उत्पन्न नहीं किया जा सकता है तो विशेष संदेशों का उपयोग करने की आवश्यकता उत्पन्न हो सकती है। बाद के मामले का एक उदाहरण टेबल पर बाधाओं की जांच करना है। विवश परिस्थितियों में, प्रश्नों और शर्तों का उपयोग किया जा सकता है, जिसका विश्लेषण काफी कठिन कार्य हो सकता है। इसलिए, इन बाधाओं के लिए, डिज़ाइन समय पर परिभाषित संदेशों का उपयोग करना अक्सर अधिक सुविधाजनक होता है।

विशेष त्रुटि संदेशों के दो समूहों को प्रतिष्ठित किया जा सकता है। पहले प्रकार के विशेष संदेश उन सभी अनुप्रयोगों में उपयोग के लिए अभिप्रेत हैं जो एक सामान्य डेटाबेस के साथ काम करते हैं। उन्हें शिथिल रूप से "विशेष डेटाबेस-स्तरीय त्रुटि संदेश" के रूप में संदर्भित किया जा सकता है। संदेशों का दूसरा समूह एप्लिकेशन विशिष्ट है। उनकी आवश्यकता हो सकती है जब विभिन्न अनुप्रयोगों को उपयोगकर्ता को एक ही त्रुटि के बारे में अलग-अलग संदेश देने की आवश्यकता होती है। उन्हें अस्थायी रूप से "विशेष एप्लिकेशन-स्तरीय त्रुटि संदेश" कहा जा सकता है। डेटाबेस में संदेशों के पहले समूह के बारे में जानकारी संग्रहीत करना और इसके लिए एक अलग तालिका का उपयोग करना सुविधाजनक है। किसी प्रोग्राम के लिए विशिष्ट संदेश उसके संसाधनों में संग्रहीत किए जा सकते हैं, उदाहरण के लिए, एक अलग फ़ाइल के रूप में या डेटाबेस में भी। त्रुटि कोड, स्कीमा नाम और त्रुटि संदेश के एक या अधिक कीवर्ड के आधार पर विशेष संदेशों की पहचान की जा सकती है।

6. तालिकाओं के लिए बाधा त्रुटि संदेशों की जाँच करें

जब किसी तालिका पर CHECK बाधा के कारण कोई त्रुटि होती है, तो सर्वर एक त्रुटि उत्पन्न करता है:
ORA-02290: जाँच अखंडता बाधा का उल्लंघन किया गया (<Схема>.<Имя ограничения>)

जैसा कि ऊपर उल्लेख किया गया है, ऐसी त्रुटियों के लिए विशेष संदेशों का उपयोग करना अक्सर सुविधाजनक होता है। उदाहरण के लिए, "GOODS" तालिका पर "CK_PRICE" बाधा कस्टम संदेश तालिका में संग्रहीत एक कस्टम संदेश का उपयोग कर सकती है:

7. कस्टम और सामान्य त्रुटि संदेशों का व्यापक उपयोग

उपयोगकर्ता के लिए सूचनात्मक त्रुटि संदेश उत्पन्न करने के लिए एक लचीला तंत्र कई चरणों में लागू किया गया है (चित्र 1):

1. एक कस्टम एप्लिकेशन-स्तरीय त्रुटि संदेश आउटपुट करें। प्रोग्राम पहले उस एप्लिकेशन के लिए विशिष्ट संदेशों के बीच एक त्रुटि संदेश की खोज करता है। यदि ऐसा संदेश मिलता है, तो यह प्रदर्शित होता है, और संदेश का निर्माण पूरा हो जाता है।

2. डेटाबेस स्तर पर एक विशेष त्रुटि संदेश आउटपुट करें। यदि चरण 1 में कोई संदेश नहीं मिला, तो एक विशेष डेटाबेस-स्तरीय त्रुटि संदेश खोजा जाता है। यदि पाया जाता है, तो यह उपयोगकर्ता को प्रदर्शित किया जाता है और त्रुटि संदेश पीढ़ी वहीं समाप्त हो जाती है।

3. डेटाबेस संरचना (सार्वभौमिक संदेश) के विश्लेषण के आधार पर एक संदेश प्रदर्शित करना। यदि पिछले चरणों में कोई विशेष संदेश नहीं मिला, तो यह डेटाबेस संरचना के विश्लेषण के आधार पर बनता है। यह उपयोगकर्ता को प्रदर्शित होता है और यह संदेश का निर्माण पूरा करता है।

4. डेटाबेस सर्वर से एक संदेश प्रदर्शित करना। यदि पिछले तीन चरणों में उपयोगकर्ता के लिए कोई संदेश नहीं बनाया गया था, तो Oracle से एक त्रुटि संदेश प्रदर्शित होता है। यह स्थिति कई कारणों से उत्पन्न हो सकती है। उदाहरण के लिए, जब एक कस्टम त्रुटि होती है जो जानबूझकर एक संग्रहीत प्रक्रिया में उत्पन्न होती है या RAISE_APPLICATION_ERROR फ़ंक्शन का उपयोग करके ट्रिगर होती है, और संदेश की सामग्री जिसके बारे में बदलने की आवश्यकता नहीं होती है।

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

कुछ मामलों में, ऐसे संदेश पिछले चरणों में उत्पन्न संदेशों की तुलना में अधिक जानकारीपूर्ण हो सकते हैं। उदाहरण के लिए, DEMO.GOODS तालिका (स्क्रिप्ट 1.1) के लिए CK_PRICE बाधा के बजाय, आप रिकॉर्ड डालने और अपडेट करने से पहले ट्रिगर में आवश्यक जांच कर सकते हैं और पहले से ही "तैयार" रूप में उपयोगकर्ता के लिए एक संदेश उत्पन्न कर सकते हैं:

यदि किसी उत्पाद की कीमत शून्य से कम या उसके बराबर है, तो सर्वर एक त्रुटि उत्पन्न करेगा, उदाहरण के लिए:

क्लाइंट एप्लिकेशन बिना किसी संशोधन के उपयोगकर्ता को तुरंत यह संदेश भेज सकता है।

एक अन्य कारण एक त्रुटि का प्रकट होना हो सकता है जिसके लिए संदेश का निर्माण प्रदान नहीं किया गया है।

चावल। 1. डेटाबेस त्रुटि संदेश उत्पन्न करने का क्रम।

मैं यह नोट करना चाहूंगा कि भले ही एप्लिकेशन केवल विशेष त्रुटि संदेशों का उपयोग करता हो, फिर भी संदेश उत्पन्न करने के लिए एक सामान्य फ़ंक्शन का उपयोग करने से प्रोग्राम की संरचना में सुधार होगा। यदि आवश्यक हो, तो विशेष संदेशों का प्रारूप सहायता प्रणाली, चित्रों आदि के लिंक का समर्थन कर सकता है। डेटाबेस त्रुटि संदेश उत्पन्न करने की वर्णित विधि क्लाइंट एप्लिकेशन में कार्यान्वयन पर अधिक केंद्रित है। उसी समय, इसे सर्वर साइड पर संग्रहीत कार्यविधियों, टेबल ट्रिगर्स, साथ ही डेटाबेस या स्कीमा SERVERERROR ईवेंट के लिए सिस्टम ट्रिगर्स में उपयोग किया जा सकता है।

निष्कर्ष

इस लेख का उद्देश्य एक विधि के मुख्य विचारों को दिखाना है जिसका उपयोग अंतिम उपयोगकर्ता के लिए सूचनात्मक Oracle डेटाबेस त्रुटि संदेश उत्पन्न करने के लिए किया जा सकता है। हालांकि कार्यान्वयन के कुछ बिंदु लेख के दायरे से बाहर रहे, मुझे उम्मीद है कि लेख में वर्णित दृष्टिकोण सॉफ्टवेयर विकास में श्रम लागत को कम करेगा, इसकी विश्वसनीयता और गुणवत्ता में सुधार करेगा।

जब अपवाद होते हैं, तो उपयोगकर्ता के अनुकूल त्रुटि संदेश जारी करना महत्वपूर्ण है। बुनियादी पीएल/एसक्यूएल ब्लॉक पर अनुभाग में अपवादों का उल्लेख पहले ही किया जा चुका है। अब उन पर अधिक विस्तार से विचार करने का समय आ गया है।

अपवाद

अपवाद एक त्रुटि स्थिति है जो सक्रिय है - या उत्तेजित - जब कोई समस्या आती है। कई अलग-अलग अपवाद हैं, प्रत्येक एक विशिष्ट प्रकार की समस्या से जुड़े हैं। जब कोई अपवाद होता है, तो कोड निष्पादन उस कथन पर रुक जाता है जिसने अपवाद को फेंक दिया, और नियंत्रण को उस ब्लॉक के हिस्से में स्थानांतरित कर दिया जाता है जो अपवाद को संभालता है। यदि ब्लॉक में एक निष्पादन योग्य अनुभाग नहीं है, तो PL/SQL एक निष्पादन योग्य अनुभाग को खोजने का प्रयास करता है समेत मूल इकाई (मूल ब्लॉक संलग्न करना), अर्थात। उस ब्लॉक में जो अपवाद को फेंकने वाले कोड के बाहर है। यदि तत्काल संलग्न ब्लॉक में इस अपवाद के लिए कोई हैंडलर नहीं है, तो उपयुक्त हैंडलर मिलने तक अगले स्तरों के ब्लॉक में खोज जारी रहती है, और यदि यह नहीं मिल पाता है, तो प्रोग्राम निष्पादन एक हैंडल न किए गए त्रुटि संदेश के साथ बंद हो जाता है।

ब्लॉक का अपवाद-हैंडलिंग हिस्सा सूचनात्मक त्रुटि संदेश जारी करने और निष्पादित करने के लिए आदर्श स्थान है सफाई (सफाई), जो आपको भविष्य में भ्रम या समस्या पैदा करने वाली हर चीज से छुटकारा पाने की अनुमति देता है। यदि एक तालिका में एक पंक्ति डालने वाली प्रक्रिया के निष्पादन के दौरान एक अपवाद फेंक दिया गया था, तो एक सामान्य सफाई प्रक्रिया में रोलबैक कथन शामिल हो सकता है।

एक बार नियंत्रण को एक अपवाद हैंडलर में स्थानांतरित कर दिया गया है, यह अब उस कथन पर वापस नहीं आता है जो अपवाद का कारण बनता है। इसके बजाय, नेस्टेड ब्लॉक या प्रक्रिया/फ़ंक्शन कॉल के तुरंत बाद नियंत्रण को संलग्न बेस ब्लॉक स्टेटमेंट में स्थानांतरित कर दिया जाता है।

सिस्टम अपवाद

आप पहले से ही PL/SQL में पूर्वनिर्धारित ZERO_DIVIDE अपवाद से परिचित हैं। कुछ अन्य सिस्टम अपवाद हैं जिन्हें PL/SQL या Oracle द्वारा पहचाना और फेंका गया है। तालिका 1 सिस्टम अपवादों की अधिक संपूर्ण सूची प्रदान करती है।

पीएल/एसक्यूएल में आप यूजर्स को दो तरह से एरर की जानकारी दे सकते हैं। पहला तरीका SQLCODE कमांड का उपयोग करना है, जो एक त्रुटि कोड देता है। यह कोड एक ऋणात्मक संख्या है, जो आमतौर पर ओआरए त्रुटि की संख्या के बराबर होती है, जो तब छपी होती है जब अपवाद को छोड़े जाने पर आवेदन समाप्त हो जाता है। दूसरा तरीका त्रुटि का वर्णन करने वाले टेक्स्ट संदेश को वापस करना है। आश्चर्य नहीं कि संबंधित कमांड को SQLERRM कहा जाता है। SQLCODE और SQLERRM दोनों का उपयोग अपवाद हैंडलर में किया जा सकता है। नोट: सभी सिस्टम अपवादों के नाम नहीं होते हैं।

टेबल1 . सिस्टम अपवाद

सिस्टम अपवाद,त्रुटि कोड

उत्तेजना का कारण

कर्सर_ पहले से ही_ खुला

ओरा-06511

पहले से खुला हुआ कर्सर खोलने का प्रयास

DUP_VAL_ON_INDEX

ओआरए-00001

एक अद्वितीय अनुक्रमणिका और इसलिए एक अद्वितीय बाधा वाले कॉलम में एक डुप्लिकेट मान सम्मिलित करने का प्रयास किया जा रहा है

अमान्य_ कर्सर

ओआरए-01001

एक बंद कर्सर को लाने का प्रयास करना, या एक ऐसे कर्सर को बंद करने का प्रयास करना जो खोला नहीं गया है

कोई डेटा नहीं मिला

ओआरए-01403

जब चयन शून्य पंक्तियाँ लौटाता है (और अन्य कारण जो इस पुस्तक के दायरे से बाहर हैं) में चयन करने का प्रयास करना

कार्यक्रम_ त्रुटि

ओआरए-06001

आंतरिक गलती। आमतौर पर इसका मतलब है कि आपको Oracle समर्थन से संपर्क करने की आवश्यकता है

भंडारण_ त्रुटि

ओआरए-06500

प्रोग्राम में पर्याप्त सिस्टम मेमोरी नहीं है

TIMEOUT_ON_RESOURCE

ओआरए-00051

कुछ संसाधन उपलब्ध होने के लिए कार्यक्रम बहुत लंबा इंतजार कर रहा था

TOO_MANY_ROWS

ओआरए-01422

पीएल/एसक्यूएल में एक से अधिक पंक्तियों में चयन करें

मूल्य_ त्रुटि

ओआरए-06502

PL/SOL को एक अमान्य डेटा रूपांतरण या काट-छाँट, या एक अमान्य डेटा बाधा का सामना करना पड़ा

शून्य_ विभाजित करना

ओआरए-01476

शून्य से विभाजित करने का प्रयास

अन्य सभी अपवाद और आंतरिक त्रुटियां जो बेस ब्लॉक में परिभाषित अपवादों द्वारा कवर नहीं की जाती हैं। इसका उपयोग तब किया जाता है जब आप नहीं जानते कि किस नाम के अपवाद को संभालना है और फेंके गए किसी भी अपवाद को संभालना चाहते हैं

अब इस अध्याय के पहले उदाहरण पर वापस जाते हैं और इसमें SQLCODE और SQLERRM का उपयोग करते हैं। नीचे उदाहरण का स्रोत कोड और इसके लॉन्च के परिणाम हैं (चित्र 1)।

Num_a NUMBER:= 6;

Num_b NUMBER;

संख्या_बी:= 0;

Num_a:= Num_a / Num_b;

Num_b:= 7;

dbms_output. put_line ("Num_b का मान" || Num_b);

अपवाद

जब ZERO_DIVIDE तब

err_num NUMBER:= SQLCODE;

err_msg VARCHAR2 (512): = SQLERRM;

dbms_output. put_line ("ORA एरर नंबर" || err_num);

dbms_output. put_line ("ORA त्रुटि संदेश" || err_msg);

dbms_output.put_line ("Num_a का मान" || Num_a);

dbms_output.put_line ("Num_b का मान" || Num_b);

SQL> सर्वर आउटपुट चालू करें

एसक्यूएल> डिक्लेयर

2 num_a NUMBER:= 6;

3 num_b NUMBER;

4 शुरू

5 अंक_बी:= 0;

6 num_a:= num_a / num_b;

7 num_b:= 7;

8 dbms_output. put_line ("num_b का मान" || num_b);

9 अपवाद

10 जब ZERO_DIVIDE

11 तब

13 त्रुटि संख्या संख्या: = SQLCODE;

14 त्रुटि_संदेश VARCHAR2(512) := SQLERRM;

15 शुरू

16 dbms_output. put_line ("ORA एरर नंबर" || err_num);

17 dbms_output. put_line ("ORA त्रुटि संदेश" || err_msg);

18 dbms_output. put_line ("num_a का मान" || num_a);

19 dbms_output. put_line ("num_b का मान" || num_b);

20END;

21END;

ओआरए त्रुटि संख्या -1476

ORA त्रुटि संदेश ORA-01476: भाजक शून्य के बराबर है

num_а 6 . का मान

num_b 0 . का मान

पीएल/एसक्यूएल प्रक्रिया सफलतापूर्वक पूरी हुई।

चावल। एक।सिस्टम अपवादों को संभालते समय SQLCODE और SQLERRM का उपयोग करना

Oracle डेटाबेस प्रशासक और प्रोग्रामर कभी-कभी अपने काम में सामना करते हैं कि डेटाबेस "शपथ" लेना शुरू कर देता है और अक्सर ऐसी भाषा में जो पूरी तरह से स्पष्ट नहीं होती है। इस लेख में, हम Oracle त्रुटि भाषा और चेतावनी संदेशों को देखेंगे। सभी त्रुटियों को बड़े वर्गों और उपखंडों में समूहीकृत किया जाता है ताकि उपयोगकर्ताओं को जल्दी से नेविगेट करने में मदद मिल सके कि क्या हो रहा है और स्थिति को ठीक करने के उपाय करें। इस लेख में, हम समूहों को देखेंगे पहले हजार Oracle त्रुटियाँ(श्रेणियों के अनुसार 0 से 999 . तक के कोड), साथ ही उन्हें ठीक करने के लिए कार्रवाई के प्रस्ताव के साथ उनकी उपस्थिति के कारणों की व्याख्या करें। त्रुटि का प्रारूप "ORA-xxxxx" है। शुरुआत में उपसर्ग "ओआरए" आता है, और फिर डैश के माध्यम से पांच अंकों का त्रुटि कोड आता है।

Oracle त्रुटि समूह

त्रुटि संदेश ORA-00000 - ORA-00099

ORA-00000 संदेश सामान्य हैं, सफल समापन हैं, अर्थात, कोई त्रुटि नहीं है।

कार्यप्रणाली कर्नेल एक्सेस त्रुटि 0001-0049

  • ORA-00001: अनुक्रमणिका में डुप्लिकेट कुंजी
  • ORA-00017: कॉल की अधिकतम संख्या पार हो गई
  • ORA-00018: सत्रों की अधिकतम संख्या पार हो गई
  • ORA-00019: सत्रों की संख्या लाइसेंस की संख्या से अधिक हो गई
  • ORA-00020: प्रक्रियाओं की अधिकतम संख्या (संख्या) पार हो गई
  • ORA-00021 सत्र किसी अन्य प्रक्रिया द्वारा उपयोग में है। सत्र स्विच न करें
  • ORA-00022: अमान्य सत्र आईडी। प्रवेश निषेध है
  • ORA-00023: सत्र में निजी मेमोरी संदर्भ होते हैं। सत्र डिस्कनेक्ट नहीं कर सकता
  • ORA-00024: एकल उपयोगकर्ता मोड में निषिद्ध एक से अधिक प्रक्रियाओं से कनेक्शन
  • ORA-00025: [स्ट्रिंग] नहीं रख सकता
  • ORA-00026: अनुपलब्ध या अमान्य सत्र आईडी
  • ORA-00027: वर्तमान सत्र को नष्ट करने में असमर्थ
  • ORA-00028: आपका सत्र नष्ट कर दिया गया है
  • ORA-00029: सत्र उपयोगकर्ता सत्र नहीं है
  • ORA-00030: निर्दिष्ट आईडी वाला उपयोगकर्ता सत्र मौजूद नहीं है
  • ORA-00031: विनाश के लिए चिह्नित सत्र
  • ORA-00032: अमान्य सत्र पासवर्ड ले जाएँ
  • ORA-00033: खाली चाल पासवर्ड के साथ वर्तमान सत्र
  • ओआरए-00034: वर्तमान पीएल/एसक्यूएल सत्र में कमिट या रोलबैक करने में असमर्थ
  • ORA-00035: LICENSE_MAX_USERS मान उपयोगकर्ताओं की वर्तमान संख्या से कम नहीं हो सकता
  • ORA-00036: SQL रिकर्सन के स्तर (मान) की अधिकतम संख्या तक पहुँच गया
  • ORA-00037: सत्र को दूसरे सर्वर समूह में बदलने में असमर्थ
  • ORA-00038: सत्र बनाने में असमर्थ। सर्वर समूह का स्वामित्व किसी अन्य उपयोगकर्ता के पास है

ENQ त्रुटियाँ 0050-0080

  • ORA-00050: कतार प्राप्त करते समय ऑपरेटिंग सिस्टम त्रुटि
  • ORA-00051: संसाधन का समय समाप्त हो गया
  • ORA-00052: लौटाए गए संसाधनों की अधिकतम संख्या पार हो गई
  • ORA-00053: कतारों की अधिकतम संख्या पार हो गई
  • ORA-00054: NOWAIT सूचक तक पहुँचने में व्यस्त संसाधन
  • ORA-00055: DML लॉक की अधिकतम संख्या पार हो गई
  • ORA-00056: एक लॉक की गई वस्तु पर DDL लॉक लगाया जाता है
  • ORA-00057: अस्थायी टेबल लॉक की अधिकतम संख्या पार हो गई
  • ORA-00058: DB_BLOCK_SIZE माउंट किए जा रहे डेटाबेस के बराबर होना चाहिए
  • ORA-00059: DB_FILES पैरामीटर मान पार हो गया
  • ORA-00060: संसाधन की प्रतीक्षा करते समय एक गतिरोध उत्पन्न हुआ
  • ORA-00061: अलग-अलग उदाहरणों में अलग-अलग DML_LOCK सेटिंग्स होती हैं
  • ORA-00062: पूरे टेबल पर DML लॉक हासिल नहीं किया जा सकता है। DML_LOCKS सेटिंग रिक्त है
  • ORA-00063: LOG_FILES पैरामीटर मान पार हो गया
  • ORA-00064: ऑब्जेक्ट नहीं रखा जा सकता है, यह ऑपरेटिंग सिस्टम के लिए बहुत बड़ा है
  • ORA-00065: पैरामीटर प्रारंभ करने में त्रुटि FIXED_DATE
  • ORA-00066: LOG_FILES मान मेल नहीं खाते
  • ORA-00067: स्ट्रिंग पैरामीटर के लिए अमान्य मान, एक स्ट्रिंग होना चाहिए
  • ORA-00068: स्ट्रिंग पैरामीटर के लिए अमान्य मान, स्ट्रिंग होना चाहिए
  • ORA-00069: टेबल को लॉक नहीं कर सकता - [स्ट्रिंग] पर लॉक अस्वीकृत
  • ORA-00070: कमांड [स्ट्रिंग] अमान्य
  • ORA-00071: प्रक्रियाओं की संख्या 1 से अधिक होनी चाहिए:
  • ORA-00072: निर्दिष्ट प्रक्रिया सक्रिय नहीं है
  • ORA-00073: कमांड के लिए निर्दिष्ट तर्कों की अमान्य संख्या
  • ORA-00074: कोई प्रक्रिया परिभाषित नहीं
  • ORA-00075: प्रक्रिया [स्ट्रिंग] वर्तमान उदाहरण में नहीं मिली
  • ORA-00076: डंप [स्ट्रिंग] नहीं मिला
  • ORA-00077: निर्दिष्ट डंप अमान्य है
  • ORA-00078: नाम से डंप को हल करने में असमर्थ
  • ORA-00079: चर [मान] नहीं मिला
  • ORA-00080: स्मृति के एक अमान्य क्षेत्र को डंप करने का प्रयास किया गया
  • ORA-00081: निर्दिष्ट सीमा मान्य नहीं है
  • ORA-00082: मेमोरी रेंज निर्दिष्ट सीमा में नहीं है
  • ORA-00083: SGA संभवतः दूषित हो गया
  • ORA-00084: वैश्विक क्षेत्र PGA, SGA या UGA होना चाहिए
  • ORA-00085: वर्तमान कॉल मौजूद नहीं है
  • ORA-00086: उपयोगकर्ता कॉल मौजूद नहीं है
  • ORA-00087: कमांड को दूरस्थ उदाहरण पर निष्पादित नहीं किया जा सकता है
  • ORA-00088: कमांड को साझा सर्वर द्वारा निष्पादित नहीं किया जा सकता है
  • ORA-00089: ORADEBUG कमांड में अमान्य उदाहरण संख्या
  • ORA-00090: ORADEBUG कमांड क्लस्टर डेटाबेस में मेमोरी को सही ढंग से आवंटित करने में विफल रहा
  • ORA-00091: LARGE_POOL_SIZE निर्दिष्ट किया जाना चाहिए
  • ORA-00092: LARGE_POOL_SIZE LARGE_POOL_MIN_ALLOC से बड़ा होना चाहिए
  • ORA-00093: %s गलत तरीके से निर्दिष्ट
  • ORA-00094: %s में एक पूर्णांक मान होना चाहिए
  • ORA-00096: पैरामीटर [मान] के लिए अमान्य मान [मान], सीमा में होना चाहिए
  • ORA-00097: Oracle SQL सुविधाएँ SQL92 द्वारा समर्थित नहीं हैं:
  • ORA-00099: संसाधन का समय समाप्त हो गया। संभावित PDML गतिरोध

क्षेत्र और खंड त्रुटियाँ ORA-00100 - ORA-00299

  • ORA-00100: कोई डेटा नहीं मिला
  • ORA-00101: सिस्टम पैरामीटर DISPATCHERS का अमान्य विनिर्देशन
  • ORA-00102: डिस्पैचर द्वारा निर्दिष्ट नेटवर्क प्रोटोकॉल का उपयोग नहीं किया जा सकता है
  • ORA-00103: अमान्य नेटवर्क प्रोटोकॉल, डिस्पैचर्स द्वारा उपयोग के लिए आरक्षित
  • ORA-00104: गतिरोध का पता चला, सभी उपलब्ध सर्वर अवरुद्ध हैं, संसाधन की प्रतीक्षा कर रहे हैं
  • ORA-00105: बहुत अधिक डिस्पैचर कॉन्फ़िगरेशन
  • ORA-00106: डिस्पैचर से कनेक्ट होने पर डेटाबेस को शुरू या बंद नहीं किया जा सकता है
  • ORA-00107: ORACLE श्रोता प्रक्रिया से कनेक्ट करने में असमर्थ
  • ORA-00108: एसिंक्रोनस कनेक्शन स्वीकार करने के लिए डिस्पैचर को कॉन्फ़िगर करने में असमर्थ
  • ORA-00111: अमान्य विशेषता [स्ट्रिंग]
  • ORA-00112: विशेषता मान शून्य है
  • ORA-00113: प्रोटोकॉल का नाम [स्ट्रिंग] बहुत लंबा है
  • ORA-00114: सिस्टम पैरामीटर SERVICE_NAMES के लिए अमान्य मान
  • ORA-00115: कनेक्शन गिरा, कनेक्शन तालिका भर गई
  • ORA-00116: SERVICE_NAMES मान अमान्य है
  • ORA-00117: प्रोटोकॉल, पता या विवरण निर्दिष्ट किया जाना चाहिए
  • ORA-00118: केवल एक प्रोटोकॉल, पता या विवरण मान निर्दिष्ट किया जा सकता है
  • ORA-00119: अमान्य सिस्टम पैरामीटर मान
  • ORA-00120: डिस्पैचर की अनुमति नहीं है या स्थापित नहीं है
  • ORA-00121: SHARED_SERVERS डिस्पैचर्स विकल्प के बिना परिभाषित
  • ORA-00122: नेटवर्क कॉन्फ़िगरेशन प्रारंभ करने में असमर्थ
  • ORA-00123: निष्क्रिय साझा सर्वर
  • ORA-00124: MAX_SHARED_SERVERS के बिना निर्दिष्ट DISPATCHERS
  • ORA-00125: कनेक्शन रीसेट; ग़लतफ़हमी
  • ORA-00126: कनेक्शन रीसेट; अंतर्विरोध
  • ORA-00127: डिस्पैचर मौजूद नहीं है
  • ORA-00128: कमांड को डिस्पैचर नाम की आवश्यकता होती है
  • ORA-00129: अमान्य सुनो पता
  • ORA-00130: अमान्य सुनो पता
  • ORA-00131: नेटवर्क प्रोटोकॉल निर्दिष्ट पंजीकरण का समर्थन नहीं करता है
  • ORA-00132: सिंटैक्स त्रुटि या अमान्य नेटवर्क नाम
  • ORA-00150: डुप्लीकेट ट्रांजेक्शन आईडी
  • ORA-00151: डुप्लीकेट ट्रांजेक्शन आईडी
  • ORA-00152: वर्तमान सत्र अनुरोधित सत्र से मेल नहीं खाता
  • ORA-00153: XA लाइब्रेरी में त्रुटि
  • ORA-00154: लेन-देन मॉनिटर में प्रोटोकॉल त्रुटि
  • ORA-00155: वैश्विक लेनदेन के बाहर कार्य निष्पादित नहीं कर सकता
  • ORA-00160: वैश्विक लेनदेन का नाम अधिकतम लंबाई से अधिक है
  • ORA-00161: लेन-देन की लंबाई अमान्य
  • ORA-00162: बाहरी डेटाबेस आईडी अधिकतम मान से अधिक है
  • ORA-00163: बाहरी डेटाबेस का नाम अधिकतम मान से अधिक है
  • ORA-00164: पोर्टेबल वितरित लेनदेन के शीर्ष पर वितरित स्वायत्त लेनदेन की अनुमति नहीं है
  • ORA-00165: दूरस्थ संचालन के साथ ऑफ़लाइन पोर्टेबल वितरित लेनदेन की अनुमति नहीं है
  • ORA-00200: नियंत्रण फ़ाइल नहीं बनाई जा सकी
  • ORA-00201: नियंत्रण फ़ाइल संस्करण [स्ट्रिंग] ORACLE संस्करण [स्ट्रिंग] के साथ असंगत है
  • ORA-00202: नियंत्रण फ़ाइल: [स्ट्रिंग]
  • ORA-00203: अमान्य नियंत्रण फ़ाइल का उपयोग किया गया
  • ORA-00204: नियंत्रण फ़ाइल में डेटा ब्लॉक (ब्लॉक [स्ट्रिंग], ब्लॉक [स्ट्रिंग]) पढ़ने में त्रुटि
  • ORA-00205: नियंत्रण फ़ाइल पहचान विफल। अधिक जानकारी के लिए लॉग देखें
  • ORA-00206: फ़ाइल को नियंत्रित करने के लिए त्रुटि लेखन (ब्लॉक [स्ट्रिंग], ब्लॉक [स्ट्रिंग])
  • ORA-00207: नियंत्रण फ़ाइल इस डेटाबेस से नहीं है
  • ORA-00208: नियंत्रण फ़ाइलों की संख्या अनुमत मान से अधिक है [स्ट्रिंग]
  • ORA-00209: नियंत्रण फ़ाइल डेटा ब्लॉक मेल नहीं खाता। अधिक जानकारी के लिए लॉग देखें
  • ORA-00210: निर्दिष्ट नियंत्रण फ़ाइल खोलने में असमर्थ
  • ORA-00211: नियंत्रण फ़ाइल पिछले से मेल नहीं खाती
  • ORA-00212: ब्लॉक आकार [स्ट्रिंग] न्यूनतम आवश्यकता से कम [स्ट्रिंग]
  • ORA-00213: नियंत्रण फ़ाइल का पुन: उपयोग नहीं कर सकता, फ़ाइल का आकार% 1:% 2 आवश्यक:
  • ORA-00214: फ़ाइल संस्करण के साथ असंगत फ़ाइल संस्करण को नियंत्रित करें
  • ORA-00215: कम से कम एक नियंत्रण फ़ाइल होनी चाहिए
  • ORA-00216: 8.0.2 से पोर्टिंग के लिए नियंत्रण फ़ाइल का आकार नहीं बदला जा सकता:
  • ORA-00217: 9.0.1 से माइग्रेट करने के लिए नियंत्रण फ़ाइल का आकार नहीं बदला जा सकता:
  • ORA-00218: नियंत्रण फ़ाइलों का डेटा ब्लॉक आकार DB_BLOCK_SIZE द्वारा निर्दिष्ट आकार से मेल नहीं खाता
  • ORA-00219: नियंत्रण फ़ाइल का आकार निर्धारित आकार से अधिक है
  • ORA-00220: नियंत्रण फ़ाइल शामिल नहीं की जा सकी, अधिक जानकारी के लिए अलर्ट-लॉग देखें
  • ORA-00221: फ़ाइल को नियंत्रित करने के लिए त्रुटि लेखन
  • ORA-00222: ऑपरेशन पहले से माउंट की गई नियंत्रण फ़ाइल के नाम का उपयोग करने का प्रयास करता है
  • ORA-00223: कनवर्ट की जा रही फ़ाइल अमान्य है या उसका गलत संस्करण है
  • ORA-00224: गलत रिकॉर्ड प्रकार के साथ नियंत्रण फ़ाइल का आकार बदलने में विफल
  • ORA-00225: नियंत्रण फ़ाइल का अपेक्षित आकार [स्ट्रिंग] वास्तविक आकार से भिन्न होता है [स्ट्रिंग]
  • ORA-00226: वैकल्पिक नियंत्रण फ़ाइल के खुले होने पर संचालन संभव नहीं है
  • ORA-00227: नियंत्रण फ़ाइल में पाया गया दूषित डेटा ब्लॉक (ब्लॉक [स्ट्रिंग] ब्लॉक [स्ट्रिंग])।
  • ORA-00228: वैकल्पिक नियंत्रण फ़ाइल नाम की लंबाई अनुमत मान से अधिक है [स्ट्रिंग]
  • ORA-00229 ऑपरेशन अस्वीकृत। स्नैपशॉट फ़ाइल पहले ही कतार में है और संसाधित की जा रही है।
  • ORA-00230 ऑपरेशन अस्वीकृत। नियंत्रण फ़ाइल स्नैपशॉट कतार उपलब्ध नहीं है
  • ORA-00231: नियंत्रण फ़ाइल स्नैपशॉट का नाम नहीं है
  • ORA-00232: नियंत्रण फ़ाइल स्नैपशॉट मौजूद नहीं है, दूषित या अपठनीय है
  • ORA-00233: नियंत्रण फ़ाइल प्रतिलिपि दूषित या अपठनीय
  • ORA-00234: स्नैपशॉट की पहचान करने या खोलने या नियंत्रण फ़ाइल की प्रतिलिपि बनाने में त्रुटि
  • ORA-00235: समानांतर संशोधन के लिए अवरुद्ध नियंत्रण फ़ाइल
  • ORA-00236: स्नैपशॉट रद्द, फ़ॉलबैक नियंत्रण फ़ाइल चयनित
  • ORA-00237: स्नैपशॉट संचालन की अनुमति नहीं है। एक नई नियंत्रण फ़ाइल बनाई
  • ORA-00238: ऑपरेशन फ़ाइल नाम को डेटाबेस नाम के रूप में उपयोग करने का प्रयास करता है
  • ORA-00250: संग्रहकर्ता नहीं चल रहा है
  • ORA-00251: LOG_ARCHIVE_DUPLEX_DEST %1 जैसी निर्देशिका नहीं हो सकती:
  • ORA-00252: लॉग खाली है। संग्रह करना संभव नहीं है
  • ORA-00253: निर्दिष्ट स्ट्रिंग की लंबाई सीमा से अधिक है
  • ORA-00254: संग्रह नियंत्रण रेखा में त्रुटि
  • ORA-00255: लॉग फ़ाइल संग्रहीत करते समय त्रुटि
  • ORA-00256: एक संग्रह स्ट्रिंग को पार्स करते समय एक त्रुटि हुई
  • ORA-00257: अभिलेखीय त्रुटि। संसाधन व्यस्त होने पर मैं कनेक्ट नहीं कर सकता
  • ORA-00258: NOARCHIVELOG लॉग में मैनुअल संग्रह को निर्दिष्ट किया जाना चाहिए
  • ORA-00259: ओपन इंस्टेंस लॉग वर्तमान लॉग है और इसे संग्रहीत नहीं किया जा सकता है
  • ORA-00260: थ्रेड के लिए सक्रिय कतार लॉग [स्ट्रिंग] नहीं ढूँढ सकता [स्ट्रिंग]
  • ORA-00261: लॉग को संशोधित या संग्रहीत किया गया है
  • ORA-00262: वर्तमान लॉग [स्ट्रिंग] दूसरे धागे में व्यस्त है [स्ट्रिंग], स्विच नहीं कर सकता
  • ORA-00263: स्ट्रीम के लिए संग्रह करने के लिए कोई लॉग नहीं [स्ट्रिंग]
  • ORA-00264: पुनर्स्थापित करने की आवश्यकता नहीं है
  • ORA-00265: इंस्टेंस रिकवरी की आवश्यकता है, लेकिन ARCHIVELOG मोड सेट किया जा सकता है
  • ORA-00266: संग्रह लॉग नाम आवश्यक
  • ORA-00267: संग्रह लॉग नाम की आवश्यकता नहीं है
  • ORA-00268: निर्दिष्ट लॉग फ़ाइल मौजूद नहीं है
  • ORA-00269: निर्दिष्ट लॉग फ़ाइल स्ट्रीम का हिस्सा है [स्ट्रिंग] नहीं [स्ट्रिंग]
  • ORA-00270: संग्रह लॉग बनाने में त्रुटि [स्ट्रिंग]
  • ORA-00271: संग्रह के लिए कोई लॉग नहीं
  • ORA-00272: संग्रह लॉग में त्रुटि लेखन [स्ट्रिंग]
  • ORA-00273: बिना लॉगिंग के सीधे लोड किए गए डेटा को पुनर्स्थापित करना
  • ORA-00274: अमान्य पुनर्प्राप्ति पैरामीटर मान [मान] निर्दिष्ट
  • ORA-00275: पुनर्प्राप्ति प्रक्रिया पहले ही शुरू हो चुकी है
  • ORA-00276: निर्दिष्ट कीवर्ड बदलें लेकिन कोई परिवर्तन संख्या निर्दिष्ट नहीं है
  • ORA-00277: अमान्य पुनर्स्थापना विकल्प ध्वज तक [स्ट्रिंग]
  • ORA-00278: लॉग फ़ाइल [स्ट्रिंग] अब पुनर्प्राप्ति के लिए आवश्यक नहीं है
  • ORA-00279: लॉग फ़ाइल का नाम आवश्यक है
  • ORA-00280: आवश्यक स्ट्रीम और अनुक्रम नाम
  • ORA-00281: डिस्पैचर का उपयोग करके पुनर्स्थापना नहीं की जा सकती
  • ORA-00282: UPI कॉल समर्थित नहीं है, ALTER DATABASE RECOVER का उपयोग करें
  • ORA-00283: त्रुटियों के कारण रद्द किया गया सत्र बहाल करें
  • ORA-00284: पुनर्प्राप्ति सत्र प्रगति पर है
  • ORA-00285: अमान्य TIME मान
  • ORA-00286: कोई फाइल उपलब्ध नहीं है या वैध डेटा फाइल नहीं है
  • ORA-00287: निर्दिष्ट परिवर्तन संख्या [स्ट्रिंग] स्ट्रीम में नहीं मिली [स्ट्रिंग]
  • ORA-00288: पुनर्प्राप्ति जारी रखने के लिए ALTER DATABASE RECOVER CONTINUE का उपयोग करें
  • ORA-00289: चर [मान]
  • ORA-00290: ऑपरेटिंग सिस्टम त्रुटि। नीचे त्रुटि संदेश देखें
  • ORA-00291: PARALLEL को एक संख्यात्मक मान की आवश्यकता होती है
  • ORA-00292: समानांतर पुनर्स्थापना घटक स्थापित नहीं है
  • ORA-00293: फ़ाइल को फिर से लॉग के साथ सिंक से बाहर नियंत्रित करें
  • ORA-00294: संग्रह लॉग के लिए निर्दिष्ट अमान्य प्रारूप [स्ट्रिंग]
  • ORA-00295: अमान्य डेटा/अस्थायी डेटा फ़ाइल संख्या [स्ट्रिंग], 1 और [स्ट्रिंग] के बीच होनी चाहिए
  • ORA-00296: डेटा फ़ाइल सूची मान पुनर्प्राप्त करें पार हो गया
  • ORA-00297: पुनर्प्राप्ति डेटाफ़ाइल प्रारंभ करने से पहले पुनर्प्राप्त डेटाफ़ाइल सूची निर्दिष्ट करने के लिए आवश्यक है
  • ORA-00298: अनुपलब्ध या अमान्य विशेषता मान
  • ORA-00299: डेटा फ़ाइल% 1 . का फ़ाइल स्तर पुनर्स्थापना

डेटाबेस I/O प्रबंधन त्रुटियाँ ORA-00300 - ORA-00399

Oracle डेटाबेस में प्रवेश और निकास के प्रबंधन में त्रुटियाँ:

  • ORA-00300: अमान्य रीडो लॉग ब्लॉक आकार, निर्दिष्ट आकार [स्ट्रिंग] आकार सीमा से अधिक है [स्ट्रिंग]
  • ORA-00301: लॉग फ़ाइल जोड़ने में त्रुटि [स्ट्रिंग] - फ़ाइल नहीं बनाई जा सकी
  • ORA-00302: फिर से करें फ़ाइलों की संख्या के लिए सीमा पार हो गई
  • ORA-00303: पैरेलल रीडो को निष्पादित करने में असमर्थ
  • ORA-00304: अनुरोध किया गया INSTANCE_NUMBER व्यस्त है
  • ORA-00305: थ्रेड [स्ट्रिंग] का लॉग [स्ट्रिंग] असंगत है और किसी अन्य डेटाबेस से संबंधित है
  • ORA-00306: उदाहरण सीमा [स्ट्रिंग] पर पहुंच गई
  • ORA-00307: अनुरोध किया गया INSTANCE_NUMBER सीमा से बाहर, अधिकतम [स्ट्रिंग]
  • ORA-00308: संग्रह लॉग खोलने में असमर्थ [स्ट्रिंग]
  • ORA-00309: लॉग किसी अन्य डेटाबेस से संबंधित है
  • ORA-00310: संग्रहीत लॉग में अनुक्रम [स्ट्रिंग] होता है; आवश्यक अनुक्रम [मूल्य]
  • ORA-00311: संग्रह लॉग हेडर पढ़ने में असमर्थ
  • ORA-00312: उपलब्ध लॉग [स्ट्रिंग] धागा [स्ट्रिंग]
  • ORA-00313: लॉगग्रुप फ़ाइल खोलने में त्रुटि [स्ट्रिंग] स्ट्रीम [स्ट्रिंग]
  • ORA-00314: लॉग [स्ट्रिंग], अपेक्षित अनुक्रम [स्ट्रिंग] मेल नहीं खाता [स्ट्रिंग]
  • ORA-00315: लॉग [स्ट्रिंग] स्ट्रीम [स्ट्रिंग], हेडर में अमान्य मान [स्ट्रिंग]
  • ORA-00316: लॉग [स्ट्रिंग], हेडर में मान [स्ट्रिंग] इंगित करता है कि यह एक लॉग फ़ाइल नहीं है
  • ORA-00317: निर्दिष्ट फ़ाइल [स्ट्रिंग] एक लॉग फ़ाइल नहीं है
  • ORA-00318: लॉग [स्ट्रिंग] अनुमत आकार से अधिक हो गया [स्ट्रिंग] मेल नहीं खाता [स्ट्रिंग]
  • ORA-00319: लॉग [स्ट्रिंग] में गलत फ्लश स्थिति है
  • ORA-00320: स्ट्रीम के फ़ाइल हेडर [स्ट्रिंग] को पढ़ने में असमर्थ [स्ट्रिंग]
  • ORA-00321: लॉग फ़ाइल हेडर [स्ट्रिंग] स्ट्रीम [स्ट्रिंग] में डेटा अपडेट करने में असमर्थ
  • ORA-00322: थ्रेड का लॉग [स्ट्रिंग] [स्ट्रिंग] वर्तमान प्रति नहीं है
  • ORA-00323: वर्तमान स्ट्रीम लॉग [स्ट्रिंग] प्रयोग करने योग्य नहीं है और अन्य सभी को संग्रहीत करने की आवश्यकता है
  • ORA-00324: लॉग फ़ाइल का नाम [स्ट्रिंग] अनुवादित [स्ट्रिंग] बहुत लंबा है, सीमा पार हो गई है [स्ट्रिंग]
  • ORA-00325: स्ट्रीम आर्काइव लॉग [स्ट्रिंग] में अमान्य हेडर वैल्यू [स्ट्रिंग] है
  • ORA-00326: लॉग [स्ट्रिंग] से शुरू होता है, पहले बदला गया [स्ट्रिंग] आवश्यक
  • ORA-00327: लॉग [स्ट्रिंग] स्ट्रीम [स्ट्रिंग] का भौतिक आकार [स्ट्रिंग] आवश्यकता से कम है [स्ट्रिंग]
  • ORA-00328: संग्रहीत लॉग [स्ट्रिंग] के साथ समाप्त होता है, बाद में परिवर्तन की आवश्यकता होती है [स्ट्रिंग]
  • ORA-00329: संग्रहीत लॉग [स्ट्रिंग] से शुरू होता है, [स्ट्रिंग] को बदलने की जरूरत है
  • ORA-00330: संग्रह लॉग [स्ट्रिंग] के साथ समाप्त होता है, आवश्यक परिवर्तन [स्ट्रिंग]
  • ORA-00331: लॉग संस्करण [स्ट्रिंग] ओरेकल संस्करण के साथ संगत नहीं है [स्ट्रिंग]
  • ORA-00332: संग्रह लॉग बहुत छोटा है, संभवतः पूरी तरह से संग्रहीत नहीं है
  • ORA-00333: रीडो लॉग रीड [स्ट्रिंग] उपलब्ध से खराब ब्लॉक [स्ट्रिंग]
  • ORA-00334: संग्रह लॉग [स्ट्रिंग]
  • ORA-00335: लॉग उपलब्ध [स्ट्रिंग]: इस नंबर के साथ कोई लॉग नहीं, लॉग मौजूद नहीं है
  • ORA-00336: लॉग फ़ाइल ब्लॉक आकार न्यूनतम ब्लॉक आकार से कम [स्ट्रिंग]
  • ORA-00337: लॉग फ़ाइल [स्ट्रिंग] मौजूद नहीं है और आकार निर्दिष्ट नहीं है
  • ORA-00338: लॉग [स्ट्रिंग] अंतिम नियंत्रण फ़ाइल मान से अधिक है
  • ORA-00339: संग्रहीत लॉग में कोई पुनर्प्रयास शामिल नहीं है
  • ORA-00340: थ्रेड [स्ट्रिंग] के लॉग [स्ट्रिंग] को संसाधित करते समय I/O त्रुटि
  • ORA-00341: लॉग फ़ाइल [स्ट्रिंग] में अमान्य हेडर नंबर है [स्ट्रिंग]
  • ORA-00342: संग्रह लॉग में कोई SCN जानकारी नहीं है [स्ट्रिंग]
  • ORA-00343: बहुत अधिक त्रुटियाँ, लॉग बंद
  • ORA-00344: उपलब्ध लॉग को फिर से बनाने में असमर्थ [स्ट्रिंग]
  • ORA-00345: लॉग को फिर से करने के लिए त्रुटि लेखन, ब्लॉक [स्ट्रिंग] कुल [स्ट्रिंग]
  • ORA-00346: जर्नल आउट ऑफ डेट (बासी) के रूप में चिह्नित
  • ORA-00347: लॉग [स्ट्रिंग] धागे का [स्ट्रिंग] ब्लॉक आकार [स्ट्रिंग] है, मेल नहीं खाता, [स्ट्रिंग] होना चाहिए
  • ORA-00348: पुनर्प्राप्ति प्रक्रिया को फिर से करने में विफल, उदाहरण को रोका जाना चाहिए
  • ORA-00349: [स्ट्रिंग] के लिए ब्लॉक आकार प्राप्त करना विफल रहा
  • ORA-00350: लॉग [स्ट्रिंग] (स्ट्रीम [स्ट्रिंग]) उदाहरण के लिए [स्ट्रिंग] को संग्रहीत करने की आवश्यकता है
  • ORA-00351: अमान्य पुनर्प्राप्ति समय
  • ORA-00352: स्ट्रीम से सभी लॉग [स्ट्रिंग] को संग्रहीत किया जाना चाहिए - अनुमति नहीं दी जा सकती
  • ORA-00353: भ्रष्ट लॉग ब्लॉक [स्ट्रिंग] परिवर्तन [स्ट्रिंग] समय [स्ट्रिंग]
  • ORA-00354: लॉग ब्लॉक हेडर दूषित फिर से करें
  • ORA-00355: क्रम से संख्या बदलें
  • ORA-00356: अमान्य परिवर्तन विवरण लंबाई
  • ORA-00357: लॉग फ़ाइल के लिए निर्दिष्ट बहुत अधिक सदस्य, अधिकतम [स्ट्रिंग]
  • ORA-00358: बहुत अधिक सदस्य निर्दिष्ट, अधिकतम [स्ट्रिंग]
  • ORA-00359: लॉग फ़ाइल समूह [स्ट्रिंग] मौजूद नहीं है
  • ORA-00360: लॉग फ़ाइल का सदस्य नहीं: [स्ट्रिंग]
  • ORA-00361: समूह [स्ट्रिंग] से अंतिम लॉग [स्ट्रिंग] को नहीं हटा सकता
  • ORA-00362: आवश्यक सदस्य समूह में एक वैध लॉग फ़ाइल है [स्ट्रिंग]
  • ORA-00363: लॉग आर्काइव नहीं किया गया
  • ORA-00364: नए लॉग हेडर पर नहीं लिख सकता
  • ORA-00365: निर्दिष्ट लॉग अमान्य है
  • ORA-00366: लॉग [स्ट्रिंग] स्ट्रीम [स्ट्रिंग], फ़ाइल हेडर में चेकसम त्रुटि
  • ORA-00367: फ़ाइल हेडर में चेकसम त्रुटि
  • ORA-00368: फिर से लॉग ब्लॉक में चेकसम त्रुटि
  • ORA-00369: थ्रेड का वर्तमान लॉग [स्ट्रिंग] दूषित और अन्य लॉग साफ़ हो गया
  • ORA-00371: साझा पूल में स्मृति से बाहर, कम से कम [स्ट्रिंग] होना चाहिए
  • ORA-00372: फ़ाइल [स्ट्रिंग] को इस समय संशोधित नहीं किया जा सकता
  • ORA-00373: खुला लॉग संस्करण [स्ट्रिंग] ORACLE संस्करण [स्ट्रिंग] के साथ असंगत है
  • ORA-00374: पैरामीटर का मान db_block_size=[value] अमान्य है; सीमा में समग्र होना चाहिए [value..value]
  • ORA-00375: db_block_size का डिफ़ॉल्ट मान प्राप्त करने में असमर्थ
  • ORA-00376: फ़ाइल [स्ट्रिंग] को इस समय पढ़ा नहीं जा सकता
  • ORA-00377: फ़ाइल का बार-बार बैकअप [स्ट्रिंग] लेखन कार्यों में गतिरोध का कारण बनता है
  • ORA-00378: निर्दिष्ट के अनुसार बफ़र कैश नहीं बनाया जा सका
  • ORA-00379: ब्लॉक [स्ट्रिंग] K . के लिए बफर कैश [स्ट्रिंग] में कोई मुफ्त बफ़र्स नहीं
  • ORA-00380: निर्दिष्ट नहीं कर सकता db_[value]k_cache_size [value]K मानक ब्लॉक आकार है।
  • ORA-00381: बफ़र कैश आकार निर्दिष्ट करने के लिए पुराने और नए विकल्पों का उपयोग नहीं कर सकता
  • ORA-00382: %s अमान्य ब्लॉक आकार, मान्य मान [str..value]
  • ORA-00383: कैश डिफ़ॉल्ट मान को शून्य तक कम नहीं किया जा सकता
  • ORA-00384: कैश बढ़ाने के लिए पर्याप्त मेमोरी नहीं है
  • ORA-00390: थ्रेड का लॉग [स्ट्रिंग] [स्ट्रिंग] साफ़ हो गया है और वर्तमान लॉग नहीं हो सकता है
  • ORA-00391: अब से सभी थ्रेड्स को नए लॉग फॉर्मेट में स्विच करना होगा
  • ORA-00392: लॉग [स्ट्रिंग] थ्रेड [स्ट्रिंग] को साफ़ कर दिया गया, ऑपरेशन की अनुमति नहीं है
  • ORA-00393: एक ऑफ़लाइन डेटाबेस को पुनर्स्थापित करने के लिए आवश्यक थ्रेड [स्ट्रिंग] का लॉग [स्ट्रिंग]।
  • ORA-00394: संग्रह करते समय उपलब्ध लॉग का पुन: उपयोग किया जाता है
  • ORA-00395: डेटाबेस क्लोन के लिए लॉग का नाम बदला जाना चाहिए
  • ORA-00396: त्रुटि [स्ट्रिंग] को सिंगल पास रिस्टोर करने के लिए रोलबैक की आवश्यकता है
  • ORA-00397: इंस्टेंस रिस्टोर त्रुटि के साथ निरस्त किया गया
  • ORA-00398: उचित पुन: विन्यास से पहले निरस्त किया गया पुनर्स्थापित करें
  • ORA-00399: पुन: लॉग परिवर्तनों का भ्रष्ट विवरण

डेटाबेस आरंभीकरण त्रुटियाँ ORA-00400 - ORA-00499

  • ORA-00400: अमान्य मान [स्ट्रिंग] पैरामीटर के लिए [स्ट्रिंग]
  • ORA-00401: पैरामीटर के लिए मान [मान] इस संस्करण द्वारा समर्थित नहीं है
  • ORA-00402: संस्करण [स्ट्रिंग] के डेटाबेस परिवर्तन संस्करण [स्ट्रिंग] द्वारा उपयोग नहीं किए जा सकते
  • ORA-00403: [स्ट्रिंग] [स्ट्रिंग] के अन्य उदाहरणों के समान नहीं है
  • ORA-00404: कनवर्ट की गई फ़ाइल नहीं मिली: [स्ट्रिंग]
  • ORA-00405: संगतता प्रकार [स्ट्रिंग]
  • ORA-00406: संगत विकल्प के लिए [स्ट्रिंग] या उच्चतर की आवश्यकता होती है
  • ORA-00407: संस्करण [स्ट्रिंग] से रोलबैक अपग्रेड। [स्ट्रिंग] संस्करण [स्ट्रिंग] में। [स्ट्रिंग] की अनुमति नहीं है
  • ORA-00408: पैरामीटर मान [स्ट्रिंग] TRUE पर सेट है
  • ORA-00436: Oracle लाइसेंस प्राप्त नहीं है। मदद के लिए Oracle Corporation से संपर्क करें
  • ORA-00437: Oracle उन्नत सुविधाओं का लाइसेंस नहीं है। मदद के लिए Oracle Corporation से संपर्क करें
  • ORA-00438: विकल्प [स्ट्रिंग] सेट नहीं है
  • ORA-00439: वैकल्पिक सुविधा की अनुमति नहीं है: [स्ट्रिंग]
  • ORA-00443: पृष्ठभूमि प्रक्रिया [स्ट्रिंग] नहीं चल रही है
  • ORA-00444: पृष्ठभूमि प्रक्रिया [स्ट्रिंग] स्टार्टअप पर विफल रही
  • ORA-00445: पृष्ठभूमि प्रक्रिया [स्ट्रिंग] [स्ट्रिंग] सेकंड बीतने के बाद शुरू नहीं हुई
  • ORA-00446: अपेक्षित नहीं होने पर पृष्ठभूमि प्रक्रिया शुरू हुई
  • ORA-00447: पृष्ठभूमि प्रक्रिया में गंभीर त्रुटि
  • ORA-00448: पृष्ठभूमि प्रक्रिया की सामान्य समाप्ति
  • ORA-00449: पृष्ठभूमि प्रक्रिया [स्ट्रिंग] त्रुटि के साथ अचानक समाप्त हो गई [स्ट्रिंग]
  • ORA-00470: LGWR प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00471: DBWR प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00472: pmon प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00473: ARCH प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00474: smon प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00475: TRWR प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00476: RECO प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00477: SNP* प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00478: smon प्रक्रिया त्रुटि के साथ बाहर निकली [स्ट्रिंग]
  • ORA-00480: LCK* प्रक्रिया त्रुटि के साथ बाहर निकली
  • ORA-00481: LMON प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00482: LMD* प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00483: शटडाउन के दौरान प्रक्रिया असामान्य रूप से समाप्त हो गई
  • ORA-00484: LMS* प्रक्रिया एक त्रुटि के साथ बाहर निकली
  • ORA-00485: DIAG प्रक्रिया त्रुटि के साथ बाहर निकली [स्ट्रिंग]

त्रुटि संदेश ORA-00500 - ORA-00599

  • ORA-00568: हैंडलर इंटरप्ट की अधिकतम संख्या पार हो गई

आपदा पुनर्प्राप्ति त्रुटियाँ ORA-00600 - ORA-00699

  • ORA-00600: आंतरिक त्रुटि कोड, तर्क [मान], [मान], [मान], [मान], [मान], [मान], [मान], [मान]
  • ORA-00601: नेट लॉक संघर्ष
  • ORA-00602: आंतरिक सॉफ़्टवेयर अपवाद
  • ORA-00603: Oracle सर्वर सत्र एक घातक त्रुटि द्वारा समाप्त किया गया था
  • ORA-00604: पुनरावर्ती SQL स्तर पर त्रुटि हुई [स्ट्रिंग]
  • ORA-00606: आंतरिक त्रुटि कोड
  • ORA-00607: डेटा ब्लॉक बदलते समय आंतरिक त्रुटि

शब्दकोश त्रुटियाँ ORA-00700 - ORA-00799

  • ORA-00701: डेटाबेस शुरू करने के लिए आवश्यक वस्तु को संशोधित नहीं किया जा सकता
  • ORA-00702: लोडर संस्करण [स्ट्रिंग] संस्करण के साथ असंगत [स्ट्रिंग]
  • ORA-00703: इंस्टेंस पंक्ति कैश लॉक की अधिकतम संख्या पार हो गई
  • ORA-00704: बूट प्रक्रिया असामान्य रूप से समाप्त हो गई
  • ORA-00705: स्टार्टअप के दौरान अमान्य स्थिति; उदाहरण को रोकें और पुनः आरंभ करें
  • ORA-00706: फ़ाइल स्वरूप बदलने में त्रुटि [स्ट्रिंग]

सामान्य ओरेकल त्रुटियाँ ORA-00800 - ORA-00899

  • ओआरए-0800: बफर लिखने की प्रक्रिया सक्रिय नहीं है(बफर को लिखने की प्रक्रिया सक्रिय नहीं है)।
    कारण: समस्या ओरेकल को शुरू करने के प्रयास से संबंधित है, जिसके कारण बफर को लिखने की प्रक्रिया को हटा दिया गया था। आमतौर पर, यह संदेश विफलता के कारण की व्याख्या करने वाले सिस्टम त्रुटि संदेश के साथ जारी किया जाता है।
    गतिविधि: त्रुटि के कारण का पता लगाने के लिए सिस्टम त्रुटि संदेश (यदि कोई हो) का उपयोग करें। यदि कोई सिस्टम त्रुटि नहीं है, तो आवश्यकताओं की सूची के लिए ORACLE संस्थापन गाइड देखें। सुनिश्चित करें कि सभी ORACLE तार्किक नाम सही हैं, कि ORACLE निर्देशिका में पर्याप्त खाली डिस्क स्थान है, और यह कि पर्याप्त वैश्विक अनुभाग और पृष्ठ हैं। यह भी सुनिश्चित करें कि ORACLE बजट में आवश्यक प्राथमिकता है। यदि समस्या के स्रोत की पहचान नहीं की गई है, तो उपयुक्त इंस्टॉलेशन सॉफ़्टवेयर देखें।
  • ORA-0801: छवि लिखने की प्रक्रिया सक्रिय नहीं होने के बाद
    कारण: यह संपत्ति समर्थित नहीं है।
    गतिविधि: कृपया संबंधित इंस्टॉलेशन सॉफ़्टवेयर देखें।
  • ORA-0802: अमान्य संदर्भ क्षेत्र
    कारण
    गतिविधि
  • ORA-0805: opiodr: असंगत पुनरावर्तन स्तर संख्या
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-0806: छवि प्रक्रिया सक्रिय नहीं होने से पहले
    कारण
    गतिविधि
  • ORA-0807: सफाई प्रक्रिया सक्रिय नहीं है
    कारण: समस्या ORACLE को प्रारंभ करने के प्रयास से संबंधित है, जिसके कारण पूर्वावलोकन प्रक्रिया को रद्द कर दिया गया था। आमतौर पर, यह संदेश सिस्टम त्रुटि संदेश के साथ जारी किया जाता है जो विफलता का कारण बताता है।
    गतिविधि: त्रुटि के कारण का पता लगाने के लिए सिस्टम त्रुटि संदेश (यदि कोई हो) का उपयोग करें। यदि कोई सिस्टम त्रुटि नहीं है, तो सही संस्थापन को सत्यापित करने के लिए अपने ऑपरेटिंग सिस्टम के लिए ORACLE संस्थापन गाइड देखें। यदि समस्या के स्रोत की पहचान नहीं की गई है, तो उपयुक्त इंस्टॉलेशन सॉफ़्टवेयर देखें।
  • ORA-0809: opispf: अमान्य विशेष फ़ंक्शन कोड।
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-0810: opiomc: मूल पते पर संदर्भ क्षेत्र को रीमैप नहीं किया गया
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-0811: रीडहेड प्रक्रिया सक्रिय नहीं है
    कारण: समस्या ORACLE को प्रारंभ करने के प्रयास से संबंधित है, जिसके कारण आगे पढ़ने की प्रक्रिया रद्द कर दी गई। आमतौर पर, यह संदेश विफलता के कारण की व्याख्या करने वाले सिस्टम त्रुटि संदेश के साथ जारी किया जाता है।
    गतिविधि: त्रुटि के कारण का पता लगाने के लिए सिस्टम त्रुटि संदेश (यदि कोई हो) का उपयोग करें। यदि कोई सिस्टम त्रुटि नहीं है, तो सही संस्थापन को सत्यापित करने के लिए अपने ऑपरेटिंग सिस्टम के लिए ORACLE संस्थापन गाइड देखें। यदि समस्या के स्रोत की पहचान नहीं की गई है, तो उपयुक्त इंस्टॉलेशन सॉफ़्टवेयर देखें।
  • ORA-0813: दावा विफलता (परिशिष्ट हटा दिया गया)।
    कारण:यह ORACLE SORT से संबंधित एक आंतरिक त्रुटि संदेश है। सामान्य ऑपरेशन के दौरान ऐसा नहीं हो सकता।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-0814: ltbdrv: अवैध लॉक मोड
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00816: त्रुटि संदेश अनुवाद विफल
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-0817: prsgkw: आंतरिक त्रुटि टोकन नहीं मिला
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-0818: opispf: osf बहुत बड़ा
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।

सिंटैक्स त्रुटियाँ ORA-00900 - ORA-00999

  • ORA-00900: अमान्य SQL कथन।
    कारण: आपके द्वारा दर्ज किया गया कथन मान्य SQL कमांड के रूप में पहचाना नहीं गया था।
    गतिविधि: टाइपो के लिए जाँच करें, सुनिश्चित करें कि SQL कमांड कीवर्ड निम्न में से किसी एक शब्द से शुरू होते हैं: ALTER, AUDIT, CREATE, DELETE, DROP, GRANT, INSERT, NOAUDIT, RENAME, REVOKE, SELECT, UPDATE, LOCK, Validate। अन्य आदेश इस त्रुटि का कारण बनेंगे।
  • ORA-00901: अमान्य क्रिएट कमांड सिंटैक्स / अमान्य क्रिएट कमांड।
    कारण: CREATE कमांड पर एक अमान्य CREATE विकल्प का उपयोग किया गया था।
    गतिविधि: टाइपो के लिए जाँच करें, सुनिश्चित करें कि CREATE कमांड के बाद निम्न विकल्पों में से कोई एक है: INDEX, PARTITION, SPACE DEFINITION, SYNONYM, TABLE, या VIEW।
  • ORA-00902: अमान्य डेटा प्रकार।
    कारण: CREATE या ALTER TABLE स्टेटमेंट में दर्ज किया गया डेटा प्रकार मान्य नहीं है।
    गतिविधि: टाइपो के लिए जाँच करें, सुनिश्चित करें कि प्रत्येक कॉलम नाम के बाद निम्न डेटा प्रकारों में से एक है: डेटा, CHAR, NUMBER, RAW, LONG, या LONG RAW।
  • ORA-00903: अमान्य तालिका नाम।
    कारण: दर्ज की गई तालिका या समूह के नाम मौजूद नहीं हैं या अमान्य हैं। यह संदेश तब भी प्रकट होता है जब ALTER/DROP CLUSTER आदेश में कोई अमान्य या गैर-मौजूद समूह नाम निर्दिष्ट किया गया हो।
    गतिविधि: टाइपो के लिए जाँच करें। एक मान्य समूह नाम एक अक्षर से शुरू होना चाहिए और इसमें केवल अक्षर, संख्याएं और विशेष वर्ण शामिल होने चाहिए: $, #, और _। नाम 30 वर्णों से अधिक लंबा नहीं होना चाहिए और आरक्षित शब्द नहीं होना चाहिए।
  • ORA-00904: अमान्य कॉलम नाम।
    कारण: दर्ज किया गया कॉलम नाम गुम या अमान्य है।
    गतिविधि: एक मान्य कॉलम नाम दर्ज करें। एक मान्य नाम एक अक्षर से शुरू होना चाहिए और इसमें केवल अक्षर, संख्याएं और विशेष वर्ण शामिल होने चाहिए: $, #, और _। नाम 30 वर्णों से अधिक लंबा नहीं होना चाहिए और आरक्षित शब्द नहीं होना चाहिए। यदि इसमें अन्य वर्ण हैं, तो यह दोहरे उद्धरण चिह्नों में होना चाहिए।
  • ORA-00905: लापता कीवर्ड।
    कारण: आवश्यक कीवर्ड छोड़ा गया है।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और लापता कीवर्ड जोड़ें।
  • ORA-00906: बायां कोष्ठक गुम है।
    कारण: आवश्यक बायां कोष्ठक छोड़ा गया। मूल आदेश (जैसे तालिका बनाएं, क्लस्टर बनाएं और सम्मिलित करें) को कोष्ठक में संलग्न वस्तुओं की सूची की आवश्यकता होती है। WHERE क्लॉज में और UPDATE टेबल SET कॉलम = (SELECT ...) में अनुक्रमों के आसपास कोष्ठक की भी आवश्यकता होती है।
    गतिविधि: कमांड के सिंटैक्स की जाँच करें और लापता कोष्ठक डालें।
  • ORA-00907: सही कोष्ठक गुम है
    कारण: बाएं कोष्ठक को बंद दाएं कोष्ठक के बिना दर्ज किया गया था, या पिछली जानकारी कोष्ठक में संलग्न की गई थी। सभी कोष्ठक जोड़े जाने चाहिए।
    गतिविधि: एक क्लोजिंग राइट ब्रैकेट डालें।
  • ORA-00908: NULL कीवर्ड गुम है
    कारण: CREATE या ALTER TABLE स्टेटमेंट में, NOT को यह इंगित करने के लिए पेश किया गया था कि इस कॉलम में किसी भी शून्य मान की अनुमति नहीं है, लेकिन NULL कीवर्ड को छोड़ दिया गया था।
    गतिविधि: यदि आपको इस कॉलम में किसी मान की आवश्यकता है, तो NOT कीवर्ड को NOT NULL से बदलें।
  • ORA-00909: तर्कों की अमान्य संख्या
    कारण: अंतर्निहित ORACLE फ़ंक्शन का संदर्भ गलत संख्या में तर्कों के साथ बनाया गया था। SYSDATE को छोड़कर सभी ORACLE फ़ंक्शंस में कम से कम एक तर्क की आवश्यकता होती है।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और आवश्यक संख्या में तर्क दर्ज करें।
  • ORA-00910: CHAR कॉलम के लिए निर्दिष्ट लंबाई बहुत बड़ी है
    कारण: कैरेक्टर फ़ील्ड का आकार निर्दिष्ट या गलत तरीके से निर्दिष्ट नहीं है। आपको वर्णों के प्रत्येक स्तंभ के लिए अधिकतम लंबाई निर्दिष्ट करनी होगी। यह लंबाई 0: से 240: तक मान ले सकती है।
    गतिविधि: अधिकतम लंबाई 0 से 240 तक दर्ज करें:।
  • ORA-00911: अमान्य वर्ण
    कारण: विशेष वर्ण अमान्य है या केवल कुछ स्थानों पर मान्य है। यदि किसी नाम में एक विशेष वर्ण ($, # और _ के अलावा) का उपयोग किया जाता है और नाम दोहरे उद्धरण चिह्नों (") में संलग्न नहीं है, तो यह संदेश दिखाई देगा।
    गतिविधि: कमांड से अमान्य कैरेक्टर को हटा दें।
  • ORA-00912: स्टैक पर बिना ऑपरेंड के ऑपरेंड पॉप ऑपरेशन
    कारण: यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00913: बहुत अधिक मान
    कारण: कमांड मानों के दो समान सेट मानता है, लेकिन दूसरे सेट में पहले की तुलना में अधिक आइटम हैं। उदाहरण के लिए: WHERE या HAVING क्लॉज में सबक्वेरी में बहुत अधिक कॉलम हो सकते हैं, या INSERT क्लॉज की तुलना में VALUES या SELECT क्लॉज में अधिक कॉलम हो सकते हैं।
    गतिविधि: मदों की संख्या की जाँच करें और उन्हें बदलें।
  • ORA-00914: कीवर्ड जोड़ें गुम है
    कारण: ADD कीवर्ड के बिना ALTER PARTITION कमांड दर्ज किया गया था।
    गतिविधि: कमांड के सिंटैक्स की जाँच करें और इसे पुनः प्रयास करें।
  • ORA-00915: डिक्शनरी टेबल के नेटवर्क एक्सेस की वर्तमान में अनुमति नहीं है
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00917: लापता अल्पविराम लापता अल्पविराम
    कारण: कॉलम की सूची में, या INSERT स्टेटमेंट में मानों की सूची में, या फॉर्म की सूची में कॉमा गायब है ((c,d),(e< f),...).
    गतिविधि: अपने SQL कथन में सिंटैक्स की जाँच करें और यदि आवश्यक हो तो एक लापता अल्पविराम जोड़ें।
  • ORA-00918: स्तंभ अस्पष्ट रूप से परिभाषित
    कारण: जॉइन के लिए इस्तेमाल किया जाने वाला कॉलम एक से अधिक टेबल में मौजूद होता है। ज्वाइन करते समय, एक से अधिक टेबल में मौजूद किसी भी कॉलम में टेबल का नाम होना चाहिए। कॉलम का नाम TABLE.COLUM या TABLE_ALIAS.COLUMN, EMP.DEPTNO या E.DEPTNO होना चाहिए, न कि केवल EMP।
    गतिविधि: ऊपर दिखाए गए अनुसार डॉट या वैकल्पिक तालिका नाम से पहले कॉलम नाम में तालिका का नाम दर्ज करें।
  • ORA-00919: अमान्य फ़ंक्शन
    कारण: प्रकार के फ़ंक्शन (तर्क) के फ़ंक्शन-जैसे इनपुट को ORACLE फ़ंक्शन के रूप में मान्यता नहीं दी जाती है।
    गतिविधि: मान्य फ़ंक्शन नामों की सूची के लिए मैनुअल देखें।
  • ORA-00920: अमान्य रिलेशनल ऑपरेटर
    कारण: अमान्य या अनुपलब्ध स्थिति विवरण के साथ खोज कार्य।
    गतिविधि: एक मान्य सशर्त विवरण दर्ज करें। निम्नलिखित संबंधपरक कथनों की अनुमति है: =,!=,<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: SQL कमांड का अनपेक्षित अंत
    कारण: SQL कमांड अपूर्ण है। एक मान्य कमांड का हिस्सा दर्ज किया गया था, लेकिन कम से कम एक प्रमुख घटक छोड़ा गया था।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और लापता घटकों को सम्मिलित करें।
  • ORA-00922: अमान्य विकल्प
    कारण: कॉलम परिभाषा या क्षेत्र परिभाषा में एक अमान्य विकल्प घोषित किया गया था।
    गतिविधि: अमान्य विकल्प को कॉलम या क्षेत्र परिभाषा से हटा दें। कॉलम का वर्णन करने वाला एक वैध विकल्प यह इंगित करने के लिए न्यूल नहीं है कि कॉलम में न्यूल मान नहीं हो सकते हैं। अल्पविराम या समापन कोष्ठक को छोड़कर, डेटा प्रकार के बाद कुछ भी अमान्य विकल्प के रूप में वर्गीकृत किया जाता है। डेटा या लंबे डेटा प्रकार के लिए लंबाई का वर्णन करते समय, आपको यह त्रुटि संदेश मिलेगा। स्कोप डेफिनिशन डिक्लेरेशन में केवल निम्नलिखित विकल्पों की अनुमति है: प्रारंभिक, वृद्धि और अधिकतम, (डेटापेज और इंडेक्सपेज के लिए) और पीसीटीएफआरई (केवल डेटापेज के लिए)।
  • ORA-00923: कीवर्ड से गायब
    कारण: किसी सेलेक्ट या रिवोक स्टेटमेंट में, FROM कीवर्ड को या तो छोड़ दिया जाता है, गलत जगह पर रख दिया जाता है या गलत लिखा जाता है। FROM कीवर्ड को सेलेक्ट स्टेटमेंट में चयनित आइटम या REVOKE स्टेटमेंट में चयनित टेबल नाम का पालन करना चाहिए।
    गतिविधि: FFROM शब्द को बदलें। चयनित सूची स्वयं गलत हो सकती है। सुनिश्चित करें कि आप उपनाम को संलग्न करने के लिए एकल उद्धरणों का उपयोग करते हैं, और उपनाम एक आरक्षित शब्द है या नहीं।
  • ORA-00924: कीवर्ड द्वारा अनुपलब्ध
    कारण: GROUP BY, ORDER BY, या CONNECTED BY अभिव्यक्तियों में कीवर्ड द्वारा अनुपलब्ध। इसके अलावा, GRANT कमांड में, INDENTIFIED शब्द का BY द्वारा पालन किया जाना चाहिए।
    गतिविधि: BY शब्द सही ढंग से डालें।
  • ORA-00925: कीवर्ड में गुम है
    कारण: INTO कीवर्ड के बिना INSERT कमांड का उपयोग किया गया था।
    गतिविधि: INSERT को INSERT INTO से बदलें।
  • ORA-00926: अनुपलब्ध VALUES कीवर्ड
    कारण: VALUES या SELECT कीवर्ड के बिना INSERT स्टेटमेंट। INSERT INTO स्टेटमेंट के बाद VALUES या SELECT अनुक्रम होना चाहिए।
    गतिविधि: INSERT INTO एक्सप्रेशन के बाद VALUES एक्सप्रेशन या अनुक्रम टाइप करें।
  • ORA-00927: बराबर सिग गायब है
    कारण: निम्नलिखित स्थानों में से किसी एक में समान चिह्न गायब है: * UPDATE कमांड के SET स्टेटमेंट में * after! CREATE INDEX कमांड के PCTFREE एक्सप्रेशन में असमानता * इंगित करने के लिए
    गतिविधि: एक समान चिह्न डालें।
  • ORA-00928: अनुपलब्ध सेलेक्ट कीवर्ड
    कारण: क्रिएट व्यू कमांड में एक सेलेक्ट सीक्वेंस शामिल होना चाहिए।
    गतिविधि: क्रिएट व्यू कमांड में आवश्यक सेलेक्ट स्टेटमेंट डालें।
  • ORA-00929: लापता अवधि
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00930: लापता तारक
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00931: लापता पहचानकर्ता
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00932: असंगत डेटाटाइप असंगत डेटा प्रकार
    कारण: डेटा फ़ील्ड में वर्ण फ़ील्ड जोड़ने का प्रयास करें। डेटा केवल संख्यात्मक क्षेत्रों में जोड़ा जा सकता है।
    गतिविधि: डेटा फ़ील्ड जोड़ने से पहले TO_NUMBER फ़ंक्शन का उपयोग करके किसी वर्ण फ़ील्ड को संख्यात्मक फ़ील्ड में कनवर्ट करें।
  • ORA-00933: SQL कमांड और ठीक से समाप्त नहीं हुआ
    कारण: SQL कमांड अमान्य अभिव्यक्ति के साथ समाप्त हो गया। उदाहरण के लिए: ORDER BY क्लॉज को क्रिएट व्यू या INSERT स्टेटमेंट में शामिल किया जा सकता है। हालाँकि, ORDER BY का उपयोग किसी अन्य दृश्य को बनाने या मुख्य ऑर्डर में शामिल करने के लिए नहीं किया जाना चाहिए।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और अनावश्यक घटकों को हटा दें। आप अन्य आदेशों के साथ हटाए गए भावों की नकल करने में सक्षम होना चाहिए। उदाहरण के लिए, यदि आप समीक्षा पंक्तियों का आदेश देना चाहते हैं, तो उसी तरह आगे बढ़ें जैसे समीक्षा का अनुरोध करते समय, लेकिन उस तरह नहीं जैसे समीक्षा बनाते समय। यह त्रुटि तब भी हो सकती है जब लाइन निरंतरता इंडेंट होने पर SQL*Forms का उपयोग करते हैं। ऑफसेट जांचें और रिक्त स्थान हटाएं। यदि आप एक तर्क के साथ I अभिव्यक्ति का उपयोग करते हैं, उदाहरण के लिए: IN(X) तो आपको उपयुक्त SQL अंत का उपयोग करना चाहिए। IN व्यंजक में कम से कम दो तर्क होने चाहिए।
  • ORA-00934: यहां सेट फ़ंक्शन की अनुमति नहीं है
    कारण: समूह कार्यों में से एक (जैसे AVG, SUM, MAX, MIN, COUNT) का उपयोग WHERE या GROUP BY क्लॉज में किया गया था।
    गतिविधि: WHERE या GROUP BY क्लॉज से ग्रुप फंक्शन को हटा दें। आप किसी क्वेरी या HAVING क्लॉज में फंक्शन को शामिल करके वांछित परिणाम प्राप्त कर सकते हैं।
  • ORA-00935: सेट फ़ंक्शन बहुत गहरा नेस्टेड है
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00936: लापता अभिव्यक्ति
    कारण: अभिव्यक्ति का आवश्यक भाग छोड़ा गया है। उदाहरण के लिए, कॉलम की सूची के बिना, या असंगत प्रकार अभिव्यक्ति (एसएएल +) के साथ एक चयन कमांड दर्ज किया गया है। यह तब भी हो सकता है जब SELECT TABLE जैसे आरक्षित शब्दों को छोड़ दिया जाए।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और लापता कमांड दर्ज करें।
  • ORA-00937: एक भी समूह सेट कार्य नहीं करता है
    कारण: आप एक ही समय में एक समूह फ़ंक्शन (एवीजी, एसयूएम, काउंट, मिन, या मैक्स) और एक कस्टम कॉलम एक्सप्रेशन दोनों को शामिल नहीं कर सकते हैं, जब तक कि कॉलम एक्सप्रेशन को ग्रुप बाय क्लॉज में शामिल नहीं किया जाता है।
    गतिविधि: क्वेरी से कॉलम एक्सप्रेशन या ग्रुप फंक्शन को हटा दें, या एक ग्रुप बाय क्लॉज जोड़ें जिसमें कॉलम एन्यूमरेशन शामिल हो।
  • ORA-00938: फ़ंक्शन के लिए पर्याप्त तर्क नहीं
    कारण: फ़ंक्शन में बहुत कम तर्क घोषित किए गए हैं।
    गतिविधि: फ़ंक्शन के सिंटैक्स की जाँच करें और कोई भी आवश्यक तर्क जोड़ें।
  • ORA-00939: फ़ंक्शन के लिए बहुत अधिक तर्क
    कारण: फ़ंक्शन में बहुत अधिक तर्क हैं।
    गतिविधि: फ़ंक्शन के सिंटैक्स की जाँच करें और केवल आवश्यक तर्कों का वर्णन करें।
  • ORA-00940: अमान्य ARTER कमांड और अमान्य ALTER कमांड
    कारण: अमान्य वैकल्पिक विकल्प वर्णित है। केवल अनुभाग और टेबल गैर-दोहराए जाने वाले हो सकते हैं। एक मान्य ALTER कमांड निम्न विकल्पों में से किसी एक के साथ शुरू होना चाहिए: ALTER TABLE या ALTER PARTITION।
    गतिविधिनोट: ALTER कमांड की सही वर्तनी के लिए सिंटैक्स की जाँच करें।
  • ORA-00941: गुम क्लस्टर नाम
    कारण: समूह का नाम या तो अनुपलब्ध है या अमान्य है।
    गतिविधि: सही समूह नाम का वर्णन करें। एक मान्य समूह नाम एक अक्षर से शुरू होता है, इसमें 30 से अधिक वर्ण नहीं होते हैं, और इसमें केवल अक्षर, संख्याएँ और $, _, और # विशेष वर्ण होते हैं। यह एक आरक्षित शब्द नहीं होना चाहिए। CREATE CLUSTER कीवर्ड के तुरंत बाद नाम प्रिंट होना चाहिए।
  • ORA-00942: तालिका या दृश्य मौजूद नहीं है
    कारण: यह तालिका या अवलोकन मौजूद नहीं है। या एक तालिका के बजाय एक दृश्य नाम दर्ज किया गया है। मौजूदा यूजर टेबल और ओवरव्यू को TAB ओवरव्यू में देखा जा सकता है।
    गतिविधि: टाइपो की जांच करें और यदि आपने तालिका के बजाय समीक्षा नाम दर्ज किया है। मौजूदा नाम दर्ज करें।
  • ORA-00943: क्लस्टर मौजूद नहीं है
    कारण: उपयोगकर्ता संसाधन समूह में वर्णित नाम के साथ शामिल नहीं है।
    गतिविधि: CLUSTER कीवर्ड के ठीक बाद समूह के सही नाम का वर्णन करें।
  • ORA-00944: संकुल स्तंभों की अपर्याप्त संख्या
    कारण: CREATE CLUSTER कमांड में वर्णित की तुलना में कम समूहीकृत स्तंभों वाली तालिका बनाने का प्रयास किया गया था। CREATE TABLE कमांड के CLUSTER एक्सप्रेशन को समूह बनाए जाने पर परिभाषित सभी समूहीकृत स्तंभों का वर्णन करना चाहिए। समूह के नाम का उपयोग करके, आप COL डिक्शनरी तालिका में सभी समूह कॉलम देख सकते हैं।
    गतिविधि: CREATE TABLE कमांड में सभी कॉलम नामों का वर्णन करें।
  • ORA-00945: निर्दिष्ट क्लस्टर कॉलम मौजूद नहीं है
    कारण: CREATE TABLE स्टेटमेंट के एक्सप्रेशन में वर्णित कॉलम इस टेबल का कॉलम नहीं है।
    गतिविधि: तालिका कॉलम नाम का उपयोग करके दोहराएं।
  • ORA-00946: कीवर्ड के लिए अनुपलब्ध
    कारण: GRANT कमांड TO कीवर्ड के बिना दर्ज किया गया था, या इस कमांड के अमान्य रूप का उपयोग किया गया था।
    गतिविधि: GRANT कमांड के दो मुख्य रूपों के सिंटैक्स की जाँच करें (डेटाबेस पहुँच प्रदान करना और विशेषाधिकार देना)। TO कीवर्ड को GRANT कमांड में सही ढंग से डालें।
  • ORA-00947: पर्याप्त मान नहीं
    कारण: SQL कथन के लिए मानों के दो समान सेट की आवश्यकता होती है, और दूसरे सेट में कम मान होते हैं। यह तब भी हो सकता है जब नेस्टेड SELECT को WHERE या HAVING एक्सप्रेशन में कम कॉलम मिलते हैं, जैसे: WHERE(A,B) IN (सेलेक्ट C FROM..) INSERT स्टेटमेंट में एक एरर भी हो सकता है जिसमें एक्सप्रेशन VALUES या SELECT में INSERT के लिए पर्याप्त मान नहीं हैं, जैसे: INSERT INTO तालिका (A,B) VALUES("C")।
    गतिविधि: प्रत्येक सेट की ताकत की जांच करें और उन्हें बराबर संख्या में बनाएं।
  • ORA-00948: ALTER CLUSTER स्टेटमेंट अब समर्थित नहीं है
    कारण: ALTER CLUSTER स्टेटमेंट हटाया गया
    गतिविधि: किसी तालिका से डेटा जोड़ने के लिए, SQL कथनों के निम्नलिखित सेट का उपयोग करें: तालिका बनाएं<новая_таблица>से चयन करें<старая_таблица>समूह<имя_группы>बूँद<старая_таблица>और नाम बदलें तालिका<новая_таблица> <старая_таблица>.
  • ORA-00949: बाहरी डेटाबेस का अवैध संदर्भ
    कारण:यह एक आंतरिक त्रुटि संदेश है जो सामान्य ऑपरेशन के दौरान नहीं हो सकता है।
    गतिविधि: कृपया समस्या के विस्तृत विवरण के लिए प्रासंगिक सेटअप सॉफ़्टवेयर देखें।
  • ORA-00950: अमान्य ड्रॉप विकल्प अमान्य DROP विकल्प
    कारण: DROP कमांड के बाद, कोई DROP विकल्प नहीं था जैसे TABLE, VIEW, SYNONYM, CLUSTER, या SPACE।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और DROP विकल्प के लिए सही प्रारूप का उपयोग करें।
  • ORA-00951: क्लस्टर खाली नहीं है
    कारण: DROP कमांड एक गैर-रिक्त समूह का वर्णन करता है। किसी समूह को केवल तभी हटाया जा सकता है जब उसमें कोई तालिका न हो। DROP TABLE कमांड का उपयोग करके किसी समूह से तालिका निकालें।
    गतिविधि: समूह से सभी तालिकाओं को हटा दें और फिर DROP CLUSTER कमांड का उपयोग करें।
  • ORA-00952: GROUP कीवर्ड गुम है
    कारण: समूह गलत तरीके से लागू किया गया है।
    गतिविधि: उपयोगकर्ता से किसी कार्रवाई की आवश्यकता नहीं है।
  • ORA-00953: अनुपलब्ध अनुक्रमणिका नाम
    कारण: CREATE, DROP, Validate INDEX कमांड में, इंडेक्स का नाम गलत है या गायब है।
    गतिविधि: इंडेक्स कीवर्ड के बाद सही इंडेक्स नाम टाइप करें। यदि आप किसी अनुक्रमणिका को हटाना या ठीक करना चाहते हैं, तो INDEXES अवलोकन को देखकर नाम की जाँच करें। यदि आपको एक नई अनुक्रमणिका बनाने की आवश्यकता है, तो पहले सिंटैक्स की जाँच करें।
  • ORA-00954: INDENTIFIED कीवर्ड गुम है
    कारण: GRANT CONNECTION कमांड इंडेंटिफ़ाइड कीवर्ड के बिना जारी किया गया था।
    गतिविधि: उपयोगकर्ता नाम के बाद इंडेंटीफाइड कीवर्ड डालें। कमांड का प्रारूप इस प्रकार है: ग्रांट कनेक्शन टू<список пользователей>द्वारा अनिश्चित<пароль списка>.
  • ORA-00955: नाम पहले से ही मौजूदा वस्तु द्वारा उपयोग किया जाता है
    कारण: पहले से मौजूद तालिका, दृश्य, समूह या समानार्थी शब्द बनाने का प्रयास किया गया था। प्रत्येक उपयोगकर्ता तालिका का नाम अन्य उपयोगकर्ताओं के स्वामित्व वाले अन्य तालिका नामों, दृश्यों, समूहों या समानार्थक शब्दों से अलग होना चाहिए।
    गतिविधि: या तो एक अद्वितीय तालिका दर्ज करें, देखें, समूह, या समानार्थी नाम दर्ज करें, या किसी मौजूदा को संशोधित करें या हटाएं।
  • ORA-00956: अमान्य ऑडिटिंग विकल्प - अमान्य ऑडिटिंग विकल्प
    कारण: एक अमान्य चेक विकल्प था।
    गतिविधि: कमांड के सिंटैक्स की जाँच करें और सही विकल्प के साथ पुनः प्रयास करें।
  • ORA-00957: डुप्लीकेट कॉलम नाम
    कारण: स्तंभ का नाम CREATE या INSERT कथन में दो बार घोषित किया गया था। किसी तालिका, सिंहावलोकन या समूह में किसी स्तंभ का नाम अद्वितीय होना चाहिए।
    गतिविधि: CREATE कमांड में कॉलम नाम को एक नए अद्वितीय से बदलें। INSERT कमांड में, डुप्लिकेट नामों को हटा दें।
  • ORA-00958: CHECK कीवर्ड गुम है
    कारण: क्रिएट व्यू स्टेटमेंट के चेक ऑप्शन क्लॉज में WHITH कीवर्ड के तुरंत बाद CHECK गुम होना।
    गतिविधि: SQL कथन के सिंटैक्स की जाँच करें।
  • ORA-00959: अंतरिक्ष परिभाषा नाम मौजूद नहीं है
    कारण: A DROP SPACE कमांड एक गैर-मौजूद क्षेत्र के नाम का वर्णन करता है।
    गतिविधि: मौजूदा स्कोप परिभाषा नामों का उपयोग करें। मौजूदा नाम देखने के लिए, स्पेस से SNAME चुनें।
  • ORA-00960: अमान्य प्रारंभिक मान
    कारण: क्रिएट स्पेस कमांड में एक अमान्य स्टार्ट डेटापेज या इंडेक्सपेज नंबर मान निर्दिष्ट किया गया था। यह मान कम से कम 3 होना चाहिए।
    गतिविधि: कम से कम 3 का प्रारंभिक मान दर्ज करें।
  • ORA-00961: अमान्य वृद्धि मान
    कारण: डेटापेज या इंडेक्सपेज के लिए एक अमान्य चरण गणना मान का वर्णन किया गया था। चरण मान 3 से अधिक होना चाहिए।
    गतिविधि: 3 से अधिक वृद्धि मान दर्ज करें।
  • ORA-00962: अमान्य PCTFREE मान
    कारण: स्पेस परिभाषा में गलत खाली स्थान प्रतिशत मान का वर्णन किया गया था। यह मान 1: से 99 के बीच होना चाहिए।
    गतिविधि: 1: और 99 के बीच एक PCTFREE मान दर्ज करें।
  • ORA-00963: अमान्य SIZE मान
    कारण: CREATE CLUSTER कमांड में एक अमान्य तार्किक ब्लॉक आकार मान निर्दिष्ट किया गया था। तार्किक ब्लॉक आकार का उपयोग डेटा के छोटे समूहों को कुशलतापूर्वक संग्रहीत करने के लिए किया जाता है।
    गतिविधि: तार्किक ब्लॉक आकार (0 से अधिक) के अनुमत मान का वर्णन करें।
  • ORA-00964: अमान्य स्थान परिभाषा नाम
    कारण: एक अमान्य दायरे का नाम CREATE/DROP SPACE कमांड या CREATE TABLE में निर्दिष्ट किया गया था, या CREATE TABLE कमांड में एक गैर-मौजूद दायरे का नाम निर्दिष्ट किया गया था।
    गतिविधि: एक मान्य क्षेत्र का नाम दर्ज करें। एक मान्य नाम एक अक्षर से शुरू होता है, इसमें 30 से अधिक वर्ण नहीं होते हैं, और इसमें केवल अक्षर, संख्याएँ और $, _, और # विशेष वर्ण होते हैं। यह एक आरक्षित शब्द नहीं होना चाहिए। यदि आपका नाम सही है, तो हो सकता है कि आपने अनजाने में TEMP दायरे की परिभाषा को हटा दिया हो।
  • ORA-00965: अंतरिक्ष परिभाषा नाम पहले से मौजूद है
    कारण: क्रिएट स्पेस कमांड में एक मौजूदा दायरे का नाम इस्तेमाल किया गया था। क्षेत्र परिभाषा नाम अद्वितीय होना चाहिए।
    गतिविधि: क्षेत्र के लिए एक अद्वितीय नाम दर्ज करें।
  • ORA-00966: अनुपलब्ध TABLE कीवर्ड
    कारण: एक LOCK कमांड का उपयोग किया गया था और TABLE कीवर्ड गलत वर्तनी, या छोड़ा गया, या गलत था। LOCK कमांड इस तरह शुरू होनी चाहिए: LOCK TABLE<имя таблицы> ... .
    गतिविधि: उपयुक्त स्थान पर TABLE कीवर्ड डालें।
  • ORA-00968: INDEX कीवर्ड गुम है
    कारण: CREATE UNIQUE कमांड का उपयोग किया गया था और INDEX कीवर्ड गलत वर्तनी, या छोड़ा गया, या गलत था।
    गतिविधि: कृपया सिंटैक्स की जांच करें और पुन: प्रयास करें।
  • ORA-00969: कीवर्ड पर अनुपलब्ध
    कारण: GRANT या CREATE INDEX कमांड का उपयोग किया गया था और ON कीवर्ड गलत वर्तनी, या छोड़ा गया, या गलत था।
    गतिविधि: ON कीवर्ड को उपयुक्त स्थान पर डालें।
  • ORA-00970: कीवर्ड के साथ अनुपलब्ध - कीवर्ड के साथ अनुपलब्ध
    कारण: START कीवर्ड का उपयोग WI के बिना किया गया था। क्वेरी के लिए START WITH क्लॉज में दोनों कीवर्ड आवश्यक हैं।
    गतिविधि: START शब्द को START के साथ बदलें।
  • ORA-00971: अनुपलब्ध SET कीवर्ड - अनुपलब्ध SET कीवर्ड
    कारण: UPDATE कमांड में, SET कीवर्ड गलत वर्तनी, या छोड़ा गया, या गलत था।
    गतिविधि: बदलने के लिए तालिका के नाम के बाद SET कीवर्ड डालें।
  • ORA-00972: इंडेंटिफ़ायर बहुत बड़ा है
    कारण: डेटाबेस ऑब्जेक्ट का नाम 30 वर्णों से अधिक लंबा है। (डेटाबेस ऑब्जेक्ट टेबल, समूह, दृश्य, अनुक्रमणिका, समानार्थक शब्द, क्षेत्र और उपयोगकर्ता नाम हैं।
    गतिविधि: नाम को अधिकतम 30 वर्णों तक छोटा करें।
  • ORA-00973: अमान्य पंक्ति गणना अनुमान
    कारण: CREATE INDEX कमांड में वर्णित पंक्ति गणना मान 0 से कम संख्या है।
    गतिविधि: एक मान्य मान का वर्णन करें (0 से अधिक)।
  • ORA-00974: अमान्य इंडेक्स ब्लॉक लोडिंग फैक्टर (प्रतिशत)
    कारण: CREATE INDEX कमांड में वर्णित उपयोग किए गए वॉल्यूम का प्रतिशत, क्षेत्र 1: से 90% के अंतराल से संबंधित नहीं है।
    गतिविधि: 1 और 90 के बीच एक PCTFREE मान दर्ज करें। डिफ़ॉल्ट 10 है।
  • ORA-00975: दिनांक + दिनांक की अनुमति नहीं है
    कारण: दो डेटा फ़ील्ड को एक साथ जोड़ने का प्रयास करें। डेटा केवल संख्या फ़ील्ड में जोड़ा जा सकता है, अन्य डेटा में नहीं।
    गतिविधि: किसी संख्या फ़ील्ड में डेटा फ़ील्ड जोड़ें।
  • ORA-00977: डुप्लीकेट ऑडिटिंग विकल्प - डबल ऑडिटिंग विकल्प
    कारण: वही नियंत्रण विकल्प फिर से वर्णित किया गया है।
    गतिविधि: अनावश्यक नियंत्रण विवरण निकालें।
  • ORA-00978: ग्रुप बाय के साथ नेस्टेड सेट फंक्शन
    कारण: एक समूह फ़ंक्शन (जैसे कि MIN, MAX, या AVG) का उपयोग किसी अन्य समूह फ़ंक्शन (जैसे MAX(COUNT(*))) के अंदर किया गया था, बिना संबंधित GROUP BY क्लॉज के।
    गतिविधि: या तो ग्रुप बाय क्लॉज जोड़ें या बाहरी नेस्टिंग स्तर को हटा दें।
  • ORA-00979: अभिव्यक्ति द्वारा GROUP अभिव्यक्ति नहीं GROUP BY से संबंधित नहीं है
    कारण: ग्रुप बाय क्लॉज में सेलेक्ट क्लॉज के सभी एक्सप्रेशन शामिल नहीं हैं। समूह फ़ंक्शंस (COUNT, SUM, AVG, MAX, MIN) में शामिल नहीं किए गए SELECT के एक्सप्रेशन को GROUP BY क्लॉज़ में सूचीबद्ध किया जाना चाहिए।
    गतिविधि: ग्रुप बाय क्लॉज में उन सभी सेलेक्ट एक्सप्रेशंस को शामिल करें जो ग्रुप फंक्शन के लिए तर्क नहीं हैं।
  • ORA-00980: समानार्थी अनुवाद अब मान्य नहीं है
    कारण: आपके द्वारा उपयोग किया गया समानार्थी किसी तालिका, दृश्य या समानार्थी शब्द के लिए था जिसे हटा दिया गया है या उसका नाम बदल दिया गया है।
    गतिविधि: पर्यायवाची को तालिका के नाम से बदलें, देखें, पर्यायवाची जिसके लिए यह अभिप्रेत था। या, सही तालिकाओं, विचारों या समानार्थक शब्दों के लिए समानार्थी शब्द पुन: उत्पन्न करें।
  • ORA-00981: टेबल और सिस्टम-वाइड ऑडिटिंग विकल्पों को मिक्स नहीं कर सकता
    कारण: साथ ही टेबल और सिस्टम दोनों के चौड़ाई विकल्प को एक ही ऑडिट स्टेटमेंट में वर्णित किया गया है।
    गतिविधि: ऑपरेटर को ठीक करें।
  • ORA-00982: लापता प्लस चिह्न
    कारण: जब जोड़ा जाता है, तो बाएं कोष्ठक के बाद कोई धन चिह्न (+) नहीं होता है। संलग्न करते समय, बाएं (खुले) कोष्ठक की व्याख्या एक उपांग का वर्णन करने के रूप में की जाती है, और एक प्लस चिह्न अपेक्षित है। किसी कॉलम के अटैचमेंट का वर्णन करने के लिए, कॉलम विवरण के बाद कोष्ठक (+) में संलग्न प्लस चिह्न होना चाहिए।
    गतिविधि: SQL सिंटैक्स को ठीक करें।
  • ORA-00984: यहां कॉलम की अनुमति नहीं है
    कारण: कॉलम नाम का उपयोग किया गया है जहां इसकी अनुमति नहीं है, जैसे INSERT स्टेटमेंट के VALUES क्लॉज में।
    गतिविधि: कमांड सिंटैक्स की जाँच करें और जहाँ अनुमति हो, केवल कॉलम नामों का उपयोग करें।
  • ORA-00985: अमान्य प्रोग्राम का नाम
    कारण
    गतिविधि
  • ORA-00986: गुम या अमान्य समूह नाम - गुम या अमान्य समूह नाम (नाम)
    कारण: यह संपत्ति लागू नहीं की गई है।
    गतिविधि: कोई उपयोगकर्ता कार्रवाई की आवश्यकता नहीं है।
  • ORA-00987: अनुपलब्ध या अमान्य उपयोगकर्ता नाम
    कारण: उपयोगकर्ता नाम GRANT कमांड में निर्दिष्ट नहीं किया गया था, या निर्दिष्ट नामों में से एक गलत है। मान्य उपयोगकर्ता नाम GRANT कमांड में TO शब्द के बाद दिखाई देने चाहिए। एक वैध उपयोगकर्ता नाम एक अक्षर से शुरू होता है, 30 वर्णों तक सीमित होता है, और इसमें केवल अक्षर, संख्याएँ और $, _, और # विशेष वर्ण होते हैं। यह एक आरक्षित शब्द नहीं होना चाहिए।
    गतिविधि: GRANT कमांड में TO कीवर्ड के बाद एक मान्य उपयोगकर्ता नाम (या उपयोगकर्ताओं की सूची) का वर्णन करें।
  • ORA-00988: गुम या अमान्य पासवर्ड
    कारण: GRANT कमांड में पासवर्ड से ज्यादा यूजरनेम होते हैं। ग्रांट कमांड में सूचीबद्ध प्रत्येक उपयोगकर्ता के लिए एक वैध पासवर्ड निर्दिष्ट किया जाना चाहिए।
    गतिविधि: प्रत्येक उपयोगकर्ता के लिए सही पासवर्ड दर्ज करें।
  • ORA-00989: दिए गए उपयोगकर्ता नामों के लिए बहुत अधिक पासवर्ड
    कारण: GRANT कमांड में यूज़रनेम द्वारा वर्णित की तुलना में अधिक पासवर्ड हैं। GRANT कमांड में सूचीबद्ध प्रत्येक उपयोगकर्ता के लिए केवल एक पासवर्ड दर्ज किया जाना चाहिए।
    गतिविधि: समान संख्या में उपयोगकर्ता और पासवर्ड दर्ज करें।
  • ORA-00990: अनुपलब्ध या अमान्य विशेषाधिकार
    कारण: GRANT विशेषाधिकारों के लिए कमांड में कोई विशेषाधिकार घोषित नहीं किया गया था, या उनमें से एक अमान्य है।
    गतिविधि: एक या अधिक मान्य विशेषाधिकार दर्ज करें। निम्नलिखित विशेषाधिकारों की अनुमति है: चुनें, सम्मिलित करें, हटाएं, अद्यतन करें, बदलें, अनुक्रमणिका, ड्रॉप, क्लस्टर, और सभी। एक से अधिक विशेषाधिकार उन्हें अल्पविराम (,) द्वारा अलग की गई सूची में दर्ज करके या सभी विशेषाधिकार प्रदान करने के लिए सभी शब्द का वर्णन करके प्रदान किए जा सकते हैं।
  • ORA-00991: GRANT कमांड के लिए अपरिचित प्रारूप
    कारण: GRANT कमांड का एक अमान्य रूप दर्ज किया गया था।
    गतिविधि: कमांड सिंटैक्स की जाँच करें। GRANT कमांड दो प्रकार के होते हैं। पहले प्रकार का उपयोग डेटाबेस तक उपयोगकर्ता पहुंच को परिभाषित करने के लिए किया जाता है और इसमें निम्न प्रारूप होना चाहिए: GRANT CONNECT/Resource/DBA TO<имя пользователя>द्वारा पहचाना गया<пароль>. कनेक्ट, संसाधन, या डीबीए कीवर्ड में से कम से कम एक कीवर्ड मौजूद होना चाहिए। दूसरे प्रकार का उपयोग डेटाबेस ऑब्जेक्ट्स को विशेषाधिकार देने के लिए किया जाता है और इसका प्रारूप होता है: GRANT<список привелегий>पर<обзор/ таблица>को< индентификатор пользователя>/जनता।
  • ORA-00992: REVOKE कमांड के लिए अपरिचित प्रारूप
    कारण: REVOKE आदेश का एक अमान्य प्रपत्र दर्ज किया गया था।
    गतिविधि: कमांड के सिंटैक्स की जाँच करें और इसे पुनः प्रयास करें।
  • ORA-00993: GRANT कीवर्ड गुम है
    कारण: बिना GRANT विकल्प के GRANT कमांड के अंत में WITH विकल्प घोषित किया गया था। एक उपयोगकर्ता को विशेषाधिकार देने और अन्य उपयोगकर्ताओं को उन्हें देने की अनुमति देने के लिए, GRANT कमांड के अंत में WITH GRANT OPTIO विकल्प का उपयोग करें।
    गतिविधि: कीवर्ड के साथ को GRANT विकल्प से बदलें।
  • ORA-00994: अनुपलब्ध विकल्प कीवर्ड - OPTIO कीवर्ड अनुपलब्ध
    कारण: WITH GRANT विकल्प का उपयोग GRANT कमांड के अंत में विकल्प शब्द के बिना किया गया था।
    गतिविधि: कुंजी को अनुदान से अनुदान विकल्प में बदलें।
  • ORA-00995: अनुपलब्ध या अमान्य समानार्थी इंडेंटिफ़ायर
    कारण: CREATE या DROP SYNONYM कमांड में, एक समानार्थी नाम या तो छोड़ा गया था या अमान्य था।
    गतिविधि: टाइपो और कमांड सिंटैक्स के लिए जाँच करें। एक मान्य समानार्थी नाम को दोनों कमांड में SYNONYM कुंजी का तुरंत पालन करना चाहिए। एक मान्य समानार्थी नाम एक अक्षर से शुरू होता है, 30 वर्णों तक सीमित होता है, और इसमें केवल अक्षर, संख्याएँ और $, _, और # विशेष वर्ण होते हैं। यह एक आरक्षित शब्द नहीं होना चाहिए।
  • ORA-00996: कॉन्टेनेट ऑपरेटर ¦¦ नहीं है - कॉन्टेनेट ऑपरेटर है ||, नहीं |
    कारण: सिंगल स्ट्रोक (|) को कॉन्सटेनेशन का वर्णन करने के प्रयास के रूप में समझा गया था, लेकिन कॉन्सटेनेशन ऑपरेटर में दो स्ट्रोक (||) होते हैं।
    गतिविधि: संयोजन संचालन के लिए दोहरा स्ट्रोक दर्ज करें, या संयोजन की आवश्यकता न होने पर एकल स्ट्रोक को हटा दें।
  • ORA-00997: लंबे डेटाटाइप का अवैध उपयोग
    कारण: आपने LONG डेटा प्रकार का उपयोग किया है, जिसका उपयोग 240 वर्णों से बड़े डेटा को किसी फ़ंक्शन में या WHERE, GROUP BY, ORDER BY क्लॉज़ में संग्रहीत करने के लिए किया जाता है। LONG मान का उपयोग केवल SELECT क्लॉज में किया जा सकता है।
    गतिविधि: इस फ़ील्ड को फ़ंक्शन या ऑफ़र से निकालें।
  • ORA-00998: इस एक्सप्रेशन को कॉलम लेबल के साथ नाम देना चाहिए
    कारण: क्रिएट व्यू कमांड में एक फ़ंक्शन या एक्सप्रेशन का उपयोग किया गया था, लेकिन संबंधित कॉलम नाम घोषित नहीं किया गया था। जब किसी व्यू के लिए एक्सप्रेशन या फ़ंक्शन का उपयोग किया जाता है, तो सभी कॉलम और व्यू नामों को क्रिएट व्यू कमांड में सही ढंग से सूचीबद्ध किया जाना चाहिए।
    गतिविधि: समीक्षा नाम के बाद सभी समीक्षा कॉलम नाम कोष्ठकों में दर्ज करें।
  • ORA-00999: अमान्य दृश्य नाम।
    कारण: क्रिएट व्यू कमांड में गायब या अमान्य दृश्य नाम।
    गतिविधि: क्रिएट व्यू के तुरंत बाद एक मान्य दृश्य नाम दर्ज करें। एक मान्य ब्राउज़ नाम एक अक्षर से शुरू होता है, 30 वर्णों तक सीमित होता है, और इसमें केवल अक्षर, संख्याएँ और $,_, और # विशेष वर्ण होते हैं। यह एक आरक्षित शब्द नहीं होना चाहिए।