sqlite Blob文字x'007800'的含义是什么?

zbwhf8kr  于 2023-03-08  发布在  SQLite
关注(0)|答案(1)|浏览(144)

Sqlite有blob datatype,它以十六进制字符串的形式存储数据,你可以用x'<hexadecimal numbers>'表示法来写blob literals
关于这个的文档:
BLOB文字是包含十六进制数据的字符串文字,前面有一个“x”或“X”字符。例如:第53514号
例如,您可以使用这种方法在sqlite CLI中编写

sqlite> SELECT x'313233';
123
sqlite>

因为SQLite会自动将十六进制数31-32-33转换为十进制数49、50和51的ASCII对应物,即“1”、“2”和“3”。
现在,作为我从其他人那里维护的测试套件的一部分,有一个测试使用x'007800'并声称它是某种NULL值。
实际上,在sqlite控制台中运行该值不会返回任何结果:

sqlite> SELECT x'007800';

sqlite>

我有点搞不懂这个十六进制数(?)背后的含义是什么。在谷歌上搜索,我找不到这个特定数字的特殊含义。它似乎是"\0x\0"的表示,我同样无法从中提取任何含义。
x'007800'和/或"\0x\0"的含义是什么?

qcuzuvrc

qcuzuvrc1#

x'007800 '和/或"\0x\0"的含义是什么?
blob文字x'007800'表示十六进制的三个字节00、78和00,它们等于ASCII字符空(\0)x
你可以...

CharacterName    Char     Code    Decimal     Binary      Hex
Null             NUL      Ctrl@   0           00000000    00
Lower-case X     x        X       120         01111000    78

相关问题