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)正在寻找的功能。那可能吗?

4

1 回答 1

8

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

但是,在该hexdump工具的帮助下,可以将文件的内容转换为blob 文字

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

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

于 2012-10-12T21:05:49.037 回答