FNC_TblOptOut - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL外部ルーチン プログラミング

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

目的

行を戻す処理に参加しないテーブル関数のコピーによって呼び出されます。

構文

int
FNC_TblOptOut(void)

戻り値

呼び出し結果 FNC_TblOptOutが戻す値
成功 0
失敗 -1

これは、テーブル関数が誤ったモードまたはフェーズでFNC_TblOptOutを呼び出したときに起きることがあります。

有効な呼び出しモード

このライブラリ関数は、FNC_GetPhaseの戻り値がTBL_MODE_CONSTである場合に使用します。これはSELECT文が定数式入力引数のあるテーブル関数を呼び出したことを示します。

例えば、次のようになります。

SELECT *
FROM TABLE (table_function_1('STRING_CONSTANT'))
AS table_1;

使用上の注意

テーブル関数のすべてのコピーがFNC_TblOptOutを呼び出す場合、このステップは、行が作成されず、結果が空の派生テーブルであるかのように終了します。

制限

この関数は、テーブル関数内からのみ呼び出すことができます。この関数をスカラー関数、集約関数、UDM、または外部ストアド プロシージャから呼び出すと、トランザクションで例外が発生します。

この関数の呼び出しは、テーブル関数がFNC_GetPhaseを呼び出し、以下の値を取得する場合にのみ有効です。
  • モードとしてTBL_MODE_CONSTの戻り値
  • 処理フェーズとしてTBL_PRE_INITまたはTBL_INITの値

テーブル関数は、FNC_TblOptOutを一度しか呼び出すことができません。

FNC_TblOptOutの使用例

FNC_Phase    Phase;

if (FNC_GetPhase(&Phase) == TBL_MODE_CONST)
{
   switch(Phase)
   {
      case TBL_PRE_INIT:

         switch (FNC_Tbl_FirstParticipant() )
         {
            case 1:   /* participant */
               return;
            case 0:  /* not participant */
               if (FNC_TblOptOut()) 
                  strcpy(sqlstate, "U0006"); /* an error return */
               return;
            default:  /* -1 or other error */
               strcpy(sqlstate, "U0007");
               return;
         }
      ...
   }
   ...
}