CREATE GLOBAL TEMPORARY TRACE TABLE文でトレース テーブルを作成する際には、UDFが実行中にトレース出力を書き込むために使用する列を定義します。
トレース出力をトレース テーブルの列に書き込むには、UDFの中でFNC_Trace_Write_DLを呼び出します。その呼び出しでは、次の3個の引数を指定します。
- トレース テーブルの列に保存するデータへのポインタの配列
- 配列の要素のカウント
- 配列の各要素の長さの配列
次のトレース テーブル定義があるとします。
CREATE GLOBAL TEMPORARY TRACE TABLE UDF_Trace (vproc_ID BYTE(2) ,Sequence INTEGER ,UDF_name CHAR(15) ,x_value INTEGER) ON COMMIT DELETE ROWS;
トレース テーブルの最初の2列には、Teradataの関数トレース サブシステムにより値が入れられます。
列 | 内容 |
---|---|
1 | UDFが実行するPEまたはAMP vprocの番号 |
2 | FNC_Trace_Write_DLの呼び出し元
|
UDFの中で、トレース テーブルのUDF_name列とx_value列に値を出力するための文は、次のようになります。
INTEGER x_value; void *column_list[2]; int length[2]; column_list[0] = sfncname; /* UDF input argument */ column_list[1] = &x_value; length[0] = strlen((const char *)sfncname); length[1] = sizeof(INTEGER); x_value = 45; FNC_Trace_Write_DL(2, column_list, length);