>데이터 베이스 >MySQL 튜토리얼 >Microsoft SQL Server의 이미지 필드 데이터를 개별 파일로 내보내는 방법은 무엇입니까?

Microsoft SQL Server의 이미지 필드 데이터를 개별 파일로 내보내는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-27 03:53:37149검색

How to Export Image Field Data from Microsoft SQL Server to Individual Files?

파일로 이미지 필드 데이터 내보내기

Microsoft SQL Server에서 일부 테이블에는 파일 데이터를 저장하는 이미지 필드가 포함될 수 있습니다. 이미지와 같은 파일 데이터는 다양한 이유로 추출되어 개별 파일에 저장되어야 할 수 있습니다. 그러나 이 데이터를 데이터베이스에서 직접 내보내는 것은 어려울 수 있습니다.

안타깝게도 이미지 데이터를 파일로 직접 내보낼 수 있는 내장된 SQL 스크립트나 함수는 없습니다. 이를 달성하려면 T-SQL 문과 OLE 자동화 절차의 조합을 사용해야 합니다.

다음은 테이블의 이미지 데이터를 별도의 파일로 내보낼 수 있는 자세한 스크립트입니다.

-- Write all database images (jpg) to file.
--------- --------- --------- --------- --------- --------- --------- 
DECLARE CURSOR_ProductIds CURSOR FOR (SELECT ImgImagesId FROM ImgProductSample)

DECLARE @ProductId INT;

OPEN CURSOR_ProductIds

FETCH NEXT FROM CURSOR_ProductIds INTO @ProductId
WHILE (@@FETCH_STATUS <> -1)
BEGIN
  DECLARE @ImageData varbinary(max);
  SELECT @ImageData = (SELECT convert(varbinary(max), ImageData, 1) FROM ProductImages WHERE Id = @ProductId);

  DECLARE @Path nvarchar(1024);
  SELECT @Path = 'C:\MyImages\Output';

  DECLARE @Filename NVARCHAR(1024);
  SELECT @Filename = (SELECT ImageFilename FROM ProductImages WHERE id = @ProductId);

  DECLARE @FullPathToOutputFile NVARCHAR(2048);
  SELECT @FullPathToOutputFile = @Path + '\' + @Filename;

  DECLARE @ObjectToken INT
  EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT;
  EXEC sp_OASetProperty @ObjectToken, 'Type', 1;
  EXEC sp_OAMethod @ObjectToken, 'Open';
  EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @ImageData;
  EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @FullPathToOutputFile, 2;
  EXEC sp_OAMethod @ObjectToken, 'Close';
  EXEC sp_OADestroy @ObjectToken;

  FETCH NEXT FROM CURSOR_ProductIds INTO @ProductId
END
CLOSE CURSOR_ProductIds
DEALLOCATE CURSOR_ProductIds

-- Make sure the following statement is executed to enable file IO
-- From http://msdn.microsoft.com/en-us/library/ms191188.aspx
--------- --------- --------- --------- --------- --------- --------- 
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO

이 스크립트는 ADO(ActiveX Data Objects)를 사용하여 스트림 개체를 생성하고 메모리의 이미지 데이터를 조작합니다. 그런 다음 스트림 개체의 Open, Write 및 SaveToFile 메서드를 사용하여 데이터를 파일에 저장합니다.

위 내용은 Microsoft SQL Server의 이미지 필드 데이터를 개별 파일로 내보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.