3.51 SET_SESSION_CHARSET
適用対象
ExtractおよびReplicat
説明
SET_SESSION_CHARSET
ファンクションでは、ユーザー・イグジットの文字セットを設定します。ユーザー・イグジット・セッションの文字セットは、次のような(ただしこれらに限定されません)メタデータなど、ユーザー・イグジットとコール元プロセス(Extract、データ・ポンプ、Replicat)間で使用される文字ベースのコールバック構造メンバーのエンコーディングを示します。
-
データベースの名前およびロケール
-
表名および列名
-
DDLテキスト
-
エラー・メッセージ
-
CHAR
およびNCHAR
などの文字型の列 -
文字列形式で表される日時および数値の列
このファンクションは、ユーザー・イグジットが制御しているときはいつでも呼び出すことができます。ユーザー・イグジットがセッションの文字セットを設定すると、すぐに有効になり、すべての文字値は指定したセットへの変換を開始します。このファンクションを呼び出すには、コール・タイプEXIT_CALL_START
を使用することをお薦めします。
ノート:
SET_SESSION_CHARSET
はスレッドセーフではありません。
SET_SESSION_CHARSET
が呼び出されない場合、セッションは、ucharset.h
ファイルのULIB_CS_DEFAULT
の事前定義された列挙型の値であるオペレーティング・システムのデフォルトの文字セットに設定されます。セッションの文字セットがULIB_CS_DEFAULT
からのデフォルトである場合、ユーザー・イグジットとコール元プロセス間で交換される文字型の値に対して、Oracle GoldenGateでは変換は実行されません。さらに、データベースのオブジェクト名のメタデータは、オペレーティング・システムのデフォルトの文字セットであるとみなされます。デフォルトは適切ではない場合があることに注意してください。
ユーザー・イグジットがロードされ、SET_SESSION_CHARSET
が呼び出されると、ユーザー・イグジットの文字セットはレポート・ファイルに出力されます。セッションの文字セットがULIB_CS_DEFAULT
である場合、列データの文字セットの変換が実行されないことを示すメッセージが表示されます。
グローバリゼーション・サポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
構文
#include usrdecs.h short result_code; session_def session_charset_def; ERCALLBACK (SET_SESSION_CHARSET, &session_charset_def, &result_code);
バッファ
typedef struct { ULibCharSet session_charset; } session_def;
出力
なし
返される値
EXIT_FN_RET_OK
親トピック: ユーザー・イグジット・ファンクション