【问题标题】:Octave: Read BLOB data from sqlite db fileOctave:从 sqlite db 文件中读取 BLOB 数据
【发布时间】: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,例如stackoverflow.com/a/59986894/4183191

标签: sqlite blob octave


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我想你可能想要:

    SELECT hex(column) FROM list
    

    而不是对 TEXT 进行 CAST。

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

    【讨论】:

    • 您好安德鲁,谢谢您的回答。我试过了,它仍然给了我一个预期大小的空数组......
    • 嗯,这太令人惊讶了!我会尝试在我的盒子上的 sqlite 设置上重现这个。
    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2021-01-09
    • 2016-09-05
    • 1970-01-01
    • 2011-06-21
    • 2016-07-24
    相关资源
    最近更新 更多