16.20 - WHENEVER - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL ストアド プロシージャおよび埋め込みSQL

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

目的

例外条件が発生したときに実行されるアクションを指定します。

呼び出し

実行可能形式。

埋め込みSQLのみ。

構文



condition
指定されたアクションが実行される条件のタイプを示すステータス キーワード。
有効なconditionキーワードとその定義を次の表にリストします。
それぞれのキーワードの後に、条件が発生した場合の変数SQLCODEおよびSQLSTATEの値の定義を示します。
SQLERRORが、SQLエラーが発生する条件の場合:
  • SQLCODEの値: <0
  • NOT FOUNDが、データが見つからないときの条件の場合:
    • SQLCODEの値: +100
    • SQLSTATEの値: 02xxx
SQLWARNINGが、SQL警告が生じる条件の場合(SQLWARNINGは非ANSI のTeradata拡張機能です):
  • SQLCODEの値: +100以外の正の値
  • SQLSTATEは定義されません。
action
条件が発生した場合に実行されるアクション。
有効なアクションは以下のとおりです。
  • CONTINUE
  • GO TO :host_label
  • GOTO :host_label
  • PERFORM code
  • CALL function_call
説明:
  • :host_labelは、クライアント言語GO TO文の有効なターゲットを指定します。先行コロンを使用することを強く推奨します。
  • codeは、例外条件が発生した場合に実行されるアプリケーションのセクションまたはパラグラフの名前を指定します。PERFORMアクションはCOBOLでのみ有効です。
  • function_callは、例外条件が発生した場合に呼び出される関数を指定します。

ANSI準拠

WHENEVERは、ANSI/ISO SQL:2011準拠であり、拡張機能が追加されています。

許可

なし。

ルール

  • プリコンパイラSQLFLAGGERオプションをENTRYに設定すると、WHENEVER SQLWARNINGによってプリコンパイラ警告が発生します。
  • GO TOのオブジェクトのルールは、言語によって異なります。
  • 初期の暗黙的例外宣言として、常にCONTINUEが宣言されます。
  • プログラム テキストの例外宣言の後にSQL文が続き、しかも同じ例外条件に対して他の例外宣言が介入しない場合に限って、例外宣言はその特定のSQL文に適用されます。
    例外条件が当てはまる場合のアクション アプリケーション プログラムの実行が続行される場所
    CONTINUE 次の命令。

    例外条件は無視されます。

    GOTO 指定されたターゲットの場所。

    host_labelを指定する際、ターゲットを示すクライアント言語のGO TO文が、例外宣言の適用される全てのSQL文において有効になるようにする必要があります。

    CALL 指定されたサブプログラムが実行され(呼び出され)、呼び出し側プログラムに制御が戻された後、次の命令が実行されます。

    対応するクライアント文(COBOLおよびPL/I の場合はCALL関数、Cの場合は関数呼び出し)は、例外宣言が適用される全てのSQL文において有効でなければなりません。

    PERFORM 指定された1つまたは複数のCOBOLパラグラフまたはセクションが実行された後の次の命令。

    対応するCOBOL文(PERFORMコード)は、例外宣言が適用される全てのSQL文において有効でなければなりません。

  • 次のSQLCODE定義が適用されます。
    SQL文の実行後のSQLCODEの値 当てはまる例外条件
    任意の負の数 SQLERROR
    +100以外の正の値 SQLWARNING
    +100 NOT FOUND

関連トピック

以下に関する詳細な情報
  • SQLSTATEについては、SQLSTATEを参照してください。
  • GO TOのオブジェクトのルールについては、<Teradata® Preprocessor2埋め込みSQLプログラマ ガイド、B035-2446>を参照してください。