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