如何将存储在sqlite数据库中的文件转储为blob?

前端之家收集整理的这篇文章主要介绍了如何将存储在sqlite数据库中的文件转储为blob?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个sqlite3数据库。一列有TEXT类型,并且包含我要保存为文件的blob。那些是gzip压缩文件

命令sqlite3 db.sqlite3“.dump”的输出是:

INSERT INTO“data”VALUES(1,’objects’,’object0.gz’,X’1F8B080000000000000 [..几千个十六进制字符] F3F5EF’)

如何使用命令行将sqlite文件中的二进制数据提取文件

sqlite3不能直接输出二进制数据,所以您必须将数据转换为hexdump,使用cut从blob文字提取十六进制数字,并使用xxd(部分vim包)将hexdump转换为二进制:
sqlite3 my.db "SELECT quote(MyBlob) FROM MyTable WHERE id = 1;"  \
| cut -d\' -f2                                                   \
| xxd -r -p                                                      \
> object0.gz

使用sqlite 3.8.6或更高版本,命令行shell包括实现writefile function的fileio扩展:

sqlite3 my.db "SELECT writefile('object0.gz',MyBlob) FROM MyTable WHERE id = 1"
原文链接:https://www.f2er.com/sqlite/197953.html

猜你在找的Sqlite相关文章