CREATE CONVERSION

名前

CREATE CONVERSION -- 新しい変換の定義

概要

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

説明

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

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

パラメータ

DEFAULT

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

name

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

source_encoding

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

dest_encoding

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

funcname

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

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

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

注釈

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

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

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

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

互換性

CREATE CONVERSION は、PostgreSQL の拡張です。 標準SQL には、CREATE CONVERSION 文はありません。

関連項目

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION