加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在sqlite中找到二进制blob的长度(大小)

发布时间:2020-12-12 19:16:46 所属栏目:百科 来源:网络整理
导读:我有一个sqlite表包含一个BLOB文件,但需要做一个大小/长度检查上的blob,我该怎么做? 根据一些文档,我发现,使用length(blob)将无法工作,因为length()只适用于文本,并将在第一个NULL后停止计数。我的经验测试表明这是真的。 我使用SQLite 3.4.2 更新:
我有一个sqlite表包含一个BLOB文件,但需要做一个大小/长度检查上的blob,我该怎么做?

根据一些文档,我发现,使用length(blob)将无法工作,因为length()只适用于文本,并将在第一个NULL后停止计数。我的经验测试表明这是真的。

我使用SQLite 3.4.2

更新:

因此,从SQLite 3.7.6看来,尽管length()函数返回正确的blobs值 – 我检查了sqlite的各种更改日志,但没有看到什么版本,这是纠正。

从Sqlite 3.7.6:

payload_id|length(payload)|length(hex(payload))/2
1807913|194|194
1807914|171|171

documentation改为反映这一点。

length(X)   The length(X) function returns the length of X in characters if X is
            a string,or in bytes if X is a blob. If X is NULL then length(X) is
            NULL. If X is numeric then length(X) returns the length of a string 
            representation of X.
没有这个问题,但你可以尝试长度(hex(glob))/ 2

更新(2012年8月):对于SQLite 3.7.6(2011年4月12日发布)和更高版本,长度(blob_column)同时适用于文本和二进制数据。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读