加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite – 将数据插入blob

发布时间:2020-12-12 18:57:26 所属栏目:百科 来源:网络整理
导读:我正在尝试使用SQLite3的 shell将二进制数据插入到blob中,这意味着常规的SQL语句.这是我的表: CREATE TABLE MYTABLE (ID INTEGER,BINDATA BLOB NOT NULL,SOMEFK INTEGER REFERENCES OTHERTABLE(ID) NOT NULL,PRIMARY KEY(ID)); 这是我正在尝试的插入语句:
我正在尝试使用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(文件)是我正在寻找的功能.那可能吗?

解决方法

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

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

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

然后可以将此命令通过管道传送到sqlite3 shell.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读