すべてのプロダクト
Search
ドキュメントセンター

PolarDB:変換の作成

最終更新日:May 30, 2024

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