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

NLS_COLLATION_NAME () Oracle में कार्य

Oracle डाटाबेस में, NLS_COLLATION_NAME() फ़ंक्शन किसी दिए गए कॉलेशन का नाम उसकी आईडी के आधार पर देता है। फ़ंक्शन को कॉल करते समय आप कॉलेशन आईडी पास करते हैं, और यह कॉलेशन नाम लौटाता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

NLS_COLLATION_NAME(expr [, flag ])

जहां expr NUMBER . प्रकार की संयोजन आईडी है ।

flag तर्क एक वैकल्पिक तर्क है जो केवल Unicode Collation Algorithm (UCA) कोलाजेशन पर लागू होता है। यह निर्धारित करता है कि फ़ंक्शन को कॉलेशन नाम का संक्षिप्त रूप या लंबा रूप वापस करना चाहिए या नहीं।

flag तर्क निम्न में से एक हो सकता है:

<थ>विवरण
ध्वज
'S' या 's' संयोजन नाम का संक्षिप्त रूप देता है।
'L' या 'l' कोलेशन नाम का लंबा फॉर्म लौटाता है।

इस ध्वज के लिए डिफ़ॉल्ट मान 'L' . है ।

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है:

SELECT NLS_COLLATION_NAME(70)
FROM DUAL;

परिणाम:

XAZERBAIJANI

यहां कुछ और उदाहरण दिए गए हैं:

SELECT 
    NLS_COLLATION_NAME(4112) AS "1",
    NLS_COLLATION_NAME(4116) AS "2"
FROM DUAL;

परिणाम:

          1             2 
___________ _____________ 
FRENCH_M    CANADIAN_M   

लॉन्ग/शॉर्ट फॉर्म फ्लैग

जैसा कि उल्लेख किया गया है, हम यह निर्धारित करने के लिए एक वैकल्पिक ध्वज पारित कर सकते हैं कि संक्षिप्त नाम का संक्षिप्त रूप या लंबा रूप वापस करना है या नहीं।

SELECT 
    NLS_COLLATION_NAME(208920, 'L') AS "Long",
    NLS_COLLATION_NAME(208920, 'S') AS "Short"
FROM DUAL;

परिणाम:

                                      Long           Short 
__________________________________________ _______________ 
UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN    UCA0620_THAI   

इस ध्वज के लिए डिफ़ॉल्ट मान 'L' है . इसलिए यदि हम ध्वज को छोड़ देते हैं, तो लंबा रूप वापस आ जाता है:

SELECT 
    NLS_COLLATION_NAME(208920) AS "Default"
FROM DUAL;

परिणाम:

                                   Default 
__________________________________________ 
UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN   

हालांकि यह ध्वज केवल यूनिकोड Collation Algorithm (UCA) कोलाजेशन पर लागू होता है।

यदि हम ध्वज को गैर-यूसीए संयोजन पर लागू करते हैं, तो हमें कोई अंतर नहीं दिखता:

SELECT 
    NLS_COLLATION_NAME(4112, 'L') AS "1",
    NLS_COLLATION_NAME(4112, 'S') AS "2"
FROM DUAL;

परिणाम:

          1           2 
___________ ___________ 
FRENCH_M    FRENCH_M   

अमान्य मिलान

अमान्य कॉलेशन नाम पास करने से null में परिणाम मिलता है :

SET NULL 'null';
SELECT NLS_COLLATION_NAME(4113)
FROM DUAL;

परिणाम:

null

डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null . खाली स्थान लौटाते हैं SQL SELECT . के परिणामस्वरूप होता है बयान।

हालांकि, आप SET NULL . का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null लौटाया जाना चाहिए।

शून्य तर्क

पासिंग null रिटर्न null :

SET NULL 'null';
SELECT NLS_COLLATION_NAME(null)
FROM DUAL;

परिणाम:

null

गलत तर्क गणना

कोई तर्क पारित किए बिना फ़ंक्शन को कॉल करने से त्रुटि होती है:

SELECT NLS_COLLATION_NAME()
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT NLS_COLLATION_NAME()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

और बहुत अधिक तर्क देने से भी त्रुटि होती है:

SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*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 ODBC ड्राइवर के साथ SQL सर्वर का उपयोग करते समय यदि आपको गलत बुकमार्क क्रमसूचक त्रुटि मिलती है तो क्या करें?

  3. ओरेकल में एमओडी () फ़ंक्शन

  4. मेरे एसक्यूएल परिणामों को डुप्लिकेट कैसे करें?

  5. कैसे एक सबक्वेरी का उपयोग किए बिना अधिकतम अनुक्रम के साथ केवल पंक्ति का चयन करने के लिए?