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>を参照してください。