IT TIP

간단한 삽입 문을 사용하여 바이너리 파일 데이터를 바이너리 SQL 필드에 삽입하려면 어떻게해야합니까?

itqueen 2020. 12. 6. 22:31
반응형

간단한 삽입 문을 사용하여 바이너리 파일 데이터를 바이너리 SQL 필드에 삽입하려면 어떻게해야합니까?


image열이 포함 된 테이블이있는 SQL Server 2000이 있습니다.

파일 경로를 지정하여 파일의 이진 데이터를 해당 열에 어떻게 삽입합니까?

CREATE TABLE Files
(
  FileId int,
  FileData image
)

리터럴 사용을 의미하는 경우 이진 문자열을 생성하기 만하면됩니다.

insert into Files (FileId, FileData) values (1, 0x010203040506)

그리고 FileData 필드에 대해 6 바이트 값이있는 레코드가 있습니다.


SQL Server 2000 (또는 내가 알고있는 다른 버전)에서는 수행 할 수없는 파일 이름 만 지정하고 싶다고 주석에 표시합니다.

SQL Server 2005/2008에서이 작업을 수행하려면 CLR 저장 프로 시저가 필요하거나 파일 이름을 가져온 다음 데이터를 삽입 (또는 바이트 반환)하는 확장 저장 프로 시저가 필요합니다. 문자열이지만 상당히 길 수 있습니다.)


SP / 쿼리에서만 데이터를 가져올 수 있다는 질문과 관련하여 대답은 '예'라고 말하고 싶습니다. SQL Server에 파일 시스템에서 파일을 읽을 수있는 기능을 제공하면 그렇지 않을 때 무엇을합니까? Windows 인증을 통해 연결된 경우 권한을 결정하는 데 어떤 사용자가 사용됩니까? 관리자로 서비스를 실행하는 경우 (God forbid) 허용해서는 안되는 권한 상승을 가질 수 있습니다.


나는 이것이 가까운 어딘가에있을 것이라고 믿습니다.

INSERT INTO Files
(FileId, FileData)
SELECT 1, * FROM OPENROWSET(BULK N'C:\Image.jpg', SINGLE_BLOB) rs

주목할 점은 위의 데이터 형식이 .NET 인 SQL Server 2005 및 SQL Server 2008에서 실행된다는 것 varbinary(max)입니다. 이미지 데이터 유형으로 테스트되지 않았습니다.

참고 URL : https://stackoverflow.com/questions/1120689/how-can-i-insert-binary-file-data-into-a-binary-sql-field-using-a-simple-insert

반응형