Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में अनुवाद (... का उपयोग करना) फ़ंक्शन

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. केस और इन के साथ अपडेट करें - Oracle

  2. फाइन-ट्यूनिंग Oracle DG40DBC

  3. कोलन साइन क्या करता है :SQL क्वेरी में क्या करें?

  4. विभिन्न डीबीएमएस के बीच डेटा माइग्रेशन

  5. Oracle PL SQL उदाहरण में तालिका प्रकार