SQL सर्वर (और Azure) में, T-SQL DATALENGTH()
फ़ंक्शन किसी भी अभिव्यक्ति का प्रतिनिधित्व करने के लिए उपयोग किए गए बाइट्स की संख्या देता है।
उदाहरण के लिए:
SELECT DATALENGTH('Lit');
परिणाम:
3
इस मामले में, स्ट्रिंग में 3 बाइट्स हैं Lit
।
हालाँकि, यह एक साधारण उदाहरण है। डेटा प्रकार के आधार पर परिणाम बहुत अलग दिख सकते हैं।
उपरोक्त उदाहरण में, हमने देखा कि Lit
. शब्द में 3 बाइट्स हैं . यह भी होता है कि स्ट्रिंग में कितने वर्ण हैं। लेकिन अगर हम डेटाबेस में कॉलम से वही शब्द वापस करते हैं, तो हमें एक अलग परिणाम मिल सकता है। उदाहरण के लिए, यह:
SELECT ArtistName, DATALENGTH(ArtistName) AS DataLength FROM Artists WHERE ArtistName = 'Lit';
परिणाम:
ArtistName DataLength ---------- ---------- Lit 6
इस मामले में डेटा की लंबाई 6 है।
इसका कारण यह है कि, इस विशेष डेटाबेस में, कॉलम में एक nvarchar(255) है डेटा प्रकार। नवरचर डेटा प्रकार एक यूनिकोड स्ट्रिंग है, जो प्रति वर्ण 2 बाइट्स संग्रहीत करता है (जो प्रभावी रूप से डेटा की लंबाई को दोगुना करता है)। अगर कॉलम ने इसके बजाय varchar(255) . का इस्तेमाल किया होता इसकी डेटा लंबाई 3 होगी। हालांकि, अगर यह कह सकता है, char(25) स्ट्रिंग की डेटा लंबाई 25 होगी।
साथ ही, अगर यह पहले char(25) . होता लेकिन फिर इसे varchar(255) . में बदल दिया गया इसकी डेटा लंबाई अभी भी 255 होगी।
हालांकि, सभी मामलों में, LEN()
फ़ंक्शन 3 वापस आ जाता।
पिछला रिक्त स्थान
DATALENGTH()
फ़ंक्शन अनुगामी रिक्त स्थान की गणना करता है (जैसे स्ट्रिंग के अंत में रिक्त स्थान, टैब, कैरिज रिटर्न, आदि)।
उदाहरण:
SELECT DATALENGTH('Lit ');
परिणाम:
4
इस उदाहरण में मैंने केवल स्ट्रिंग के अंत में एक स्थान जोड़ा है। यह LEN()
. के बीच एक और अंतर है और DATALENGTH()
।
आप LEN()
. के उदाहरण देख सकते हैं और DATALENGTH()
LEN()
. में साथ-साथ बनाम DATALENGTH()
।
वापसी का प्रकार
DATALENGTH()
फ़ंक्शन int . का डेटा प्रकार लौटाता है , जब तक कि व्यंजक varchar(max) . न हो , nvarchar(अधिकतम) या varbinary(अधिकतम) , जिस स्थिति में यह bigint . लौटाता है ।