Oracle में, TRANSLATE(...USING)
फ़ंक्शन अपने तर्क को डेटाबेस वर्ण सेट और राष्ट्रीय वर्ण सेट के बीच रूपांतरण के लिए निर्दिष्ट वर्ण सेट में परिवर्तित करता है।
इस फ़ंक्शन को TRANSLATE()
के साथ भ्रमित नहीं होना चाहिए फ़ंक्शन, जो आपको एक ऑपरेशन में कई एकल-वर्ण, एक-से-एक प्रतिस्थापन करने की अनुमति देता है।
TRANSLATE(...USING)
फ़ंक्शन Oracle में मुख्य रूप से ANSI संगतता के लिए समर्थित है। Oracle अनुशंसा करता है कि हम TO_CHAR()
. का उपयोग करें और TO_NCHAR()
इसके बजाय कार्य करता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TRANSLATE ( char USING
{ CHAR_CS | NCHAR_CS }
)
जहां char
परिवर्तित किया जाने वाला व्यंजक है, और:
USING
निर्दिष्ट करनाCHAR_CS
तर्क कनवर्ट करता हैchar
डेटाबेस वर्ण सेट में। आउटपुट डेटा प्रकारVARCHAR2
है ।USING
निर्दिष्ट करनाNCHAR_CS
तर्क कनवर्ट करता हैchar
राष्ट्रीय चरित्र सेट में। आउटपुट डेटा प्रकारNVARCHAR2
है ।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT
TRANSLATE('Cat' USING CHAR_CS) AS CHAR_CS,
TRANSLATE('Cat' USING NCHAR_CS) AS NCHAR_CS
FROM DUAL;
परिणाम:
CHAR_CS NCHAR_CS __________ ___________ Cat Cat
अंतर प्रदर्शित करने के लिए, यहां बताया गया है कि जब हम इसे DUMP()
. पर पास करते हैं तो क्या होता है समारोह:
SELECT
DUMP(TRANSLATE('Cat' USING CHAR_CS), 17) AS CHAR_CS,
DUMP(TRANSLATE('Cat' USING NCHAR_CS), 17) AS NCHAR_CS
FROM DUAL;
परिणाम:
CHAR_CS NCHAR_CS _____________________ ______________________________ Typ=1 Len=3: C,a,t Typ=1 Len=6: ^@,C,^@,a,^@,t
अशक्त तर्क
पासिंग null
जैसा कि तर्क देता है null
:
SET NULL 'null';
SELECT
TRANSLATE(null USING CHAR_CS) AS Result
FROM DUAL;
परिणाम:
null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null
. खाली स्थान लौटाते हैं SQL SELECT
. के परिणामस्वरूप होता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
लौटाया जाना चाहिए।
अनुपलब्ध तर्क
char
. पास किए बिना फ़ंक्शन को कॉल करना तर्क के परिणामस्वरूप त्रुटि होती है:
SELECT TRANSLATE(USING CHAR_CS)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT TRANSLATE(USING CHAR_CS) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: