Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मैं विशाल बाइनरी (फ़ाइल) के केवल एक हिस्से का चयन कैसे करूं?

ठीक है, मैंने पता लगा लिया। ऐसा करने का तरीका सबस्ट्रिंग फ़ंक्शन के साथ है, जिसे एमएस सटीक रूप से बाइनरी के साथ काम करता है। वे जो नहीं कहते हैं वह यह है कि सबस्ट्रिंग केवल 8,000 बाइट लौटाएगा, जिसने मुझे फेंक दिया।

दूसरे शब्दों में, यदि ब्लॉब डेटा प्रकार छवि है और आप इसका उपयोग करते हैं:

 select substring(BlobField,0,100000000) 
 from TableWithHugeBlobField
 where ID = SomeIDValue

 --all you'll get is the first 8K bytes (use DataLength function to get the size)

हालांकि, यदि आप varbinary(max) का एक चर घोषित करते हैं और ब्लॉब फ़ील्ड डेटा प्रकार varbinary(max) है - या कुछ आकार जो आपके लिए उपयोगी है - तो आंशिक बाइनरी को आपके द्वारा घोषित चर में वापस लाने के लिए सबस्ट्रिंग फ़ंक्शन का उपयोग करें। यह ठीक काम करता है। बस इस तरह:

 Declare @PartialImage varbinary(max) 
 select @PartialImage = substring(BlobField, 0, 100000000) --1GB
 from TableWithHugeBlobField
 where ID = SomeIDValue

 select DataLength(@PartialImage) -- should = 1GB

प्रश्न पहले उठाया गया था, फ़ाइल डेटा को संग्रहीत करने के लिए SQL का उपयोग क्यों करें? यह एक वैध प्रश्न है; कल्पना करें कि आपको सैकड़ों अलग-अलग क्लाइंट डिवाइस (जैसे iPhones) में डेटा को फ़ाइलों के रूप में दोहराने की आवश्यकता है, प्रत्येक पैकेज दूसरे से अद्वितीय है क्योंकि अलग-अलग क्लाइंट की अलग-अलग ज़रूरतें हैं, फिर फ़ाइल पैकेज को डेटाबेस पर ब्लॉब्स के रूप में संग्रहीत करना बहुत आसान है प्रोग्राम क्लाइंट को स्ट्रीम करने के लिए सही पैकेज खोजने के लिए फ़ोल्डर्स के माध्यम से प्रोग्रामेटिक रूप से खोदना होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में स्ट्रिंग्स को जोड़ने के लिए GROUP BY का उपयोग कैसे करें?

  2. T-SQL का उपयोग करके SQL सर्वर में सभी डेटाबेस को सूचीबद्ध करने का सबसे तेज़ तरीका

  3. SQL सर्वर प्रबंधन स्टूडियो में फ़्लोटिंग पॉइंट प्रकारों का पूर्ण सटीक आउटपुट

  4. टी-एसक्यूएल का उपयोग कर एक्सएमएल वैरिएबल में एक्सएमएल एट्रिब्यूट वैल्यू को कैसे अपडेट करें?

  5. SQL सर्वर में दो तिथियों के बीच घंटों (दशमलव) में अंतर की गणना कैसे करें?