oracle - invalid character error while executing immediate -


  अप अपवाद जब दूसरों को sqltext2: = 'ERROR_TABLE_SHREE चयन में डालें' || str || ' दोहरी से; '; निष्कर्ष निकालें sqltext2; समाप्त; COMMIT;  

मुझे अपवाद ब्लॉक में निम्न त्रुटि मिल रही है

  ORA-00911: अवैध वर्ण  

आपकी कोई स्ट्रिंग नहीं है (मुझे लगता है str को कुछ विवरण के रूप में घोषित किया गया है) यदि आप स्ट्रिंग को सम्मिलित करना चाहते हैं, तो आपको अतिरिक्त उद्धरण की आवश्यकता नहीं है अन्यथा यह इस उदाहरण में एक स्तंभ के रूप में व्याख्या की जाएगी। कुछ ऐसा है:

  शुरू ... अपवाद जब दूसरों को sqltext2: = 'त्रुटि_टेबल_श्री चयन में' सम्मिलित करें '' '|| str ||' '' दोहरे से '; तत्काल sqltext2 निष्पादित; समाप्त; प्रतिबद्ध;  

कृपया ध्यान दें कि मैंने आपके स्ट्रिंग के अंत से अर्द्ध-कोलन हटा दिया है; यह आवश्यक नहीं है (और संभवत: आपकी त्रुटि का वास्तविक कारण है)।

यह भी ध्यान देने योग्य है कि यह थोड़ा सा है ... आप संयोजन की बजाय उपयोग करना चाहिए; यह सभी में वर्णित है:

  शुरू ... अपवाद जब दूसरों को तत्काल निष्पादित करें error_table_shree में सम्मिलित करें: 1 दोहरे 'स्ट्रिंग का उपयोग करके; समाप्त; प्रतिबद्ध;  

हालांकि, इस संदर्भ में गतिशील SQL का उपयोग करने की कोई आवश्यकता नहीं है; आप बस वैरिएबल वैल्यू सम्मिलित कर सकते हैं:

  शुरू ... अपवाद जब दूसरों को error_table_shree मानों (str) में डालें; समाप्त; प्रतिबद्ध;  

अंत में, मैं आपके COMMIT के बारे में थोड़ा चिंतित हूँ; इस तरीके से एक त्रुटि को संभालने के बाद यह असामान्य है अधिक संदर्भ के बिना यह निश्चित होना असंभव है, लेकिन त्रुटि लॉगिंग के लिए यह

में अधिक सामान्य होगा।

Comments