我有一个包含 BLOB 文件的 sqlite 表,但需要对 blob 进行大小/长度检查,我该怎么做?
根据我确实找到的一些文档,使用 length(blob) 不起作用,因为 length() 仅适用于文本,并且在第一个 NULL 之后将停止计数。我的经验测试表明这是真的。
我正在使用 SQLite 3.4.2
更新:
因此,从 SQLite 3.7.6 开始,似乎 length() 函数返回了正确的 blob 值——我检查了 sqlite 的各种更改日志,但没有看到在哪个版本中得到了更正。
从 Sqlite 3.7.6 开始:
payload_id|length(payload)|length(hex(payload))/2 1807913|194|194 1807914|171|171
文档已更改以反映这一点。
length(X) length(X) 函数返回 X 的字符长度,如果 X 是 一个字符串,如果 X 是一个 blob,则以字节为单位。如果 X 为 NULL,则长度(X)为 空值。如果 X 是数字,则 length(X) 返回字符串的长度 X 的表示。