16.20 - 結果の報告 - 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アプリケーションから送信されたSQLリクエストの結果は、アプリケーションがSQLCODE値を検査するよう作成されていれば、SQLCA構造のSQLCODEフィールドに報告されます。

アプリケーションがSQLCODEを使用するよう作成されたストアド プロシージャである場合、ステータスはSQLCODEステータス変数に報告されます。

さまざまなSQLCODEのカテゴリの意味

次の表では、3つの基本的なSQLCODEカテゴリの一般的な意味を説明します。

SQLCODE 結果
処理時にエラーが発生した。

アプリケーションは、最初のSQLERRD構成要素と共にSQLCODEを使用して、エラーの原因を判別できます。

SQLERRDは、次のことを示します。
  • プリコンパイラ実行環境によって検出されたエラー条件
  • CLI/TDP/Teradata Databaseで報告されたエラー条件

プリプロセッサによってエラーが直接に検出される場合、最初のSQLERRD構成要素はゼロになります。

項目は、次のとおりです。
  • エラー コードのリスト
  • コードと関連付けられるテキスト
  • 可能な説明
  • これらのエラーの可能な解決策

エラー条件がCLI、TDP、またはTeradata Databaseによって検出される場合、SQLCODEは、エラー コードと10000を足した負の合計に設定されます。

アプリケーションは、最初のSQLERRD構成要素を問合わせずにSQLCODEを見ることができます。

Teradata Databaseエラー条件は、次の明確なスタイルで報告されます。
  1. 同等のDatabase 2(DB2)値を持つTeradata Databaseコードは、SQLCODEフィールドのDB2値にマッピングされます。

    再試行可能なエラーを参照してください。

  2. 同等のコードを持たないTeradata Databaseコードでは、SQLCODE値はTeradata Databaseコードの負の値に設定されます。

いずれの場合にも、最初のSQLERRD構成要素には、Teradata Databaseから戻された実際の値が含まれます。

一部のSQLCODE値は、両方のカテゴリのエラーで見つかるものもあるため、プリコンパイラ実行時エラーとTeradata Databaseエラーを区別するときに注意してください。

ゼロ 警告が存在する可能性はあるが、処理は成功した。
通常どおりに終了した。

0または+100以外の正の値は、リクエストのデータ終了に達したなど、Teradata Databaseの警告を示します。

PPRTEXT

アプリケーションは、PPRTEXTを起動することにより、非ゼロのSQLCODEのための別の診断ヘルプを入手できます。

PPRTEXTは、エラー コード(通常は、最初のSQLERRD構成要素の値と同じ値)と条件に関連付けられたテキスト メッセージを戻します。

PPRTEXTを実行するには、次の4つのパラメータが必要です。
  • ランタイム コンテキスト領域のアドレス。COBOLの場合はSQL-RDTRTCONで、CおよびPL/Iの場合はSQL_RDTRTCON。
  • 実際のエラー コードを示すための4バイトの整数フィールド。
  • エラー テキストを示すための255文字までの長さの可変文字フィールド。
  • 戻される最大サイズのエラー テキストを示す2バイトの整数フィールド。

    PPRTEXTの使用例については、<Teradata® Preprocessor2埋め込みSQLプログラマ ガイド、B035-2446>を参照してください。

警告条件の報告

警告条件は、SQLCAのSQLWARNnフィールドによってアプリケーションに報告されます。

実行時に警告条件が検出される場合、SQLWARN0には値Wが示されます。

警告フィールドは、暗黙のロールバックやデータ切り捨てなどの条件を通知するのに使用されます。

それぞれの警告フィールドの正確な値と条件についての詳細は、<Teradata® Preprocessor2埋め込みSQLプログラマ ガイド、B035-2446>を参照してください。

再試行可能なエラー

再試行可能なイベントのエラー コードも、SQLWARNnフィールドに示されます。

そのようなエラーが検出される場合、SQLWARN6がRにセットされます。そうすると、アプリケーションは、適切な処置を実行できます。

再試行可能なエラー コードのリストについては、<Teradata Vantage™ - データベース メッセージ、B035-1096>を参照してください。

DSNTIARのサポート

可能なときはいつでも、SQLCAのSQLERRMフィールドには、IBM提供のルーチンDSNTIARによって使用できるメッセージ挿入が示されます。SQLERRMフィールドの詳細は、<Teradata® Preprocessor2埋め込みSQLプログラマ ガイド、B035-2446>にあります。

DSNTIARについての詳細は、IBMの資料を参照してください。