3.15 GET_COL_METADATA_FROM_INDEX
適用対象
ExtractおよびReplicat
説明
GET_COL_METADATA_FROM_INDEXファンクションでは、該当の列の索引を指定して列メタデータを取得します。
                  
データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。
構文
#include "usrdecs.h" short result_code; col_metadata_def column_meta_rec; ERCALLBACK (GET_COL_METADATA_FROM_INDEX, &column_meta_rec, &result_code);
バッファ
typedef struct
{
  short column_index;
  char *column_name;
  long max_name_length;
  short native_data_type;
  short gg_data_type;
  short gg_sub_data_type;
  short is_nullable;
  short is_part_of_key;
  short key_column_index;
  short length;
  short precision;
  short scale;
  short source_or_target;
} col_metadata_def;入力
出力
- 
                           
column_name - 
                        
返される列値の列名。
 - 
                           
actual_name_length - 
                        
返される名前の実際の長さ。
 - 
                           
value_truncated - 
                        
値が切り捨てられたかどうかを示すフラグ(
0または1)。切捨ては、列名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。 - 
                           
native_data_type - 
                        
列の(データベースに)ネイティブなデータ型。プロセスに応じて、次のように
native_data_typeまたはdd_data_typeが返されます。- 
                              
Extractがソース列に対してコールバック・リクエストを行っている場合は、
native_data_typeが返されます。Extractがマップされたターゲット列をリクエストしている場合は、(システム上にターゲット定義があるとみなされ)gg_data_typeが返されます。 - 
                              
Extractデータ・ポンプがソース列に対してコールバック・リクエストを行い、ローカル・データベースが存在する場合は、
native_data_typeが返されます。データベースがない場合は、(システム上にソース定義ファイルがあるとみなされ)gg_data_typeが返されます。データ・ポンプがターゲット列をリクエストしている場合は、(システム上にターゲット定義が存在するとみなされ)gg_data_typeが返されます。 - 
                              
Replicatがソース列に対してコールバック・リクエストを行っている場合は、
gg_data_typeが返されます(システム上にソース定義が存在するとみなされます)。Replicatがソース列をリクエストし、パラメータ・ファイルでASSUMETARGETDEFSが使用されている場合は、native_data_typeが返されます。Replicatがターゲット列をリクエストしている場合は、native_data_typeが返されます。 
 - 
                              
 - 
                           
gg_data_type - 
                        
列のOracle GoldenGateデータ型。
 - 
                           
gg_sub_data_type - 
                        
列のOracle GoldenGateサブデータ型。
 - 
                           
is_nullable - 
                        
列がNULL値を許可するかどうかを示すフラグ(
TRUEまたはFALSE)。 - 
                           
is_part_of_key - 
                        
列がOracle GoldenGateによって使用されているキーの一部かどうかを示すフラグ(
TRUEまたはFALSE)。 - 
                           
key_column_index - 
                        
索引での列の順序を示します。たとえば次の表は、主キーで宣言されている順序とは異なる順序で存在する2つのキー列を持ちます。
CREATE TABLE ABC ( cust_code VARCHAR2(4), name VARCHAR2(30), city VARCHAR2(20), state CHAR(2), PRIMARY KEY (city, cust_code) USING INDEX );
論理列順に各列に対してコールバック・ファンクションを実行すると、次が返されます。
- 
                              
cust_codeは1を返します - 
                              
nameは-1を返します - 
                              
cityは0を返します - 
                              
stateは-1を返します 
列がキーの一部の場合、返される値はキー内の列の順序です。
列がキーの一部ではない場合は、値
-1が返されます。 - 
                              
 - 
                           
length - 
                        
列の長さを返します。
 - 
                           
precision - 
                        
数値データ型の場合、列の精度を返します。
 - 
                           
scale - 
                        
数値データ型の場合、位取りを返します。
 
返される値
EXIT_FN_RET_INVALID_PARAM EXIT_FN_RET_INVALID_CONTEXT EXIT_FN_RET_EXCEEDED_MAX_LENGTH EXIT_FN_RET_INVALID_COLUMN EXIT_FN_RET_OK
親トピック: ユーザー・イグジット・ファンクション