This is well documented. The result of expressions involving strings with embedded NUL characters is undefined. The conversion BLOB -> TEXT will check for and stop at the first embedded NUL; in none occurs, a terminating NUL is added. You may store any sequence of bytes in a BLOB, but please do not expect a data storage layer library to handle opaque objects. If you do need to see inside a blob, use the HEX() function to convert it to a readable form.
-----Ursprüngliche Nachricht----- Von: sqlite-users [mailto:[email protected]] Im Auftrag von Father Chrysostomos Gesendet: Dienstag, 09. Mai 2017 05:02 An: [email protected] Betreff: [sqlite] The cli truncates values containing null chars While the SQLite database itself supports embedded nulls without any problems, the command-line utility truncates values at the first null character, which can be very confusing if a field begins with a null character. (I spent an hour debugging my code, trying to figure out why it was not writing the value to the field, only to realize eventually that my code was fine. It was the debugging tool [that’s what I use the sqlite3 cli for] that was buggy.) This excerpt from a terminal sessions demonstrates the problem. You need to have the perl DBI and DBD::SQLite modules installed for it to work: $ perl -MDBI -e 'my $dbh = DBI->connect("dbi:SQLite:dbname=/tmp/foo.sqlite","",""); $dbh->do("create table foo ( bar BLOB )"); $dbh->prepare("insert into foo values (?)")->execute("foo\0bar");' $ sqlite3 /tmp/foo.sqlite SQLite version 3.18.0 2017-03-28 18:48:43 Enter ".help" for usage hints. sqlite> select * from foo; foo sqlite> I don’t know how to get null characters into a database from the sqlite3 shell, if that is even possible. If you do not have the perl modules installed, you can use: $ perl -MCPAN -eshell and then type ‘install DBI DBD::SQLite' at the cpan prompt. _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users ___________________________________________ Gunter Hick Software Engineer Scientific Games International GmbH FN 157284 a, HG Wien Klitschgasse 2-4, A-1130 Vienna, Austria Tel: +43 1 80100 0 E-Mail: [email protected] This communication (including any attachments) is intended for the use of the intended recipient(s) only and may contain information that is confidential, privileged or legally protected. Any unauthorized use or dissemination of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender by return e-mail message and delete all copies of the original communication. Thank you for your cooperation. _______________________________________________ sqlite-users mailing list [email protected] http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

