4.47 SET_COLUMN_VALUE_BY_INDEX
適用対象
ExtractおよびReplicat
説明
SET_COLUMN_VALUE_BY_INDEXまたはSET_COLUMN_VALUE_BY_NAMEファンクションでは、データ・レコード全体を操作せず、単一の列値のみを変更します。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトの文字セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションの文字セットで解釈されます。
                  
次に該当する場合、列値はセッションの文字セットにのみ設定されます。
- 
                        
列値がSQL文字型(
CHAR/VARCHAR2/CLOB、NCHAR/NVARCHAR2/NCLOB)、SQL日付/タイムスタンプ/間隔/数値型である。 - 
                        
column_value_modeインジケータがEXIT_FN_CNVTED_SESS_CHAR_FORMATに設定されている。 
構文
#include "usrdecs.h" short result_code; column_def column; ERCALLBACK (SET_COLUMN_VALUE_BY_INDEX, &column, &result_code);
バッファ
typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION  */
ULibCharSet column_charset;
} column_def;入力
- 
                           
column_value - 
                        
新しい列値を表すバッファへのポインタ。
 - 
                           
actual_value_length - 
                        
新しい列値の長さ(バイト)。新しい列値がASCIIフォーマットの場合、実際の長さにNULL終了文字は含めません。
 - 
                           
null_value - 
                        
新しい列値がNULLかどうかを示すフラグ(
0または1)。null_valueフラグが1に設定されている場合、データ・レコードの列値はNULLに設定されます。 - 
                           
remove_column - 
                        
存在する場合に、圧縮更新の列を削除するかどうかを示すフラグ(
0または1)。圧縮更新とは、すべての列値ではなく、変更された列値のみが記録されるものです。このフラグは、レコードの操作タイプがUPDATE_COMP_SQL_VALまたはPK_UPDATE_SQL_VALの場合にのみ設定する必要があります。 - 
                           
column_index - 
                        
データ・レコード・バッファにコピーする新しい列値の列索引。列索引はゼロから開始されます。
 - 
                           
column_value_mode - 
                        
列値のフォーマットを示します。
- 
                                 
EXIT_FN_CHAR_FORMAT - 
                              
ASCIIフォーマット: 値は、NULLで終了しているASCII (またはEBCDIC)文字列です(既知の例外としてサブデータ型UTF16_BEがあり、これはUTF8に変換されます)。
ノート:
列値は、ASCII文字列として解釈され、NULLで終了する必要があるため、ユーザー・イグジットに示される際に切り捨てられる可能性があります。最初の
0の値は、文字列の終了文字になります。- 
                                    
日付は
CCYY-MM-DD HH:MI:SS.FFFFFFのフォーマットで、時間の端数はデータベースに依存します。 - 
                                    
数値は文字列フォーマットです。たとえば、
123.45は'123.45'として表されます。 - 
                                    
出力不可能な文字またはバイナリ値は、16進表記法に変換されます。
 - 
                                    
浮動小数点型は、有効桁数が最初の14桁までのNULL終了文字列として出力されます。
 
 - 
                                    
 - 
                                 
EXIT_FN_RAW_FORMAT - 
                              
内部Oracle GoldenGate正規フォーマット: このフォーマットには、適切な場合に、2バイトのNULLインジケータおよび2バイトの変数データ長が含まれます。文字データ型の場合、Oracle GoldenGateではこのフォーマットへの文字セットの変換は実行されません。
 - 
                                 
EXIT_FN_CNVTED_SESS_CHAR_FORMAT - 
                              
ユーザー・イグジットの文字セット: これが適用されるのは、列のデータ型が次の場合のみです。
- 
                                    
シングルバイトまたはマルチバイトの文字ベースの型
 - 
                                    
文字列で表現する数値型
 
このフォーマットはNULLで終了しません。
 - 
                                    
 
 - 
                                 
 - 
                           
source_or_target - 
                        
ソースまたはターゲット・レコードが変更されるかを示す次の一方。
EXIT_FN_SOURCE_VAL EXIT_FN_TARGET_VAL
 - 
                           
requesting_before_after_ind - 
                        
io_typeがUPDATE_COMP_PK_SQL_VAL(主キー更新)のレコードの列値を設定するときに設定します。次のいずれかを使用して、主キー更新のどの部分にアクセスするかを指定します。デフォルトはAFTER_IMAGE_VALです。- 
                              
BEFORE_IMAGE_VAL - 
                              
AFTER_IMAGE_VAL 
 - 
                              
 
出力
なし
返される値
EXIT_FN_RET_BAD_COLUMN_DATA EXIT_FN_RET_INVALID_COLUMN EXIT_FN_RET_INVALID_CONTEXT EXIT_FN_RET_INVALID_PARAM EXIT_FN_RET_OK EXIT_FN_RET_NOT_SUPPORTED EXIT_FN_RET_INVALID_COLUMN_TYPE
親トピック: ユーザー・イグジット・ファンクション