Oracle में, NLS_CHARSET_DECL_LEN()
फ़ंक्शन NCHAR
. की घोषणा लंबाई (वर्णों की संख्या में) देता है कॉलम।
सिंटैक्स
वाक्य रचना इस प्रकार है:
NLS_CHARSET_DECL_LEN(byte_count, char_set_id)
जहां byte_count
कॉलम की चौड़ाई है और char_set_id
कॉलम का कैरेक्टर सेट आईडी है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;
परिणाम:
100
यहाँ यह एक भिन्न वर्ण सेट आईडी के साथ है:
SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;
परिणाम:
50
वर्ण सेट आईडी प्राप्त करें
हम NLS_CHARSET_ID()
. का उपयोग कर सकते हैं किसी दिए गए वर्ण सेट के लिए वर्ण सेट आईडी वापस करने के लिए कार्य करें:
उदाहरण:
DUAL सेSELECT NLS_CHARSET_DECL_LEN(
100,
NLS_CHARSET_ID('AL16UTF16')
)
FROM DUAL;
परिणाम:
50
शून्य तर्क
यदि कोई तर्क null
है , परिणाम null
. है :
SET NULL 'null';
SELECT
NLS_CHARSET_DECL_LEN(null, 1) AS r1,
NLS_CHARSET_DECL_LEN(100, null) AS r2
FROM DUAL;
परिणाम:
R1 R2 _______ _______ null null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null
. खाली स्थान लौटाते हैं SQL SELECT
. के परिणामस्वरूप होता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
वापस किया जाना चाहिए।
गलत तर्क गणना
कोई तर्क पारित किए बिना फ़ंक्शन को कॉल करने से त्रुटि होती है:
SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN() 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:
और बहुत अधिक तर्क पारित करने से भी त्रुटि होती है:
SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT NLS_CHARSET_DECL_LEN(100, 1, 2) 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: