plsql - How to convert char into an array in Informix database? -


मेरे पास इस तरह एक संग्रहीत कार्यविधि है:

  क्रय प्रक्रिया Proc_Test (परीक्षण मान सेट (char (1000) नल नहीं)) वापस आना; परिभाषित z वर्ण (7000); ले z = ''; FOREACH चुनें * तालिका से z में (टेस्टवैल्यू) END FOREACH; वापसी 1; अंत प्रक्रिया;  

आवश्यकता में परिवर्तन के कारण मैं इस संग्रहीत कार्यविधि को इस प्रकार बदलना चाहूंगा:

  क्रय प्रक्रिया Proc_Test (टेस्टवैल्यू चर (7000) रिक्त नहीं) वापस लौटना; परिभाषित z वर्ण (7000); ले z = ''; CAST (सीवीजी एएस सेट (चार (1000))); FOREACH चुनें * तालिका से z में (टेस्टवैल्यू) END FOREACH; वापसी 1; अंत प्रक्रिया;  

मुझे कुछ अज्ञात सिंटैक्स त्रुटि हो रही है।

मुझे पता है कि त्रुटि यहां है:

  CAST (cvg AS set (char (1000)));  

क्या आप रनटाइम पर इसे बदलने के लिए एक अन्य प्रकार के चर को डालने का बेहतर तरीका जानते हैं?

पहेली

वास्तव में आपकी प्रक्रिया क्या करना है? जहाँ तक मैं देख सकता हूं, यह 'परीक्षण की संख्या में नल' के लिए एक मिश्रित परीक्षण है? हो सकता है ... वास्तव में कोड बिना शर्त 1 देता है, इसलिए यह स्पष्ट नहीं है कि यह भी निरर्थक परीक्षण करता है, लेकिन प्रक्रिया संभवतः मूल्य के साथ स्ट्रिंग की तुलना में किसी रिक्त स्ट्रिंग पर त्वरित निष्पादित करती है।

निदान

सिंटैक्स त्रुटि उत्पन्न होती है क्योंकि 'सीवीजी' प्रक्रिया में परिभाषित चर नहीं है। इसके अलावा, CAST को असाइनमेंट के आरएचएस या कुछ इसी तरह का होना चाहिए। और मैं स्पष्ट नहीं हूं कि आप एक सीआरएआर (7000) को 7 सीआरएएस (1000) फ़ील्ड में एक कलाकार के साथ सेट में तोड़ सकते हैं।

फिक्स?

हालांकि, मैं कर सकता हूँ आपको यह सलाह नहीं दीजिए कि क्या करना है क्योंकि मैं पुरानी या नई आवश्यकताओं को समझ नहीं पा रहा हूं।


Comments