Ich habe eine Sqlite-Tabelle, die eine BLOB-Datei enthält, aber müssen eine Größe/Längenprüfung auf den Blob zu tun, wie kann ich das tun?
Laut der Dokumentation, die ich gefunden habe, wird length(blob) nicht funktionieren, weil length() nur für Texte funktioniert und nach dem ersten NULL aufhört zu zählen. Meine empirischen Tests haben gezeigt, dass dies der Fall ist.
Ich verwende SQLite 3.4.2
Aktualisierungen:
Ab SQLite 3.7.6 scheint es so, als ob die Funktion length() den korrekten Wert von Blobs zurückgibt - ich habe verschiedene Änderungsprotokolle von Sqlite überprüft, aber nicht gesehen, in welcher Version dies korrigiert wurde.
Ab Sqlite 3.7.6:
payload\_id|length(payload)|length(hex(payload))/2
1807913|194|194
1807914|171|171
El Dokumentation wurde geändert, um dies widerzuspiegeln.
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.