gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:46 25 4
gpt4 key购买 nike

我有一个 sqlite3 数据库。一列具有 TEXT 类型,并包含我想另存为文件的 blob。这些是 gzip 文件。

命令 sqlite3 db.sqlite3 ".dump" 的输出是:

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

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

最佳答案

sqlite3 无法直接输出二进制数据,所以你必须将数据转换为 hexdump,使用 cut 从 blob literal 中提取十六进制数字,并使用 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 包含 fileio 扩展,它实现了 writefile function :

sqlite3 my.db "SELECT writefile('object0.gz', MyBlob) FROM MyTable WHERE id = 1"

关于sqlite - 如何将存储在 sqlite 数据库中的文件转储为 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34838884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com