sqlite - 将数据插入blob

Mec*_*MK1 5 sql sqlite shell

我正在尝试使用SQLite3的shell将二进制数据插入到blob中,这意味着常规的SQL语句.这是我的表:

CREATE TABLE MYTABLE
    (ID INTEGER,
     BINDATA BLOB NOT NULL,
     SOMEFK INTEGER REFERENCES OTHERTABLE(ID) NOT NULL,
     PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试的插入语句:

INSERT INTO MYTABLE (BINDATA, SOMEFK)
VALUES (__READBINDATA('/tmp/somefile'), 1);
Run Code Online (Sandbox Code Playgroud)

随着__READBINDATA(file)我正在寻找的功能.那可能吗?

CL.*_*CL. 6

没有内置函数或shell函数将文件读入blob.

但是,借助该hexdump工具,可以将文件内容转换为blob文字:

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

然后可以将此命令通过管道传输到sqlite3shell中.