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を作成します。