Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да избера само част от огромен двоичен файл (файл)?

Добре, разбрах го. Начинът да направите това е с функцията substring, за която MS точно казва, че работи с двоични файлове. Това, което не казват е, че поднизът ще върне само 8 000 байта, което ме хвърли.

С други думи, ако типът данни на blob е изображение и използвате това:

 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) и типът данни на полето blob е varbinary(max) - или някакъв размер, който е полезен за вас - тогава използвайте функцията substring, за да върнете частичния двоичен файл в променливата, която сте декларирали. Това работи добре. Точно така:

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

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

Въпросът беше зададен по-рано, защо да използвате SQL за съхраняване на файлови данни? Това е валиден въпрос; представете си, че трябва да репликирате данни като файлове на стотици различни клиентски устройства (като iPhone), като всеки пакет е уникален от другия, защото различните клиенти имат различни нужди, тогава съхраняването на файловите пакети като петна в база данни е много по-лесно за програмиране срещу това би било програмно копаене в папки, за да се намери правилният пакет за поточно предаване към клиента.



  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 Server 2008?

  2. Транзакция на разпределена база данни срещу транзакция на кръстосана база данни

  3. Наблюдавайте бази данни и екземпляри чрез Монитор на активността | Отстраняване на проблеми с производителността на SQL Server -2

  4. PIVOT заявка към различни записи

  5. Как да извлечете последната автоматично увеличена стойност в MS-Access като @@Identity в Sql Server