source

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

ittop 2023. 6. 26. 23:12
반응형

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

SQL Server 2000을 사용하고 있으며 테이블에 다음이 포함되어 있습니다.image기둥.

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

CREATE TABLE Files
(
  FileId int,
  FileData image
)

저는 여기가 가까운 곳일 거라고 믿습니다.

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

참고로 위의 내용은 SQL Server 2005 및 SQL Server 2008에서 실행되며 데이터 유형은varbinary(max)데이터 유형으로 이미지를 사용하여 테스트하지 않았습니다.

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

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

그러면 FileData(파일 데이터) 필드에 대한 6바이트 값의 레코드가 표시됩니다.


설명에서 SQL Server 2000(또는 내가 알고 있는 다른 버전)에서는 수행할 수 없는 파일 이름만 지정할 수 있음을 나타냅니다.

SQL Server 2005/2008에서 이 작업을 수행하려면 CLR 저장 프로시저가 필요하거나 파일 이름을 가져온 다음 데이터를 삽입하는 확장 저장 프로시저가 필요합니다(그러나 그럴 필요가 없는 한 어떤 대가를 치르더라도 이 작업은 피할 수 있습니다).


SP/쿼리에서만 데이터를 가져올 수 있다는 질문에 대해서는 "예"라고 답합니다. SQL Server에 파일 시스템에서 파일을 읽을 수 있는 기능을 부여하면 Windows 인증을 통해 연결되지 않은 경우 어떤 사용자가 권한을 결정하는 데 사용됩니까?관리자로 서비스를 실행하는 경우(신의 가호가 있기 때문에) 허용되지 않아야 할 권한 상승이 발생할 수 있습니다.

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

반응형