PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# CREATE CONVERSION

## 名前

CREATE CONVERSION -- 新しい符号化方式変換の定義

## 概要

    CREATE [ DEFAULT ] CONVERSION name
        FOR source_encoding TO dest_encoding FROM function_name

## 説明

`CREATE CONVERSION`を使用すると、新しい文字セット符号化方式間の変換を定義できます。 また、`DEFAULT`として指定された変換は、クライアントとサーバの間での自動的な符号化方式の変換に使用できます。 このためには、符号化方式Aから符号化方式Bへ、および、符号化方式Bから符号化方式Aへという2つの変換を定義する必要があります。

変換を作成するためには、その関数の`EXECUTE`権限、および、対象となるスキーマ上の`CREATE`権限を保持している必要があります。

## パラメータ

`DEFAULT`

  `DEFAULT`句により、この変換が、指定された変換元から対象となる符号化方式への変換のデフォルトであることが示されます。 1つのスキーマ内でデフォルトとされる変換は、符号化方式の組み合わせ1組において1つだけです。

`name`

  変換の名前です。 変換名は、スキーマ修飾することができます。 スキーマ修飾されていない場合、変換は現在のスキーマで定義されます。 変換名は、スキーマ内で一意である必要があります。

`source_encoding`

  変換元の符号化方式名です。

`dest_encoding`

  変換先の符号化方式名です。

`function_name`

  この関数は、変換の実行に使用されます。 関数名は、スキーマ修飾することができます。 スキーマ修飾されていない場合、関数はパスから検索されます。

  関数は、下記のような形式で記述する必要があります。

      conv_proc(
          integer,  -- 変換元符号化方式ID
          integer,  -- 変換先符号化方式ID
          cstring,  -- 変換元文字列（NULLで終わるC言語文字列）
          internal, -- 変換先文字列（NULLで終わるC言語文字列）
          integer   -- 変換元文字列長
      ) RETURNS void;

## 注釈

ユーザ定義の変換を削除するには、`DROP CONVERSION`を使用します。

変換の作成に必要な権限は、今後のリリースで変更される可能性があります。

## 例

`myfunc`関数を使用して、`UTF8`から`LATIN1`への符号化方式の変換を作成します。

    CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc;

## 互換性

`CREATE CONVERSION`は、PostgreSQLの拡張です。 標準SQLには`CREATE CONVERSION`文はありませんが、`CREATE TRANSLATION`文の目的および構文は非常に似たものです。

## 関連項目

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION

前のページ | ホーム | 次のページ
CREATE COLLATION | 上に戻る | CREATE DATABASE