2

外部ソースからデータダンプをロードしていますが、一部の文字列には\uXXXX、次のようなUTF8文字のシーケンスが含まれています。

\u017D\u010F\u00E1r nad S\u00E1zavou

のE''定数を使用して内容を確認できpsqlますが、適切な値を返す関数/演算子が見つかりません。

PL / pgSQL関数を使用せずに、Unicodeエスケープを使用してこの文字列を通常のUTF8に変換できるかどうかを確認したいと思います。

4

1 に答える 1

3

そのための組み込みの方法はないと思います。私が考えることができる最も簡単な方法は、避けたかったplpgsql関数です。

CREATE OR REPLACE FUNCTION str_eval(text, OUT t text)
  LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE AS
$func$
BEGIN
   EXECUTE 'SELECT E''' || replace($1, '''', '''''') || ''''
   USING $1
   INTO t;
END
$func$;

更新されたバージョンはSQLiから保護し、高速でもあります。

于 2012-04-12T02:57:52.917 に答える