CREATE [DEFAULT] CONVERSION conversion_name FOR source_encoding TO dest_encoding FROM funcname
CREATE CONVERSION を使用すると、新しいエンコード変換を定義できます。 変換名は、CONVERT() 関数で使用され、特定のエンコード変換を指定します。 また、DEFAULT に指定された変換は、フロントエンドとバックエンドの間での自動的なエンコード変換に使用できます。 このため、エンコード A からエンコード B へ、および B から A へという 2 つの変換を、必ず定義する必要があります。
変換を作成するためには、その関数を実行する権限、および対象となるスキーマを作成する権限を保持している必要があります。
パラメータ
DEFAULT 句により、この変換が、この特定の変換元から対象へのエンコード変換のデフォルトであることが示されます。 1 つのスキーマ内では、エンコードするぺアについて 1 つのエンコードのみをデフォルトにできます。
変換の名前です。 変換名は、スキーマ修飾されている可能性があります。 スキーマ修飾されていない場合、変換は現在のスキーマで定義されます。 変換名は、スキーマ内で一意である必要があります。
変換元のエンコード名です。
変換先のエンコード名です。
この関数は、変換を実行するために使用します。 関数名は、スキーマ修飾されている可能性があります。 スキーマ修飾されていない場合、関数はパスで検索されます。
関数は、下記のような形式で記述する必要があります。
conv_proc( INTEGER, -- 変換元エンコード ID INTEGER, -- 変換先エンコード ID CSTRING, -- 変換元文字列 (NULL で終わる C 言語文字列) CSTRING, -- 変換先文字列 (NULL で終わる C 言語文字列) INTEGER -- 変換元文字列の長さ ) returns VOID;