次に示すTeradataのライブラリ関数を使用すると、ARRAY引数に含まれる構成要素の値を取得できます。また、ARRAY引数のエレメント タイプがUDTの場合は、UDTハンドルを取得できます。
- FNC_GetArrayElements
- FNC_GetUDTHandles
1つ以上のARRAY構成要素にアクセスするには、次の手順を実行します。
- FNC_GetArrayTypeInfoを呼び出して、ARRAY引数に含まれる構成要素の数を特定します。その代わりに、FNC_GetArrayElementCountを呼び出して、現時点でARRAY引数に存在する構成要素の総数を特定することもできます。
- 新しいNullBitVector配列を割り当てて、初期化します。詳細は、NullBitVectorの検査と設定を参照してください。
- 結果バッファを割り当てます。このバッファは、FNC_GetArrayElementsで要素の値を返すために使用します。
- 構造体を割り当てます。この構造体では、取得するARRAY構成要素のセットに対するインデックスを提供します。この構造体の値に、構成要素の範囲を設定します。
- FNC_GetArrayElementsを呼び出して、指定した範囲内の構成要素に含まれる値を取得して、結果バッファとNullBitVectorを関数に渡します。FNC_GetArrayElementsは、要求された構成要素に含まれる値を結果バッファで返します。構成要素がNULLの場合には値は返されませんが、その構成要素のNullBitVector内のプレゼンス ビットが0に設定されます。
- 変更されたNullBitVectorを指定して、FNC_CheckNullBitVectorまたはFNC_CheckNullBitVectorByElemIndexを呼び出すことで、FNC_GetArrayElementsから返された結果を解釈します。
- FNC_freeを呼び出して、データの処理後に割り当て済みのリソースを解放します。
詳細は、FNC_GetArrayElementsを参照してください。
ARRAY引数のエレメント タイプがUDTの場合は、FNC_GetArrayElementsではなく、FNC_GetUDTHandlesを呼び出すことで構成要素の値にアクセスできます。FNC_GetUDTHandlesは、1つまたは複数のUDTハンドルを返します。このハンドルを、適切なUDTインターフェース ライブラリ関数に渡すことで、UDTの値(または、属性値)にアクセスしたり、設定したりできます。
詳細については、FNC_GetUDTHandlesとUDTインターフェースを参照してください。