2010-03-03 10 views
58

मुझेobacle में blob आकार खोजने के लिए dbms_lob.getlength() बनाम लंबाई()

select length(column_name) from table 

select dbms_lob.getlength(column_name) from table

के समान परिणाम मिल रहे हैं, हालांकि, this question के उत्तर dbms_lob.getlength() का उपयोग करने के पक्ष में प्रतीत होते हैं।

dbms_lob.getlength() का उपयोग करने के लिए कोई फायदा है?

अगर यह उत्तर बदलता है, तो मुझे पता है कि सभी ब्लॉब्स .bmp छवियां हैं (कभी ब्लॉब्स के साथ काम नहीं किया)।

उत्तर

87

length और जब एक CLOB (चरित्र LOB) के लिए आवेदन किया dbms_lob.getlength वर्णों की संख्या लौटने। एक ब्लॉब (बाइनरी LOB) के लिए आवेदन किया है, dbms_lob.getlength बाइट की संख्या है, जो एक मल्टी-बाइट कैरेक्टर सेट में वर्णों की संख्या से अलग हो सकता वापस आ जाएगी।

जैसा कि प्रलेखन निर्दिष्ट नहीं करता है जब आप बीएलओबी पर length लागू करते हैं, तो मैं उस मामले में इसका उपयोग करने के खिलाफ सलाह दूंगा। यदि आप बीएलओबी में बाइट्स की संख्या चाहते हैं, तो dbms_lob.getlength का उपयोग करें।

+4

या यदि आप जानते हैं कि आप बीएलओबी के साथ काम कर रहे हैं और सीएलओबी या एनसीएलओबी बीएलओबी में बाइट्स की संख्या प्राप्त करने के लिए लम्बाई (बीएलओबी) का उपयोग नहीं करते हैं। –

संबंधित मुद्दे