.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "CREATE CONVERSION" "" "2005-01-19" "SQL - 言語" "SQL コマンド"
.SH NAME
CREATE CONVERSION \- 新しい変換の定義

.SH SYNOPSIS
.sp
.nf
CREATE [DEFAULT] CONVERSION \fIname\fR
    FOR \fIsource_encoding\fR TO \fIdest_encoding\fR FROM \fIfuncname\fR
.sp
.fi
.SH "説明"
.PP
\fBCREATE CONVERSION\fRを使用すると、新しい符号化方式の変換を定義できます。
変換名は、\fBconvert\fR関数で使用され、特定の符号化方式の変換を指定します。
また、DEFAULTとして指定された変換は、クライアントとサーバの間での自動的な符号化方式の変換に使用できます。
このためには、符号化方式Aから符号化方式Bへ、\fBおよび\fR、BからAへという2つの変換を、必ず定義する必要があります。
.PP
変換を作成するためには、その関数のEXECUTE権限、および、対象となるスキーマ上のCREATE権限を保持している必要があります。
.SH "パラメータ"
.TP
\fBDEFAULT\fR
DEFAULT句により、この変換が、この特定の変換元から対象への符号化方式の変換のデフォルトであることが示されます。
1つのスキーマ内では、その符号化方式の組合せについて1つの変換のみをデフォルトにできます。
.TP
\fB\fIname\fB\fR
変換の名前です。
変換名は、スキーマ修飾することができます。
スキーマ修飾されていない場合、変換は現在のスキーマで定義されます。
変換名は、スキーマ内で一意である必要があります。
.TP
\fB\fIsource_encoding\fB\fR
変換元の符号化方式名です。
.TP
\fB\fIdest_encoding\fB\fR
変換先の符号化方式名です。
.TP
\fB\fIfuncname\fB\fR
この関数は、変換を実行するために使用します。
関数名は、スキーマ修飾することができます。
スキーマ修飾されていない場合、関数はパスから検索されます。

関数は、下記のような形式で記述する必要があります。
.sp
.nf
conv_proc(
    integer,  -- 変換元符号化方式ID
    integer,  -- 変換先符号化方式ID
    cstring,  -- 変換元文字列(ヌルで終わるC言語文字列)
    cstring,  -- 変換先文字列(ヌルで終わるC言語文字列)
    integer   -- 変換元文字列長
) RETURNS void;
.sp
.fi
.SH "注釈"
.PP
ユーザ定義の変換を削除するには、\fBDROP CONVERSION\fRを使用します。
.PP
変換の作成に必要な権限は、今後のリリースで変更される可能性があります。
.SH "例"
.PP
\fBmyfunc\fR関数を使用して、UNICODEからLATIN1への符号化方式の変換を作成します。
.sp
.nf
CREATE CONVERSION myconv FOR 'UNICODE' TO 'LATIN1' FROM myfunc;
.sp
.fi
.SH "互換性"
.PP
\fBCREATE CONVERSION\fRは、PostgreSQLの拡張です。
標準SQLには、\fBCREATE CONVERSION\fR文はありません。
.SH "関連項目"
ALTER CONVERSION [\fBalter_conversion\fR(l)], CREATE FUNCTION [\fBcreate_function\fR(l)], DROP CONVERSION [\fBdrop_conversion\fR(l)]
