Octave:从 sqlite db 文件中读取 BLOB 数据

Posted

技术标签:

【中文标题】Octave:从 sqlite db 文件中读取 BLOB 数据【英文标题】:Octave: Read BLOB data from sqlite db file 【发布时间】:2021-08-04 11:30:18 【问题描述】:

我尝试使用 Octave 6.2.0 和 mex-sqlite3-master 包从数据库文件中读取 BLOB 数据。

我可以从我的数据库文件中选择和读取任何其他数据。对于包含 BLOB 数据的列,它给了我以下信息:

octave> x=sqlite3('file.db', 'SELECT column FROM list'); 错误:sqlite3:不支持的列类型

octave> x=sqlite3('file.db', 'SELECT column FROM list WHERE column=CAST(column AS TEXT)'); 没有错误,但是 x 的尺寸为 1x0。

BLOB 数据包含十六进制数字。我很高兴将它们作为字符串(并进一步工作,没有问题)。

如何以可处理的格式提取 BLOB 数据?

感谢任何提示!

【问题讨论】:

select CAST(column AS TEXT) from bl; 是该查询的正确形式。 WHERE 子句仅用于过滤结果。 如果您想确定不是“包”问题,您可以随时尝试直接使用系统sqlite3,例如***.com/a/59986894/4183191 【参考方案1】:

非常感谢您的回答!我尝试了“从bl中选择CAST(列AS TEXT);”暗示。它创建了一个预期大小的数组,但单元格为空。

【讨论】:

【参考方案2】:

我想你可能想要:

SELECT hex(column) FROM list

而不是对 TEXT 进行 CAST。

见Sqlite: How to cast(data as TEXT) for BLOB。

【讨论】:

您好安德鲁,谢谢您的回答。我试过了,它仍然给了我一个预期大小的空数组...... 嗯,这太令人惊讶了!我会尝试在我的盒子上的 sqlite 设置上重现这个。

以上是关于Octave:从 sqlite db 文件中读取 BLOB 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 PySpark 的 SQLite db 文件加载表?

扩展SQLite使其能从apk文件中读取db

使用 fmdb 写入 sqlite db?

python读取一个目录下面的所有sqlite文件 然后写到同一个数据库文件test.db中

如何将 SQLite .db 添加到 C#.NET 项目中

从 SQLite 读取坐标并创建一个 MKPolygon