У меня есть таблица sqlite, которая содержит BLOB-файл, но мне нужно сделать проверку размера / длины для BLOB-объекта, как мне это сделать?
Согласно некоторой документации, которую я нашел, использование length (blob) не сработает, потому что length () работает только с текстами и прекращает считать после первого NULL. Мои эмпирические тесты показали, что это правда.
Я использую SQLite 3.4.2
Обновление:
Так что в SQLite 3.7.6 кажется, что функция length () возвращает правильное значение больших двоичных объектов - я проверял различные журналы изменений sqlite, но не видел, в какой версии это исправлено.
Из Sqlite 3.7.6:
payload_id|length(payload)|length(hex(payload))/2
1807913|194|194
1807914|171|171
Документация была изменена, чтобы отразить это.
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.