It's not mandatory to use x'<hex>' notation to insert into a blob, when one can use cast.
The following should return blob content correctly without explicitly lying it down as Hex: sqlite> create table T (c blob check(typeof(c) = 'blob')); sqlite> insert into T values ( cast('x y z' as blob) ); sqlite> select c from T; x y z Please check whether your calling program consumes the above as text or blob, I'd expect blob.