17.00 - 17.05 - ARRAY構成要素の値へのアクセス - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

次に示すTeradataのライブラリ関数を使用すると、ARRAY引数に含まれる構成要素の値を取得できます。また、ARRAY引数のエレメント タイプがUDTの場合は、UDTハンドルを取得できます。

  • FNC_GetArrayElements
  • FNC_GetUDTHandles

1つ以上のARRAY構成要素にアクセスするには、次の手順を実行します。

  1. FNC_GetArrayTypeInfoを呼び出して、ARRAY引数に含まれる構成要素の数を特定します。その代わりに、FNC_GetArrayElementCountを呼び出して、現時点でARRAY引数に存在する構成要素の総数を特定することもできます。
  2. 新しいNullBitVector配列を割り当てて、初期化します。詳細は、NullBitVectorの検査と設定を参照してください。
  3. 結果バッファを割り当てます。このバッファは、FNC_GetArrayElementsで要素の値を返すために使用します。
  4. 構造体を割り当てます。この構造体では、取得するARRAY構成要素のセットに対するインデックスを提供します。この構造体の値に、構成要素の範囲を設定します。
  5. FNC_GetArrayElementsを呼び出して、指定した範囲内の構成要素に含まれる値を取得して、結果バッファとNullBitVectorを関数に渡します。FNC_GetArrayElementsは、要求された構成要素に含まれる値を結果バッファで返します。構成要素がNULLの場合には値は返されませんが、その構成要素のNullBitVector内のプレゼンス ビットが0に設定されます。
  6. 変更されたNullBitVectorを指定して、FNC_CheckNullBitVectorまたはFNC_CheckNullBitVectorByElemIndexを呼び出すことで、FNC_GetArrayElementsから返された結果を解釈します。
  7. FNC_freeを呼び出して、データの処理後に割り当て済みのリソースを解放します。

詳細は、FNC_GetArrayElementsを参照してください。

ARRAY引数のエレメント タイプがUDTの場合は、FNC_GetArrayElementsではなく、FNC_GetUDTHandlesを呼び出すことで構成要素の値にアクセスできます。FNC_GetUDTHandlesは、1つまたは複数のUDTハンドルを返します。このハンドルを、適切なUDTインターフェース ライブラリ関数に渡すことで、UDTの値(または、属性値)にアクセスしたり、設定したりできます。

詳細については、FNC_GetUDTHandlesUDTインターフェースを参照してください。