17.10 - DATASET型をサポートするFNCライブラリ ルーチン - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1198-171K-JPN
Language
日本語 (日本)

DATASET型パラメータまたは戻り値に従って定義されるUDF、または外部ストアド プロシージャを開発するとき、以下のDATASET型インターフェース関数を使用して、DATASET型パラメータの値にアクセスまたは値を設定するか、またはDATA型インスタンスの詳細を取得できます。

FNCライブラリ ルーチン 説明
FNC_GetDatasetInfo ユーザーが大文字小文字を処理する汎用ルーチンを作成できるように、最大長、インライン長、スキーマ長、生データ長、スキーマやデータがLOBかどうか、およびDATASETデータ型インスタンスの格納形式を特定します。
FNC_GetDatasetInputLob 既存のLOB FNCルーチンを使用して、LOBとして格納されているDATASETデータを読み出します。

CSV値はLOBで返されますが、オプションのスキーマは含まれていません。

FNC_GetDatasetResultLob 任意のDATASETインスタンスに関連付けられたLOBにDATASETデータを書き込みます。

CSV値は結果LOBに書き込まれますが、オプションのスキーマは含まれていません。

FNC_GetDatasetSchema 格納形式に関係なく、任意のDATASETデータ型インスタンスのスキーマを取得します。スキーマはユーザーが指定した内容に応じて、UTF-8またはUTF-16でエンコードされて返されます。
FNC_GetDatasetSchemaLob 既存のLOB FNCルーチンを使用してLOBとして格納されているDATASETインスタンスのスキーマを読み取ります。スキーマはユーザーが指定した内容に応じて、UTF-8またはUTF-16でエンコードされて返されます。
FNC_GetInternalValue DATASETインスタンスから非LOBデータを取得します。

CSV値は返されますが、オプションのスキーマは含まれていません。

FNC_SetDatasetLob LOB_LOCATORを渡します。LOB_LOCATORはUTF-8でエンコードされたスキーマを参照し、NULLで終了し、その後にDATASETデータ型インスタンス用にバイナリ コード化された値が続きます。データはDATASETインスタンスの格納形式の変換形式に準拠している必要があります。
FNC_SetInternalValue DATASETインスタンスの非LOBデータを設定します。特定のインスタンスのデータがLOBとして保管されていないことがわかっている場合、このルーチンはデータを設定できます。データはDATASETインスタンスの格納形式の変換形式に準拠している必要があります。

CSV値はこの関数に渡されますが、オプションのスキーマは含まれていません。

DATASET_HANDLEデータ型を使用して、外部ルーチンにDATASET型インスタンスを引数として渡します。同様に、DATASET_HANDLEを使用して、DATASET型の結果を外部ルーチンから返します。DATASET_HANDLEはsqltypes_td.hで次のように定義されます。
typedef int DATASET_HANDLE;

一部のFNC呼び出しでは、処理されるスキーマ テキストのエンコードを指定する必要があります。このため、以下の列挙型と型はsqltypes_td.hで定義されています。

typedef enum dataset_schema_encoding_en  {
	datasetSchemaUTF8 = 0,
	datasetSchemaUTF16 = 1
} dataset_schema_encoding_en;
typedef Byte dataset_schema_encoding_t;

dataset_storage_etのCSV列挙型フィールドは、DATASET_CSV_EN=1と呼ばれます。

DATASETデータ型は、構造化UDTの属性として、またはTeradata Distinct UDT型またはARRAY型の基本型として使用することはできません。

DATASET型インターフェース関数の詳細については、<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>を参照してください。