17.00 - 17.05 - 関数の種類 - 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
日本語 (日本)
Last Update
2021-03-30

中間集約記憶域

集約ライブラリ関数は、集約関数の中で集約情報を累積するために必要な中間記憶域を割り当てます。

目的 使用するライブラリ関数
集約関数の中で集約情報を累積するための中間記憶域を割り振る FNC_DefMem

ARRAYデータ型インターフェース

ARRAYインターフェース関数を使用すると、UDF、UDM、または外部ストアド プロシージャでARRAYデータ型の構成要素の値にアクセスしたり、その値を設定できるようになります。

目的 使用するライブラリ関数
ARRAY入力パラメータのうち値(NULLを含む)が設定されている構成要素の合計数を取得する FNC_GetArrayElementCount
ARRAY入力パラメータについての情報(構成要素のデータ型、次元数、構成要素の合計数、スコープ情報など)を取得する FNC_GetArrayTypeInfo_EON
ARRAY入力パラメータに定義された次元数を取得する(この情報が外部ルーチンで不明な場合) FNC_GetArrayNumDimensions
NullBitVectorの1つのビット、またはすべてのビットを設定する FNC_SetNullBitVector
NullBitVector内の1つのビットの値を検査する FNC_CheckNullBitVector
NullBitVector内の1つのビットを設定する。ただし、設定対象のビットは次元で指定するようにARRAY型構成要素のインデックスで参照する FNC_SetNullBitVectorByElemIndex
NullBitVector内の1つのビットの値を検査する。ただし、検査対象のビットは次元で指定するようにARRAY型構成要素のインデックスで参照する FNC_CheckNullBitVectorByElemIndex
ARRAY型の1つ以上の構成要素を範囲で取得し、NULLまたは存在しない構成要素に対するNullBitVectorのビットを0に設定する FNC_GetArrayElements
ARRAY戻りパラメータの1つ以上の構成要素に同一の値を設定する FNC_SetArrayElements
ARRAY戻りパラメータの1つ以上の構成要素に値を設定する(各構成要素に個別の値を設定する場合) FNC_SetArrayElementsWithMultiValues
1つ以上のUDT_HANDLESを取得する(このハンドルを使用すると、エレメント タイプがUDTのARRAYデータ型の構成要素を操作できます) FNC_GetUDTHandles

DATASETデータ型インターフェース

次の関数を使用して、UDF、または外部ストアド プロシージャでDATASETパラメータの値にアクセスして設定したり、DATASET型パラメータに関する情報を取得したりできます。

目的 使用するライブラリ関数
最大長、インライン長、格納形式などのDATASET型インスタンスに関する情報を取得する FNC_GetDatasetInfo
DATASET型インスタンスのスキーマを取得する FNC_GetDatasetSchema
LOB FNCルーチンを使用して、LOBとして格納されているDATASET型インスタンスのスキーマを読み取る FNC_GetDatasetSchemaLob
DATASETデータがLOBとして保存されない場合、DATASET型インスタンスの値を取得する FNC_GetInternalValue
DATASETデータがLOBとして保存されない場合、DATASET型インスタンスの値を設定する FNC_SetInternalValue
LOB FNCルーチンを使用して、LOB として格納されているDATASETデータを読み取る FNC_GetDatasetInputLob
DATASETデータをDATASETインスタンスに関連付けられたLOBに書き込む FNC_GetDatasetResultLob
LOB_LOCATORをDATASET型インスタンスに渡し、ロケータによって参照されるデータをインスタンスで使用して、そのスキーマとバイナリ コード化されたAvro値を設定できるようにする FNC_SetDatasetLob

Geospatialデータ型インターフェース

次の関数により、外部ルーチンを使用して、ST_Geometry型、MBR型、およびMBB型のGeospatialデータにアクセス、操作し、返すことができます。

目的 使用するライブラリ関数
ST_Geometry型の最大長およびLOBとして保存されるかどうかの表示を取得する FNC_GetGeometryInfo
インラインST_Geometry値(つまり、LOBとして保存されない値)のWKT (Well-Known Text)表現を取得する FNC_GeomGetWKT
LOBとして保存されるST_Geometry値のWKT表現を取得する FNC_GeomGetWKTClob
ST_Geometry WKTのバイト単位の長さを取得する FNC_GeomGetWKTSize
UDF/UDMの戻り値、または外部ストアド プロシージャのINOUTパラメータまたはOUTパラメータであるST_GeometryのCLOBへのLOBロケータを取得する FNC_GeomGetResultWKTClob
WKT文字列を使用してST_Geometry型の値を設定する FNC_GeomSetWKT
WKT CLOBを使用してST_Geometry型の値を設定する FNC_GeomSetWKTClob
インラインST_Geometry値(つまり、LOBとして保存されない値)のWKB (Well-Known Binary)表現を取得する FNC_GeomGetWKB
LOBとして保存されるST_Geometry値のWKB表現を取得する FNC_GeomGetWKBBlob
ST_Geometry WKBのバイト単位の長さを取得する FNC_GeomGetWKBSize
UDF/UDMの戻り値、または外部ストアド プロシージャのINOUTパラメータまたはOUTパラメータであるST_GeometryのBLOBへのLOBロケータを取得する FNC_GeomGetResultWKBBlob
ジオメトリのWKB表現を使用してST_Geometry型の値を設定する FNC_GeomSetWKB
ジオメトリのWKB BLOB表現を使用してST_Geometry型の値を設定する FNC_GeomSetWKBBlob
MBR (最小外接矩形)型を定義する4つの座標値を含むバッファを返す FNC_MBRGetValue
バッファを使用してMBR型を定義する4つの座標値を設定する FNC_MBRSetValue
MBB (最小外接ボックス)型を定義する6つの座標値を含むバッファを返す FNC_MBBGetValue
バッファを使用してMBBを定義する6つの座標値を設定する FNC_MBBSetValue

グローバル情報

グローバル情報関数は、UDF、UDM、または外部ストアド プロシージャの現在の実行に関連したセッション情報を戻します。

目的 使用するライブラリ関数
現在実行されているUDF、UDM、または外部ストアド プロシージャに関連するユーザー アカウント、ユーザー名、ユーザーID、セッション番号などのグローバル情報を取得する FNC_DbsInfo_EON

GLOPアクセス

GLOPアクセス関数は、外部ルーチンがGLOPセットにマップし、データにアクセスする方法を提供します。先にFNC_Get_GLOP_Mapを呼び出してから、それ以外のGLOP関数を呼び出す必要があります。

目的 使用するライブラリ関数
外部ルーチンと関連するGLOPセット マップ情報を取得する FNC_Get_GLOP_Map
読み取り専用GLOPのさまざまなページをマップする、または読み取り/書き込みあるいはグローバルに変更可能なGLOPの単一ページを再ロードする FNC_GLOP_Map_Page
読み取りまたは書き込み用のvprocローカルGLOPをロックする FNC_GLOP_Lock
前にロックしたGLOPをアンロックする FNC_GLOP_Unlock
1マッピング インスタンスのGLOPデータを、すべてのノードのすべてのvproc上のすべてのマッピング インスタンスのGLOPデータにコピーする FNC_GLOP_Global_Copy
現在実行中の外部ルーチンの特定のノードID、vproc ID、vprocタイプ、およびタスクIDに関する情報を取得する FNC_Where_Am_I

JSONデータ型インターフェース

次の関数を使用して、UDF、UDM、または外部ストアド プロシージャでJSONパラメータの値にアクセスして設定したり、JSON型パラメータに関する情報を取得したりできます。

目的 使用するライブラリ関数
JSON型の最大長と文字セットおよびJSONデータをLOBとして保存するかどうかの表示を取得する FNC_GetJSONInfo
JSON型インスタンスの最大長、インライン長、文字セット、格納形式、およびJSONデータをLOBとして保存するかどうかの指示を取得する FNC_GetExtendedJSONInfo
JSONデータがLOBとして保存ない場合に、JSON型インスタンスの文字列表現を取得する FNC_GetInternalValue
JSONデータがLOBとして保存されない場合、JSON型インスタンスの値を設定する FNC_SetInternalValue
データをLOBとして保存しているJSONインスタンスのLOB_LOCATORを取得し、このロケータをLOB FNCルーチンと共に使用して、JSONインスタンスからデータを読み取る FNC_GetJSONInputLob
JSONインスタンスに関連したLOBへのLOB_RESULT_LOCATORを取得し、このロケータをLOB FNCルーチンと共に使用して、JSONインスタンスにデータを書き込む FNC_GetJSONResultLob

JSONデータ型をSTRUCTURED型UDTの属性として指定できます。JSON属性を含むSTRUCTURED型UDTを外部ルーチンとやり取りする場合、次のインターフェース機能を使用して、JSON属性の値にアクセスしたり、値を設定したり、またJSON属性に関する情報を取得することができます。

目的 使用するライブラリ関数
最大長、文字セット、属性のデータがLOBとして保存されているかなどのJSON属性に関する情報を取得する FNC_GetStructuredAttributeInfo_EON
JSON属性がLOBとして保存ない場合にJSON属性の文字列表現を取得する FNC_GetStructuredAttribute
JSONデータがLOBとして保存ない場合に、JSON属性に対してJSONドキュメントの文字列表現を設定する FNC_SetStructuredAttribute
JSON属性のデータを保存するLOBへのLOB_LOCATORを取得し、このロケータをLOB FNCルーチンと共に使用して、属性からデータを読み込む FNC_GetStructuredInputLobAttribute
JSON属性のデータが保存されている可能性があるLOBへのLOB_RESULT_LOCATORを取得し、このロケータをLOB FNCルーチンと共に使用して、データを属性に書き込む FNC_GetStructuredResultLobAttribute

LOBアクセス

LOBアクセス関数は、UDF、UDM、または外部ストアド プロシージャでロケータを使用することにより、参照されているオブジェクトの内容にアクセスしたり、LOBオブジェクトにデータを追加したりするために使用します。

目的 使用するライブラリ関数
ラージ オブジェクトの長さをバイト数単位で取得する FNC_GetLobLength
UDFまたは外部プロシージャの結果オブジェクトとして定義されているラージ オブジェクト、またはUDTに含まれているラージ オブジェクトに、バイト シーケンスを追加する FNC_LobAppend
データの末尾に達したかどうかに関係なく、読み取りコンテキストに関連するすべてのリソースを解放する FNC_LobClose
ロケータを永続オブジェクト参照に変換する FNC_LobLoc2Ref
参照されているオブジェクトのそれ以降の順次読み取りで使用する読み取りコンテキストを確立する FNC_LobOpen
指定されたコンテキストを使用して、順次読み取りを実行する FNC_LobRead
永続オブジェクト参照をロケータに変換する FNC_LobRef2Loc

メモリ割り当て

データベースでメモリ リークが発生しないようにするため、sqltypes_td.hヘッダー ファイルの中で、Teradataのライブラリ関数FNC_mallocおよびFNC_freeを使用するよう、mallocおよびfreeが再定義されています。

PERIODデータ型インターフェース

PERIODパラメータまたは戻り型の値にアクセスするかそれを設定するために、外部ルーチンは特定のライブラリ関数を使用する必要があります。

目的 使用するライブラリ関数
PERIOD型の値を取得する FNC_GetInternalValue
PERIOD型の値を設定する FNC_SetInternalValue

クエリー バンド アクセス

UDF、UDM、または外部ストアド プロシージャは、クエリー バンド アクセス関数を使用して、クエリーの元のソースを識別したり、タスクの優先順位の管理やシステムの使用状況の追跡を支援するために、セッション、トランザクションまたはプロファイルに設定されたクエリー バンド名/値ペアを取得できます。

目的 使用するライブラリ関数
トランザクション、セッション、プロファイルについて、現行のクエリー バンド文字列を取得する FNC_GetQueryBand
FNC_GetQueryBandが戻すクエリー バンド文字列から、トランザクション、セッションまたはプロファイルの名前/値ペアを取得する FNC_GetQueryBandPairs
FNC_GetQueryBandが戻すクエリー バンド文字列のトランザクション、セッションまたはプロファイルの名前/値ペアを検索し、指定された名前についての値を取得する FNC_GetQueryBandValue

ストアド プロシージャ呼び出し

外部ストアド プロシージャは、ストアド プロシージャ呼び出し関数を呼び出すことができます。

目的 使用するライブラリ関数
外部ストアド プロシージャ内からストアド プロシージャを呼び出す FNC_CallSP

文字列引数と結果の処理

UDF、UDM、または外部ストアド プロシージャでは、BYTE、CHAR、CHARACTER(n) CHARACTER SET GRAPHIC、またはVARCHARの入力パラメータ、出力パラメータ、または結果を扱うときに、文字列の引数と結果を処理する関数を使用できます。

これらの関数は、テーブル列のアルゴリズム圧縮および圧縮解除に使用する関数に対しては特に役立ちます。

目的 使用するライブラリ関数
スカラーUDFまたは集約UDFが結果として返す必要がある、出力バッファのサイズを判断する FNC_GetOutputBufferSize
データ型がBYTEの、外部ルーチンの入力引数の長さをバイト単位で取得する FNC_GetByteLength
データ型がCHARの、外部ルーチンの入力引数の長さをバイト単位で取得する FNC_GetCharLength
データ型がCHARACTER CHARACTER SET GRAPHICの、外部ルーチンの入力引数の長さをバイト単位で取得する FNC_GetGraphicLength
データ型がVARCHARの、外部ルーチンの入力引数の長さをバイト単位で取得する FNC_GetVarCharLength
データ型がVARCHARの、外部ストアド プロシージャの出力パラメータの長さ、またはUDFやUDMの結果の長さをバイト単位で設定する FNC_SetVarCharLength

テーブル関数処理

テーブル関数処理関数は、テーブルUDFから呼び出します。

目的 使用するライブラリ関数
テーブル関数がSELECT文のFROM TABLE句で呼び出された方法と、取るべきアクションを判別する FNC_GetPhase
FNC_GetPhaseEx
制御コピーにするテーブル関数の1コピーを指定する(制御コピーは、他のAMP vproc上で実行する他のコピーにグローバル制御データを配布できる) FNC_TblControl
制御スクラッチパッドを使用して、テーブル関数の制御コピーから他のすべてのAMP vproc上で実行する他のすべてのコピーにデータを伝播する FNC_TblAllocCtrlCtx
FNC_TblGetCtrlCtx
汎用スクラッチパッドを使用して、ローカル テーブル関数のコピーの反復実行間でデータを保持する FNC_TblAllocCtx
FNC_TblGetCtx
行を戻す処理に参加しない FNC_TblOptOut
テーブル関数のコピーがエラー条件を検出して処理を継続できない場合に、リクエストを手順どおりにアボートする FNC_TblAbort
テーブル関数が特定のAMP上で実行するための自己構成に使用できるノードIDとAMP IDの情報を取得する FNC_TblGetNodeData
FNC_AMPInfo
どのAMP上でも実行可能であり、トランザクションおよびリクエストに参加するために1コピーだけを必要とするテーブル関数を実装する FNC_TblFirstParticipant
動的な結果行指定のテーブル関数によって戻される必要がある結果列の定義を取得する FNC_TblGetColDef

テーブル演算子インターフェース

テーブル演算子インターフェース関数を使用すると、テーブル演算子およびコントラクト関数作成者は、メータデータへのアクセスや設定ができるようになります。これらはまた、入力ストリームと出力ストリームの行の読み取り/書き込みをするためのインターフェースを提供します。

非保護モードで実行するには、AMP環境はマルチスレッド化されるため、C言語テーブル演算子をスレッド セーフにする必要があります。

テーブル演算子FNC関数は、以下の文字セットを扱います。

  • どの文字列パラメータも、文字セットはテーブル演算子作成時に定義された文字セットと一致します。これは、既存のUDFの動作と同じです。
  • 文字列の比較を行なう関数(FNC_TblOpGetCustomValueなど)はすべて、大文字と小文字を区別します。

以下の関数は、演算子全体または特定のストリームに関連するメタデータへのアクセスを提供します。これらの関数はまた、演算子全体または個々のストリームのメタデータを設定するメカニズムを提供します。

目的 使用するライブラリ関数
テーブル演算子に関連付けられた固有識別子を取得する FNC_TblOpGetUniqID
ストリームの列定義の取得 FNC_TblOpGetColDef
ストリーム中の列数の取得 FNC_TblOpGetColCount
UDTまたは複合データ型(CDT)の基本型または属性型に関する情報を取得する FNC_TblOpGetBaseInfo
入力または出力ストリームの1つまたは複数のUDT列に関するメタデータ情報を取得する FNC_TblOpGetUDTMetadata
STRUCTURED型UDTタイプのすべての属性に関する情報を取得する FNC_TblOpGetStructuredAttributeInfo
カスタム句のキー数の取得 FNC_TblOpGetCustomKeyCount
カスタム句内のキーに関連する値の数、合計サイズ(バイト単位)、および型の取得 FNC_TblOpGetCustomKeyInfoOf
特定インデックスのカスタム句内の値の数、合計サイズ(バイト単位)、および型の取得 FNC_TblOpGetCustomKeyInfoAt
カスタム句内のキーに関連するすべての値の取得 FNC_TblOpGetCustomValuesOf
入力ストリームと関連した別名(AS名前)を取得する FNC_TblOpGetAsClauseName
入力ストリームのHASH BY情報の取得 FNC_TblOpGetHashByDef
HASH BY句内の列数の取得 FNC_TblOpGetCountHashByDef
入力ストリームのLOCAL ORDER BY情報の取得 FNC_TblOpGetLocalOrderByDef
LOCAL ORDER BY句内の列数の取得 FNC_TblOpGetCountLocalOrderByDef
コントラクト関数作成者に対するHASH BY指定設定の許可 FNC_TblOpSetHashByDef
コントラクト関数作成者に対する整列指定設定の許可 FNC_TblOpSetLocalOrderByDef
テーブル演算子への入力がDIMENSION入力かどうかを検出する FNC_TblOpIsDimension
出力ストリームの出力列の構文解析プログラムとのやりとり FNC_TblOpSetOutputColDef
コントラクト関数が実行時に関連するテーブル演算子に渡す2進列の不透明な値(コントラクト関数のコンテキスト)の設定 FNC_TblOpSetContractDef
コントラクト関数コンテキストの長さの取得 FNC_TblOpGetContractLength
コントラクト関数コンテキストの取得 FNC_TblOpGetContractDef
出力ストリームまたは入力ストリームの形式の設定 FNC_TblOpSetFormat
コントラクト関数におけるデフォルト形式または形式セット(FNC_TblOpSetFormatによる)の取得 FNC_TblOpGetFormat
エラー メッセージの生成 FNC_TblOpSetError
テーブル演算子呼び出しに関する情報へのアクセス FNC_TblOpGetFunctionDef

これらの関数はLOBに関するインターフェース関数です。

目的 使用するライブラリ関数
参照されているオブジェクトのそれ以降の順次読み取りで使用する読み取りコンテキストを確立する FNC_LobOpen_CL
出力インデックス列のLOB_RESULT_LOCATORへの変換(変換後はFNC_LOBAppendにより使用可能) FNC_LobCol2Loc
入力LOBの長さの取得 FNC_GetLobLength_CL

以下の関数を使用すると、テーブル演算子作成者はストリームのオープン、行の読み出し、行の書き込み、およびストリームのクローズが可能となります。さらに、現在のストリーム行において特定属性の値を取得および設定することができます。

目的 使用するライブラリ関数
テーブル演算子に渡される入力および出力ストリームの数の取得 FNC_TblOpGetStreamCount
ストリームの読み出しや書き込みのためのイテレータ インターフェースの初期化 FNC_TblOpOpen
入力ストリームからの行の読み出し、および次のデータ入力行への読み取りコンテキストの設定 FNC_TblOpRead
特定の入力属性値へのアクセス FNC_TblOpGetAttributeByNdx
出力属性値のメモリ位置への結合 FNC_TblOpBindAttributeByNdx
現在の出力データの書き込み、および次の出力行への出力コンテキストのスプールならびに設定 FNC_TblOpWrite
ストリームのクローズおよびデータベースへのデータのフラッシュ FNC_TblOpClose

これらの関数により、入力や出力バッファへアクセスできます

ユーザー 使用するライブラリ関数
現在の入力バッファへの高性能ダイレクト バッファ読み出しアクセス FNC_TblOpReadBuf
複数入力ストリームに対応する高性能ダイレクト バッファ読み出しアクセス FNC_TblOpReadBufEx
高性能ダイレクト バッファ書き込みアクセス FNC_TblOpWriteBuf

次の関数を使用して、複数の入力ストリームを処理するテーブル演算子のcogroup機能を無効にします。

ユーザー 使用するライブラリ関数
cogroup機能をオフにする FNC_TblOpDisableCoGroup

次の関数は、外部サーバーとの間でデータをインポートおよびエクスポートするテーブル演算子によって使用することができます。

目的 使用するライブラリ関数
指定したAMPにハッシュされる値を取得する FNC_GetAmpHash
入力に基づいてキーを処理するAMPを決定する FNC_GetHashAmp
エクスポートされる行の数を設定する FNC_SetActivityCount
テーブル関数とテーブル演算が特定のAMP上で実行するための自己構成に使用できるノードIDとAMP IDの情報を取得する FNC_TblGetNodeData
テーブル演算子によってTeradata Databaseと外部サーバー間で転送されるバイト数を記録する FNC_TblOpBytesTransferred
UDTまたは複合データ型(CDT)の基本型または属性型に関する情報を取得する FNC_TblOpGetBaseInfo
ストリームの列定義を検索し、コントラクト関数の出力列定義を取得する FNC_TblOpGetColDef
コントラクト関数コンテキストの取得 FNC_TblOpGetContractDef
コントラクト関数が呼び出される構文解析プログラムのフェーズを取得する FNC_TblOpGetContractPhase
外部サーバーのテキスト クエリー文字列を取得し、現在サポートされているインターフェースのバージョンを取得する FNC_TblOpGetExternalQuery
外部テーブル演算子が使用するための、ネストされた内部テーブル演算子のコントラクト定義を取得する FNC_TblOpGetInnerContract
コントラクト関数が実行時に関連するテーブル演算子に渡す2進列の不透明な値(コントラクト関数のコンテキスト)の設定する FNC_TblOpSetContractDef
VARCHARデータ型の列定義の長さをリセットする FNC_TblOpSetDisplayLength
テーブル演算子にhexplainカスタム句のセットがある場合、EXPLAINテキストを設定する FNC_TblOpSetExplainText
入力および出力ストリームの形式属性を設定する FNC_ TblOpSetFormat
コントラクト関数作成者に対するHASH BY指定設定の許可 FNC_TblOpSetHashByDef
入力列にキャスト文を設定し、データ型を呼び出し側によって示されるとおりにキャストする FNC_TblOpSetInputColTypes
テーブル演算子作成時に、コントラクト関数作成者に整列指定の設定を許可する FNC_TblOpSetLocalOrderByDef

テーブル演算子FNC関数により使用されるデータ構造体についての詳細は、テーブル演算子のデータ構造を参照してください。

TD_ANYTYPEパラメータ アクセス

TD_ANYTYPEパラメータ アクセス関数を使用すると、UDF、UDM、または外部ストアド プロシージャでTD_ANYTYPE入力パラメータおよび出力パラメータについての情報を取得できるようになります。

目的 使用するライブラリ関数
ルーチンに渡されたTD_ANYTYPE引数についての情報を取得する FNC_GetAnyTypeParamInfo_eon

トレース

トレース ライブラリ関数は、UDF、UDM、および外部ストアド プロシージャの開発時にデバッグのためのトレース出力を入手するために使用します。

目的 使用するライブラリ関数
SET SESSION FUNCTION TRACE文で指定された関数トレース文字列を取得する FNC_Trace_String
CREATE GLOBAL TEMPORARY TRACE TABLE文によって定義された一時トレース テーブルにトレース出力を書き込む FNC_Trace_Write_DL

UDTインターフェース

UDTインターフェース関数を使用すると、UDF、UDM、または外部ストアド プロシージャで、DISTINCT型UDTの値またはSTRUCTURED型UDTの属性値にアクセスしたり設定したりすることができます。

目的 使用するライブラリ関数
DISTINCT型の値を取得する FNC_GetDistinctValue
DISTINCT型の値を設定する FNC_SetDistinctValue
LOBを表わすDISTINCT型のロケータを取得する FNC_GetDistinctInputLob
FNC_GetDistinctResultLob
STRUCTURED型の属性の数を取得する FNC_GetStructuredAttributeCount
STRUCTURED型の属性に関する、データ型などの情報を取得する FNC_GetStructuredAttributeInfo_EON
STRUCTURED型の属性値を取得する FNC_GetStructuredAttribute
FNC_GetStructuredAttributeByNdx
STRUCTURED型の属性値を設定する FNC_SetStructuredAttribute
FNC_SetStructuredAttributeByNdx
STRUCTURED型LOB属性のロケータを取得する FNC_GetStructuredInputLobAttribute
FNC_GetStructuredInputLobAttributeByNdx
FNC_GetStructuredResultLobAttribute
FNC_GetStructuredResultLobAttributeByNdx

UDTのシリアル化

これらの関数はUDTパラメータをシリアル化または非シリアル化し、シリアル化および非シリアル化をサポートするUDTの値を返します。

目的 使用するライブラリ関数
UDTがシリアル化および非シリアル化をサポートするかどうか判断する FNC_UdtSerializeSupported
シリアル化されたUDTの実際のサイズを取得する FNC_UdtGetSerializeSize
シリアル化されたUDTを取得する FNC_UdtSerialize
シリアル化されたUDTのデータを非シリアル化してUDTに戻す FNC_UdtDeserialize

XMLデータ型インターフェース

次の関数を使用して、UDF、UDM、または外部ストアド プロシージャでXMLパラメータの値にアクセスして設定したり、XML型パラメータに関する情報を取得したりできます。

目的 使用するライブラリ関数
XML値のサイズおよびその値がLOBとして保存されるかを含め、XML値に関する情報を取得する FNC_GetXMLInfo
XMLデータがLOBとして保存されない場合、XML型インスタンスの値を取得する FNC_GetXML
XML型のCLOB表現のLOBロケータを取得し、このロケータをLOB FNCルーチンと使用してデータを読み込む FNC_GetXMLClob
CLOB値(XML戻り値)を設定するためにLOB FNCルーチンとともに使用されるLOB_RESULT_LOCATORを取得する FNC_GetXMLResultClob
XMLデータがLOBとして保存されない場合、XML型インスタンスの値を設定する FNC_SetXML
FNC_GetXMLResultClobによって返されるCLOBロケータを使用して、XML戻り値またはOUTパラメータ値を設定する FNC_SetXMLClob
XMLデータがLOBとして保存されない場合、XML型の値をUTF-8バイナリ エンコードで取得する FNC_GetXMLByte
XML型のBLOB表現(UTF-8エンコード)のLOBロケータを取得し、このロケータをLOB FNCルーチンと使用してデータを読み込む FNC_GetXMLBlob
XMLデータがLOBとして保存されない場合、XML型インスタンスの値を設定する(UTF-8エンコードの値を使用) FNC_SetXMLByte
BLOB値(XML戻り値)を設定するためにLOB FNCルーチンとともに使用されるLOB_RESULT_LOCATORを取得する FNC_GetXMLResultBlob
FNC_GetXMLResultBlobによって返されるBLOBロケータを使用して、XML戻り値またはOUTパラメータ値を設定する FNC_SetXMLBlob