GET_TABLE_METADATA
有効な対象
ExtractおよびReplicat
摘要
GET_TABLE_METADATAファンクションでは、処理中のレコードに関連付けられている表のメタデータを取得します。
構文
#include "usrdecs.h"
short result_code;
table_metadata_def tbl_meta_rec;
ERCALLBACK (GET_TABLE_METADATA, &tbl_meta_rec, &result_code);
バッファ
typedef struct
{
char *table_name;
short value_truncated;
long max_name_length;
long actual_name_length;
short num_columns;
short num_key_columns;
short *key_columns;
short num_keys_returned;
BOOL using_pseudo_key;
short source_or_target;
} table_metadata_def;
入力
<table_name>
table_name戻り値を受け付けるバッファへのポインタ。
<key_columns>
key_columns索引の配列へのポインタ。
<max_name_length>
返される表名の最大長。通常、最大長は表名のバッファの長さです。返される表名はNULLで終了しているため、最大長が表名の最大長と同じになるはずである。
<source_or_target>
ソースまたはターゲット表のどちらの名前を返すかを示す次の一方。
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
出力
<table_name>
処理中のレコードに関連付けられている表の名前。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトの文字セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、表名はセッションの文字セットで解釈されます。
<value_truncated>
値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、表名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。
<actual_name_length>
返される表名の文字列長。実際の長さにNULL終了文字は含まれません。
<num_columns>
テーブル内のカラム数。
<num_key_columns>
Oracle GoldenGateに使用されているキー内の列数。
<key_columns>
キー列の値。キー数に列の長さを掛けた値を把握し、適切な量のバッファを割り当てる必要があります。
<num_keys_returned>
リクエストされているキー列の数。
using_pseudo_key
KEYCOLSで指定されている列がキーとして使用されているかどうかを示すフラグ。TRUEまたはFALSEを返します。
戻り値
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_EXCEEDED_MAX_LENGTH
EXIT_FN_RET_OK