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 文件加载表?