文字列'test\data'
またはバックスラッシュ記号が 1 つだけあります'\'
。
どのようにバイトに変換されますか?
からbytea
seeにキャストする場合、バックラッシュには特別な処理が必要src/backend/utils/adt/varlena.c
です。
replace('test\data', '\', '\\')::bytea
したがって、にキャストする前に、を使用して各バックスラッシュをエスケープしbytea
ます。
すでに提案されている機能を使用することもできますconvert_to(text, encoding) bytea
。ただし、この関数はそうではない IMMUTABLE
ため、そのままではどのようなコンテキストでも使用できないことに注意してください。