如何将存储在sqlite数据库中的文件转储为blob?
发布时间:2020-12-12 19:14:32 所属栏目:百科 来源:网络整理
导读:我有一个sqlite3数据库。一列有TEXT类型,并且包含我要保存为文件的blob。那些是gzip压缩文件。 命令sqlite3 db.sqlite3“.dump”的输出是: INSERT INTO“data”VALUES(1,’objects’,’object0.gz’,X’1F8B080000000000000 [..几千个十六进制字符] F3F
我有一个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包括实现 sqlite3 my.db "SELECT writefile('object0.gz',MyBlob) FROM MyTable WHERE id = 1" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |