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"
的含义是什么?
1条答案
按热度按时间qcuzuvrc1#
x'007800 '和/或"\0x\0"的含义是什么?
blob文字
x'007800'
表示十六进制的三个字节00、78和00,它们等于ASCII字符空(\0)
和x
。你可以...