SET_SESSION_CHARSET
有效對象
擷取與 Replicat
說明
使用 SET_SESSION_CHARSET 函數來設定使用者結束程式的字元集。使用者結束階段作業的字元集指示使用者結束與呼叫程式處理作業 (擷取、資料汲取、Replicat) 之間使用之任何字元式回呼結構成員的編碼,包括描述資料,例如 (但不限於):
-
資料庫名稱和語言環境
-
表格與資料欄名稱
-
DDL文字 -
error messages - 錯誤訊息
-
字元類型資料欄,例如
CHAR和NCHAR -
以字串形式表示的日期時間和數值資料欄
您可以隨時呼叫使用者結束具有控制權的這個函數。當使用者結束程式設定階段作業字元集時,它會立即生效,而且所有字元值都會開始轉換成指定的集。呼叫此函數的建議位置為呼叫類型 EXIT_CALL_START。
注意:SET_SESSION_CHARSET 不具有執行緒安全性。
如果未呼叫 SET_SESSION_CHARSET,階段作業會設為作業系統的預設字元集,這是 ucharset.h 檔案中 ULIB_CS_DEFAULT 中預先定義的列舉類型值。當階段作業字元集是來自 ULIB_CS_DEFAULT 的預設值時,Oracle GoldenGate 不會對使用者結束程式與呼叫程式處理作業之間交換的字元類型值執行轉換。此外,資料庫的 object-name 描述資料會被視為作業系統的預設字元集。請記住,預設值可能不正確。
使用者結束程式的字元集會在載入使用者結束程式時,以及呼叫 SET_SESSION_CHARSET 時,列印至報表檔案。如果階段作業字元集是 ULIB_CS_DEFAULT,則會出現一則訊息,說明不會執行任何資料欄資料字元集轉換。
語法
#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;
輸入
<session_charset>
階段作業字元集的有效值是在標頭檔 ucharset.h 中定義。
輸出
無
傳回值
EXIT_FN_RET_OK