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: