2012-10-12 3 views
4

BLOB에 SQLite3의 셸 (일반 SQL 문을 사용)을 삽입하려고합니다. 여기 내 테이블의 :sqlite - BLOB에 데이터 삽입

CREATE TABLE MYTABLE 
    (ID INTEGER, 
    BINDATA BLOB NOT NULL, 
    SOMEFK INTEGER REFERENCES OTHERTABLE(ID) NOT NULL, 
    PRIMARY KEY(ID) 
); 

그리고 이것은 내가 노력하고있어 삽입 문장의 종류 :

INSERT INTO MYTABLE (BINDATA, SOMEFK) 
VALUES (__READBINDATA('/tmp/somefile'), 1); 

내가 찾고 있어요 기능되는 __READBINDATA(file)으로. 그게 가능하니?

답변

4

blob에 파일을 읽는 내장 함수 나 셸 함수가 없습니다.

그러나, hexdump 도구의 도움으로, 그것은 blob literal로 파일의 내용을 변환하는 것이 가능하다 :

echo "insert into mytable(bindata, somefk) " \ 
    "values(x'"$(hexdump -v -e '1/1 "%02x"' /tmp/somefile)"', 1);" 

이 명령은 다음 sqlite3 껍질로 파이프 할 수 있습니다.

관련 문제