SQLite - 将数据插入到 blob 中

7

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

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)。这个可能吗?

1个回答

8

没有内置的或者shell函数可以将文件读入blob。

然而,通过使用hexdump工具,可以将文件内容转换为blob字面值

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

然后,这个命令可以输入到 sqlite3 shell 中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接