【发布时间】:2020-04-07 13:34:43
【问题描述】:
我正在使用 SQLite 的 C 接口,需要列出存储在 TEXT 列中的字符串的大小,即某些数据库支持使用的大小
SELECT DATALENGTH(body) FROM table;
但是,SQLite 没有DATALENGTH 函数。由于有问题的文本很大,我想避免从磁盘加载实际的body 列。由于TEXT 是utf8,LENGTH(body) 不会返回所需的结果(它会返回字符数,而我需要知道存储大小)。将列转换为BLOB 不是一种选择,因为数据库是由第三方程序创建的。
问:除了写custom SQL function之外,有什么方法可以直接从数据库中获取这些信息? SQLite file format 确实存储了 TEXT 字段的长度,所以如果这些信息真的没有公开,我会感到惊讶。
相关:
【问题讨论】: