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結果パラメータに含まれる構成要素の値を設定できます。

ライブラリ関数 説明
FNC_SetArrayElements ARRAYに含まれる1つ以上の構成要素に、同一の新しい値を設定します。
FNC_SetArrayElementsWithMultiValues ARRAYに含まれる1つ以上の構成要素に、それぞれ異なる値を設定できます。

次に示す手順は、ARRAY構成要素の範囲に同一の新しい値を設定するための一般的な手順です。

  1. nullIndicator引数を0に設定します。
  2. newValue引数に、構成要素の範囲に割り当てる値を設定します。
  3. FNC_GetArrayTypeInfoを呼び出して、このARRAYの次元数を特定します。
  4. 構造体を割り当てます。この構造体では、変更するARRAY構成要素のセットに対するインデックスを提供します。この構造体の値に、構成要素の範囲を設定します。
  5. FNC_SetArrayElementsを呼び出して、指定した構成要素の範囲の値をnewValueに設定します。
  6. FNC_freeを呼び出して、データの処理後に割り当て済みのリソースを解放します。

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

次に示す手順は、ARRAY構成要素の範囲に個別の値を設定するための一般的な手順です。

  1. FNC_GetArrayTypeInfoを呼び出して、このARRAY型の構成要素の数を特定します。その代わりに、FNC_GetArrayElementCountを呼び出して、現時点でARRAY引数に存在する構成要素の総数を特定することもできます。
  2. 新しいNullBitVector配列を割り当てて、初期化します。詳細は、NullBitVectorの検査と設定を参照してください。
  3. 構造体を割り当てます。この構造体では、変更するARRAY構成要素のセットに対するインデックスを提供します。この構造体の値に、構成要素の範囲を設定します。
  4. newValuesバッファに、変更する構成要素の数に応じたサイズを割り当てます。指定した範囲内の各構成要素に割り当てる構成要素の値でバッファを満たします(行優先順)。
  5. FNC_SetNullBitVectorまたはFNC_SetNullBitVectorByElemIndexを使用して、値またはNULLを設定する構成要素を示すように、NullBitVectorのビットを設定します。
  6. FNC_SetArrayElementsWithMultiValuesを呼び出して、指定した範囲の構成要素に、newValuesバッファとNullBitVectorの値に基づいた新しい値を設定します。
  7. FNC_freeを呼び出して、データの処理後に割り当て済みのリソースを解放します。

別の方法として、最初にFNC_GetArrayElementsを呼び出して、ARRAYに含まれる複数の値と、それに対応するNullBitVectorを取得することもできます。それらの構造体の両方をオプションで変更してから、FNC_SetArrayElementsWithMultiValuesを使用すると、同一のARRAYデータ型を保持する別のARRAY内の同じ範囲の構成要素を更新できます。

詳細については、FNC_SetArrayElementsWithMultiValuesを参照してください。