埋め込みSQLアプリケーションから送信されたSQLリクエストの結果は、アプリケーションがSQLCODE値を検査するよう作成されていれば、SQLCA構造のSQLCODEフィールドに報告されます。
アプリケーションがSQLCODEを使用するよう作成されたストアド プロシージャである場合、ステータスはSQLCODEステータス変数に報告されます。
さまざまなSQLCODEのカテゴリの意味
次の表では、3つの基本的なSQLCODEカテゴリの一般的な意味を説明します。
SQLCODE | 結果 |
---|---|
負 | 処理時にエラーが発生した。 アプリケーションは、最初のSQLERRD構成要素と共にSQLCODEを使用して、エラーの原因を判別できます。 SQLERRDは、次のことを示します。
プリプロセッサによってエラーが直接に検出される場合、最初のSQLERRD構成要素はゼロになります。 項目は、次のとおりです。
エラー条件がCLI、TDP、またはTeradata Databaseによって検出される場合、SQLCODEは、エラー コードと10000を足した負の合計に設定されます。 アプリケーションは、最初のSQLERRD構成要素を問合わせずにSQLCODEを見ることができます。 Teradata Databaseエラー条件は、次の明確なスタイルで報告されます。
いずれの場合にも、最初のSQLERRD構成要素には、Teradata Databaseから戻された実際の値が含まれます。 一部のSQLCODE値は、両方のカテゴリのエラーで見つかるものもあるため、プリコンパイラ実行時エラーとTeradata Databaseエラーを区別するときに注意してください。 |
ゼロ | 警告が存在する可能性はあるが、処理は成功した。 |
正 | 通常どおりに終了した。 0または+100以外の正の値は、リクエストのデータ終了に達したなど、Teradata Databaseの警告を示します。 |
PPRTEXT
アプリケーションは、PPRTEXTを起動することにより、非ゼロのSQLCODEのための別の診断ヘルプを入手できます。
PPRTEXTは、エラー コード(通常は、最初のSQLERRD構成要素の値と同じ値)と条件に関連付けられたテキスト メッセージを戻します。
- ランタイム コンテキスト領域のアドレス。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の資料を参照してください。