본문 바로가기

알아두면 좋은 IT 지식/DBMS

DBMS별 binary 데이터를 query로 입력하는 방법

가끔 테스트를 하다보면 DB에서 binary 데이터를 직접 컨트롤 해야 할 때가 있다.

이때 다른 언어나 프로그램을 통하지 않고 DB에서 직접 query를 통해서 입력하여 테스트하면 편한 경우가 있어서 DBMS별로 입력방법에 대해서 정리해본다.

보통 binary필드에 일반적인 string을 입력하면 오류가 발생하므로 변환하는 함수등을 이용한다.

 

 

1. Oracle(blob)

 

utl_raw.cast_to_raw('내용')

ex. update table set column = utl_raw.cast_to_raw('test');

 

 

2. MSSQL(image)

 

convert(varbinary, '내용')

ex. update table set column = convert(viarbinary, 'test');

 

 

3. MYSQL(blob)

 

mysql의 경우에는 string으로 그냥 입력해도 내부적으로 자동으로 변환하여 처리된다.

혹은 명시적으로 변환하여 입력도 가능하다.

convert('내용' using binary)

ex. update table set column = convert('test' using binary)

 

또는 파일을 binary로 변환하여 insert해야 하는 경우 아래와 같은 방법으로 진행하면 된다.

load_file('파일경로')

ex. update table set column = load_file('var/lib/mysql-files/blob.txt');

 

load_file() 함수를 사용하기 위해서는 secure_file_priv에 파일경로가 추가되어 있어야 하고 접근 권한이 있어야 한다.

- 리눅스 :  /etc/my.cnf  or /etc/mysql/my.cnf

- 윈도우 : C:\ProgramData\MySQL\MySQL Server 5.6\my.ini