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