.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "CREATE CONVERSION" "" "2003-08-02" "SQL - 言語" "SQL コマンド"
.SH NAME
CREATE CONVERSION \- ユーザ定義の変換の定義
.SH SYNOPSIS
.sp
.nf
CREATE [DEFAULT] CONVERSION \fIconversion_name\fR
    FOR \fIsource_encoding\fR TO \fIdest_encoding\fR FROM \fIfuncname\fR
.sp
.fi
.SH "説明"
.PP
\fBCREATE CONVERSION\fR を使用すると、新しいエンコード変換を定義できます。 変換名は、CONVERT() 関数で使用され、特定のエンコード変換を指定します。 また、DEFAULT に指定された変換は、フロントエンドとバックエンドの間での自動的なエンコード変換に使用できます。 このため、エンコード A からエンコード B へ、および B から A へという 2 つの変換を、必ず定義する必要があります。
.PP
変換を作成するためには、その関数を実行する権限、および対象となるスキーマを作成する権限を保持している必要があります。
"パラメータ"
.TP
\fBDEFAULT\fR
DEFAULT 句により、この変換が、この特定の変換元から対象へのエンコード変換のデフォルトであることが示されます。 1 つのスキーマ内では、エンコードするぺアについて 1 つのエンコードのみをデフォルトにできます。
.TP
\fB\fIconversion_name\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,	-- 変換元文字列 (NULL で終わる C 言語文字列)
	CSTRING,	-- 変換先文字列 (NULL で終わる 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 の拡張です。 SQL99 には、\fBCREATE CONVERSION\fR 文はありません。
.SH "関連項目"
.PP
CREATE FUNCTION [\fBcreate_function\fR(l)]、DROP CONVERSION [\fBdrop_conversion\fR(l)]、\fIPostgreSQL プログラマガイド\fR
