हमारे पास varchar2(100)
कॉलम वाला एक टेबल है, जिसमें कभी-कभी कैरिज-रिटर्न & लाइन-फ़ीड्स होता है। हमें SQL क्वेरी में उन वर्णों को हटाना चाहिए। हम प्रयोग कर रहे हैं:ओरेकल रेप्लेस() फ़ंक्शन कैरिज-रिटर्न और लाइन-फ़ीड्स को संभालने वाला नहीं है
REPLACE(col_name, CHR(10))
जो है कोई प्रभाव नहीं, हालांकि 'CHR (10)' की जगह एक और अधिक परंपरागत 'पत्र' चरित्र के लिए साबित होता है कि REPLACE समारोह अन्यथा काम करता है। हम यह भी पाया गया कि
REPLACE(col_name, CHR(10), '_')
पाता स्थान नई लाइन की, लेकिन आवेषण अंडरस्कोर के बाद, बल्कि यह जगह से है।
ओरेकल 8i पर चल रहा है। उन्नयन एक विकल्प नहीं है।
के मामले में कॉलम की वास्तविक सामग्री की जांच करने के लिए DUMP() फ़ंक्शन एक अच्छा तरीका है, क्या आप विस्तृत कर सकते हैं कोड का 'x'' हिस्सा? मैं पीछा नहीं कर रहा हूँ। मैं समझता हूं कि आपको प्रतिस्थापन निर्दिष्ट करने की आवश्यकता है, लेकिन आपको दूसरे तर्क की शुरुआत में प्रतिस्थापन को शामिल करने की आवश्यकता क्यों है? –
यदि आप 'ट्रान्सलेट (col_name, सीएचआर (10) || सीएचआर (13), शून्य) लिखते हैं, तो यह काम नहीं करेगा - यह हमेशा न्यूल (शून्य प्रबंधन का एक quirk) वापस आ जाएगा। यदि आप 'ट्रान्सलेट (col_name, सीएचआर (10) || सीएचआर (13),' x ') लिखते हैं, तो यह प्रत्येक सीएचआर (10) से' x 'को परिवर्तित करेगा, जो वांछित नहीं है। यदि हम दोनों 'एक्स' के साथ दोनों तर्कों को उपसर्ग करते हैं तो यह वांछित परिणाम देकर 'x' से 'x' और CHR (10), सीएचआर (13) को शून्य में अनुवाद करेगा। –
गोटा, इसलिए संदर्भ के इस भाग का अर्थ है 'इस मामले में, से_स्टिंग के अंत में अतिरिक्त वर्णों में to_string में कोई संबंधित वर्ण नहीं है। यदि ये अतिरिक्त वर्ण चार में दिखाई देते हैं, तो उन्हें वापसी मूल्य से निकाल दिया जाता है। धन्यवाद! –