字句構造に関するPostgreSQLのドキュメントによると、U&
を使用する必要があります 構文:
UPDATE mytable
SET myfield = regexp_replace(myfield, U&'\0050', U&'\0060', 'g')
PostgreSQL固有のエスケープ文字列形式E'\u0050'
を使用することもできます 。これは、ユニコードエスケープフォームよりも古いバージョンで機能しますが、新しいバージョンではユニコードエスケープフォームが推奨されます。これにより、何が起こっているかがわかります:
regress=> SELECT '\u0050', E'\u0050', U&'\0050';
?column? | ?column? | ?column?
----------+----------+----------
\u0050 | P | P
(1 row)