파일로 이미지 필드 데이터 내보내기
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!