目的
行を戻す処理に参加しないテーブル関数のコピーによって呼び出されます。
構文
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;
}
...
}
...
}