Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara memilih hanya sebagian dari biner besar (file)?

Oke, saya menemukan jawabannya. Cara untuk melakukannya adalah dengan fungsi substring, yang menurut MS secara akurat berfungsi dengan binari. Apa yang tidak mereka katakan adalah bahwa substring hanya akan mengembalikan 8.000 byte, itulah yang membuat saya terlempar.

Dengan kata lain, jika tipe data blob adalah gambar dan Anda menggunakan ini:

 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)

Namun, jika Anda mendeklarasikan variabel varbinary(max) dan tipe data bidang blob adalah varbinary(max) - atau beberapa ukuran yang berguna bagi Anda - maka gunakan fungsi substring untuk mengembalikan biner parsial ke dalam variabel yang Anda nyatakan. Ini bekerja dengan baik. Seperti ini:

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

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

Pertanyaan telah diajukan sebelumnya, mengapa menggunakan SQL untuk menyimpan data file? Ini pertanyaan yang valid; bayangkan Anda harus mereplikasi data sebagai file ke ratusan perangkat klien yang berbeda (seperti iPhone), setiap paket unik dari yang lain karena klien yang berbeda memiliki kebutuhan yang berbeda, maka menyimpan paket file sebagai gumpalan pada database jauh lebih mudah untuk diprogram dibandingkan dengan menggali folder secara terprogram untuk menemukan paket yang tepat untuk dialirkan ke klien.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 Area yang Akan Diuntungkan dari Menggunakan Alat Pemantauan Kinerja SQL Server

  2. SQL:Pilih nama kolom dinamis berdasarkan variabel

  3. Cara Memasang SSMS

  4. Bahaya menggunakan 'IF EXISTS... UPDATE .. ELSE.. INSERT' dan apa alternatifnya?

  5. SQL Server JIKA TIDAK ADA Penggunaan?