17.00 - 17.05 - getPhase(int[] phase) - 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
日本語 (日本)

このメソッドは、テーブル関数の現在のモードを戻し、phase引数の最初の要素の現在のフェーズ値も戻します。

引数

getPhase()が戻すことができる処理フェーズは、モードによって異なります。

モード フェーズ 意味
Tbl.TBL_MODE_VARY Tbl.TBL_PRE_INIT UDFテーブルは、対象になるすべての行の初めに呼び出されます。UDFの入力引数には、最初のセットのデータが含まれます。

このフェーズでは、UDFが総合的なグローバル コンテキストを設定する機会を持つことになりますが、結果行は作成しません。

UDFはTBL_INITフェーズに進みます。

Tbl.TBL_INIT UDFの入力引数には、最初のセットのデータが含まれます。

このフェーズでは、UDFは結果行を作成しません。

UDFはTBL_BUILDフェーズに進みます。

Tbl.TBL_BUILD UDFは結果の引数を完成して行を作成します。

UDFは、SQLExceptionをスローし、sqlstate引数を"02000" (データがないことを示す値)に設定するまで、TBL_BUILDフェーズのままです(そのように設定した時点でTBL_FINIフェーズに進みます)。

Tbl.TBL_FINI 変数入力データがさらにある場合、UDFはTBL_INITフェーズに戻ります。そうでない場合、UDFはTBL_ENDフェーズに進みます。
Tbl.TBL_END テーブル関数は、このフェーズの後に再度呼び出されることはありません。
Tbl.TBL_ABORT テーブルUDFはアボートされています。UDFはこのフェーズでいつでも呼び出すことができます。このフェーズには、テーブルUDFのコピーがTbl.abort()を呼び出すときに入ります。関数がユーザーによるアボートなど、外的な理由によってアボートされる場合は入りません。
Tbl.TBL_MODE_CONST Tbl.TBL_PRE_INIT UDFは、関数を他のAMP vproc上で実行するすべてのテーブル関数の制御コピーとするかどうかを判別できます。

関数でテーブル関数の他のすべてのコピーに制御コンテキストを提供したい場合、関数はTbl.control()を呼び出す必要があります。

関数をテーブル関数の制御コピーにしたくない場合、または関数が制御関数を必要としないように設計されている場合、関数は単に戻るだけで、このフェーズでは何も実行しません。

テーブル関数のすべてのコピーは、いずれかのコピーがTBL_INITフェーズに進む前にこのフェーズを完了する必要があります。

Tbl.TBL_INIT それ以降は参加しないUDFのコピーでは、Tbl.optOut()を呼び出す必要があります。関数が戻った後、再度呼び出されることはありません。

テーブルUDFのすべてのコピーは、いずれかのコピーがTBL_BUILDフェーズに進む前にこのフェーズを完了する必要があります。

Tbl.TBL_BUILD テーブルUDFは結果の引数を完成してローを作成します。

関数は、SQLExceptionをスローし、sqlstate引数を"02000" (データがないことを示す値)に設定するまで、Tbl.TBL_BUILDフェーズのままです(そのように設定した時点でTbl.TBL_ENDフェーズに進みます)。

Tbl.TBL_END テーブル関数は、このフェーズから戻った後に再度呼び出されることはありません。

テーブル関数の制御コピーが存在する場合、それはテーブル関数の他のすべてのコピーがこのフェーズを完了した後にこのフェーズで呼び出されます。これにより制御関数は、最終クリーンアップまたは外部への通知を実行できます。

Tbl.TBL_ABORT テーブルUDFはアボートされ、必要な場合はクリーンアップを実行する必要があります。関数はこのフェーズでいつでも呼び出すことができます。このフェーズには、テーブル関数のいずれかのコピーがTbl.abort()を呼び出すときに入ります。関数がユーザーによるアボートなど、外的な理由によってアボートされる場合は入りません。

戻り値

意味
Tbl.TBL_MODE_CONST テーブルUDF引数は定数です。
Tbl.TBL_MODE_VARY テーブルUDF引数は変数であり、値は、SELECT文の相関テーブル指定によって生成された行に基づきます。

このモードでは、テーブルUDFは特定のAMP vproc上でのみ呼び出されます。