如何查询零字节字符?
How to query for a zero-byte char?
According to the documentation,pg_attribute.attgenerated
的类型为 char
,如果未生成该列,则值为“零字节”,并且至少有一个其他可能的值,未来可能会更多。
我想查询所有非生成的列。由于我不希望在未来的版本中被添加绊倒,查询谓词需要是 WHERE attgenerated = ZERO BYTE
而不是不等式,但我不知道如何在 SQL 中正确表示该值。
正确的写法是什么?在大多数编程语言中,您会说 '[=13=]'
,并且可以通过在字符串文字前添加 e
来使用转义序列,但是如果我说 e'[=15=]'
,它会出错并显示“无效字节序列”用于编码“UTF8”:0x00”。所以我不太确定正确的方法是什么。
这只是一个空字符串:
WHERE attgenerated = ''
According to the documentation,pg_attribute.attgenerated
的类型为 char
,如果未生成该列,则值为“零字节”,并且至少有一个其他可能的值,未来可能会更多。
我想查询所有非生成的列。由于我不希望在未来的版本中被添加绊倒,查询谓词需要是 WHERE attgenerated = ZERO BYTE
而不是不等式,但我不知道如何在 SQL 中正确表示该值。
正确的写法是什么?在大多数编程语言中,您会说 '[=13=]'
,并且可以通过在字符串文字前添加 e
来使用转义序列,但是如果我说 e'[=15=]'
,它会出错并显示“无效字节序列”用于编码“UTF8”:0x00”。所以我不太确定正确的方法是什么。
这只是一个空字符串:
WHERE attgenerated = ''