すべてのプロダクト
Search
ドキュメントセンター

PolarDB:全角文字と半角文字の変換関数(TO_SINGLE_BYTE および TO_MULTI_BYTE)

最終更新日:Mar 29, 2026

PolarDB for PostgreSQL (Compatible with Oracle) では、TO_SINGLE_BYTE および TO_MULTI_BYTE の Oracle 互換関数を、polar_to_single_byte 拡張を通じてサポートしています。TO_SINGLE_BYTE は、全角数字や全角英字などのマルチバイト文字を、対応するシングルバイト文字に変換します。TO_MULTI_BYTE はその逆の処理を行います。これらの関数は標準 PostgreSQL の一部ではなく、Oracle 互換性を維持するために提供される拡張機能です。

前提条件

この拡張機能が利用可能かどうかは、クラスターの作成時期によって異なります。

  • 2020 年 3 月 30 日以降に作成されたクラスター:データベースを作成すると、拡張機能が自動的に作成されます。追加の手順は不要です。

  • 2020 年 3 月 30 日より前に作成されたクラスター:拡張機能は自動的に作成されません。データベースを作成した後、以下の文を実行してインストールしてください。

    CREATE EXTENSION polar_to_single_byte;

元の Oracle 関数の仕様については、「TO_SINGLE_BYTE」および「TO_MULTI_BYTE」の Oracle ドキュメント リファレンスをご参照ください。

サポートされるデータの型

両関数とも、以下の入力型を受け付け、入力と同じ型を出力します。

関数入力型出力型
TO_SINGLE_BYTECHARCHAR
TO_SINGLE_BYTECHARACTER VARYINGCHARACTER VARYING
TO_SINGLE_BYTETEXTTEXT
TO_MULTI_BYTECHARCHAR
TO_MULTI_BYTECHARACTER VARYINGCHARACTER VARYING
TO_MULTI_BYTETEXTTEXT

使用例

TO_SINGLE_BYTE

全角文字列を ASCII 文字列に変換します。

SELECT to_single_byte('123$test');
 to_single_byte
----------------
 123$test
(1 row)

TO_MULTI_BYTE

ASCII 文字列を全角文字列に変換します。

SELECT to_multi_byte('123$test');
  to_multi_byte
------------------
 123$test
(1 row)