CREATE CONVERSION
は、2つの文字セットエンコーディング間の新しい変換を定義します。
説明
CREATE CONVERSION
は、2つの文字セットエンコーディング間の新しい変換を定義します。
DEFAULT
とマークされた変換は、クライアントとサーバー間の自動エンコード変換に使用できます。 この使用をサポートするには、AからBへのエンコードとBからAへのエンコードのの2つの変換を定義する必要があります。
コンバージョンを作成できるようにするには、関数に対するEXECUTE
権限と、ターゲットスキーマに対するcreate
権限が必要です。
概要
CREATE [デフォルト] 変換名
FOR source_encoding TO dest_encoding FROM function_name
パラメーター
DEFAULT
: DEFAULT
句は、この変換がこの特定のソースから宛先へのエンコードのデフォルトであることを示します。 エンコードペアのスキーマには、デフォルトのエンコーディングが1つだけある必要があります。
name
: 変換の名前。 変換名はスキーマ修飾できます。 そうでない場合、変換は現在のスキーマで定義されます。 変換名はスキーマ内で一意である必要があります。
source_encoding
: ソースエンコーディング名。
dest_encoding
: 宛先エンコード名。
function_name
: 変換の実行に使用される関数です。 関数名はスキーマ修飾できます。 そうでない場合、関数はパスで検索されます。
関数には次の署名が必要です。
conv_proc (
整数、-- sourceエンコードID
整数、-- destinationエンコードID
cstring, -- source string (nullで終了したC文字列)
internal, -- destination (nullで終了したC文字列で埋めます)
整数、-- ソース文字列の長さ
boolean -- trueの場合、変換が失敗した場合にエラーをスローしない
) リターン整数;
注
SQL_ASCII
の「エンコーディング」を含む場合のサーバーの動作はハードワイヤードであるため、ソースエンコーディングも宛先エンコーディングもSQL_ASCII
ではありません。
DROP変換
を使用して、ユーザー定義の変換を削除します。
コンバージョンの作成に必要な権限は、将来のリリースで変更される可能性があります。
例
myfunc
を使用してエンコードUTF8
からLATIN1
への変換を作成するには:
「UTF8」から「LATIN1」への変換myconvを作成します。