में बाइनरी ब्लॉब की लंबाई (आकार) कैसे मिलती है मेरे पास एक एसक्लाइट तालिका है जिसमें एक बीएलओबी फ़ाइल है, लेकिन ब्लॉब पर आकार/लंबाई जांच करने की आवश्यकता है, मैं यह कैसे कर सकता हूं?मुझे एसक्लाइट
कुछ दस्तावेज के अनुसार मुझे लगता है कि लंबाई (ब्लॉब) का उपयोग नहीं किया जाएगा, क्योंकि लंबाई() केवल ग्रंथों पर काम करती है और पहले नल के बाद गिनती बंद कर देगी। मेरे अनुभवजन्य परीक्षणों ने यह सच साबित किया है।
मैं उपयोग कर रहा हूँ SQLite 3.4.2
अपडेट:
तो SQLite के रूप में यह प्रतीत होता है के रूप में यद्यपि लंबाई() फ़ंक्शन धब्बे का सही मान देता है 3.7.6 - मैं जाँच स्क्लाइट के विभिन्न परिवर्तन-लॉग, लेकिन यह नहीं देखा कि यह किस संस्करण में सुधार किया गया था।
SQLite 3.7.6 से:
payload_id|length(payload)|length(hex(payload))/2 1807913|194|194 1807914|171|171
documentation यह दिखाने के लिए बदल गया था।
length(X) The length(X) function returns the length of X in characters if X is a string, or in bytes if X is a blob. If X is NULL then length(X) is NULL. If X is numeric then length(X) returns the length of a string representation of X.
बाइनरी ब्लॉब के लिए?यह SQLite दस्तावेज़ीकरण का उल्लंघन करेगा जो कहता है कि ब्लब्स को टेक्स्ट के रूप में माना जाता है और इस तरह की लंबाई() केवल तभी सटीक होती है जब तक कि यह '\ 0' वर्ण नहीं पाती। – Petriborg
http://www.sqlite.org/lang_corefunc.html पर वर्तमान दस्तावेज कहता है कि "एक्स (स्ट्रिंग) एक्स एक्स अक्षरों में एक्स की लंबाई देता है यदि एक्स स्ट्रिंग है, या बाइट्स में एक्स एक्स ब्लॉब है।" – Govert