ポイント: Db2 12のSQLコミュニケーションエリア(SQLCA)は、SQL実行とエラー処理を管理するために重要であり、SQLCODEやSQLSTATEなどの主要フィールドが操作の成功または失敗を示します。
- SQLCAは、重要なエラーおよび警告インジケーターを提供します。
- SQLステートメントの実行中の問題を診断するのに役立ちます。
| アセンブラ、COBOL、またはPL/I名 | C名 | データ型 | 目的 |
| SQLCAID | sqlcaid | CHAR(8) | ‘eye catcher’は、ストレージダンプのためのもので、「SQLCA」というテキストが含まれています。6バイト目は、動的ステートメントまたはネイティブSQLプロシージャの解析から行番号情報が返される場合は「L」となります。外部SQLプロシージャを処理しているときは設定されません。 |
| SQLCABC | sqlcabc | INTEGER | SQLCAの長さを含む: 136 |
| SQLCODE | SQLCODE | INTEGER | SQL戻りコードを含みます。0 = 成功した実行 正の値 = 成功した実行ですが、例外条件があります 負の値 = エラー条件 |
| SQLERRML | sqlerrml | SMALLINT | SQLERRMCの長さインジケーターで、範囲は0から70まで。0はSQLERRMCの値が関連しないことを意味します |
| SQLERRMC | sqlerrmc | VARCHAR(70) | エラー条件の説明における変数のために置換される1つ以上のトークンを含み、X’FF’で区切られています。切り詰められたトークンを含む場合があります。70バイトのメッセージ長は、切り詰めの可能性を示します |
| SQLERRP | sqlerrp | CHAR(8) | 製品シグネチャを提供し、エラーの場合にはエラーを検出したモジュールの名前などの診断情報を提供します。最初の3文字は「DSN」です |
| SQLERRD(1) | sqlerrd[0] | INTEGER | センシティブな静的カーソルの場合、カーソル位置が最終行の後にあるときの結果テーブルの行数を含みます(つまり、SQLCODEが+100に等しい場合)。内部エラーコードを含む場合もあります。 |
| SQLERRD(2) | sqlerrd[1] | INTEGER | センシティブな静的カーソルの場合、カーソル位置が最終行の後にあるときの結果テーブルの行数を含みます(つまり、SQLCODEが+100に等しい場合)。内部エラーコードを含む場合もあります。 |
| SQLERRD(3) | sqlerrd[2] | INTEGER | INSERT、MERGE、UPDATE、またはDELETEステートメントの後に削除、挿入、または更新する資格のある行数を含みます。トリガーや参照整合性制約によって影響を受けた行は除外されます。この値は、SQLステートメントが失敗した場合は0になります。DELETEステートメントの値は、セグメント化されたテーブルスペースのテーブルからの一括削除操作の場合、選択条件が含まれていない場合は-1になります。ビューに対する削除の場合、DELETEステートメントもビューの定義も選択条件を含まれていません。TRUNCATEステートメントの場合、値は-1になります。REFRESH TABLEステートメントの場合、SQLERRD(3)はマテリアライズドクエリテーブルに挿入された行数を含みます。行セット指向のFETCHの場合、取得された行数を含みます。SQLCODES -911および-913の場合、SQLERRD(3)はタイムアウトまたはデッドロックの理由コードを含みます。動的ステートメントの解析中、またはバインディングの解析中、またはネイティブSQLプロシージャを実行中にエラーが発生した場合、SQLERRD(3)はエラーが発生した行番号を含みます。この値は、ステートメントソースに改行制御文字が含まれている場合にのみ意味があります。この情報は、外部SQLプロシージャには返されません。 |
| SQLERRD(4) | sqlerrd[3] | INTEGER | 一般的にタイマーオンを含み、リソースの必要量の大まかな推定を示す短い浮動小数点値です。所要時間の推定を反映するものではありません。動的に定義されたSQLステートメントを準備する際、このフィールドを準備されたSQLステートメントの相対コストのインジケーターとして使用できます。特定のステートメントについて、この数値はカタログ内の統計の変更に伴って変動する可能性があります。DB2 for z/OSのリリース間で変更されることもあります。 |
| SQLERRD(5) | sqlerrd[4] | INTEGER | PREPAREまたはEXECUTE IMMEDIATEステートメントの構文エラーの位置または列を含みます。 |
| SQLERRD(6) | sqlerrd[5] | INTEGER | 内部エラーコード |
| SQLWARN0 | SQLWARN0 | CHAR(1) | 他のインジケーターのいずれかがWを含む場合はW; さもなければ空白を含みます。 |
| SQLWARN1 | SQLWARN1 | CHAR(1) | ホスト変数に割り当てられたときに文字列列の値が切り捨てられた場合はW。非スクロールカーソルの場合はN、スクロールカーソルの場合はOPEN CURSORまたはALLOCATE CURSORステートメントの後にSが含まれます。サブシステムパラメータDISABSCLがyesに設定されている場合、非スクロールカーソルの場合はこのフィールドはNに設定されません。 |
| SQLWARN2 | SQLWARN2 | CHAR(1) | 列関数の引数からNULL値が除外された場合はW; MIN関数の結果がNULL値の除外に依存していないため、必ずしもWに設定されるわけではありません。 |
| SQLWARN3 | SQLWARN3 | CHAR(1) | 結果カラムの数がホスト変数の数よりも大きい場合はW。ASSOCIATE LOCATORSステートメントで提供された場所がストアドプロシージャが返したものよりも少ない場合はZ |
| SQLWARN4 | SQLWARN4 | CHAR(1) | WHERE句を含まない準備されたUPDATEまたはDELETEステートメントの場合はW。スクロール可能なカーソルの場合、敏感な動的カーソルにはD、非敏感なカーソルにはI、OPEN CURSORまたはALLOCATE CURSORステートメントの後の敏感なカーソルにはS。スクロール不可の場合は空白。DSNZPARM DISABSCLがYESに設定されている場合は、非スクロールカーソルにはNを設定 |
| SQLWARN5 | SQLWARN5 | CHAR(1) | SQL文が実行されなかった場合はW、それがDB2 for z/OXで有効なSQL文でないため。カーソルの能力を反映するために、OPEN CURSORまたはALLOCATE CURSORステートメントの後の1(読み取り専用)、2(読み取りおよび削除)、または3(読み取り、削除、および更新)の文字値。DISABSCLがYESに設定されている場合、非スクロールカーソルにはNを設定しない |
| SQLWARN6 | SQLWARN6 | CHAR(1) | W:DATEまたはTIMESTAMP値に月または年の期間を追加すると無効な日付になる場合。結果を有効にするために日付の値が月の最終日に変更されたことを示す |
| SQLWARN7 | SQLWARN7 | CHAR(1) | W:小数の乗算または除算操作のオペランドとして使用される数の小数部から1つ以上の非ゼロ桁が削除された場合 |
| SQLWARN8 | SQLWARN8 | CHAR(1) | W:変換できない文字が代替文字に置き換えられた場合 |
| SQLWARN9 | SQLWARN9 | CHAR(1) | W:COUNTまたはCOUNT_BIG処理中に算術例外が無視された場合。ストアドプロシージャが複数の結果セットを返す場合はZ |
| SQLWARNA | SQLWARNA | CHAR(1) | W:SQLCAまたはSQLDAの名前またはラベルの少なくとも1つの文字フィールドが文字変換エラーにより無効な場合 |
| SQLSTATE | sqlstate | CHAR(5) | SQL文の最近の実行結果のための戻りコード |
このDb2® 12 for z/OSリファレンスガイドは、z/OS用のDb2での管理およびプログラミングにおけるユーザーの日常活動を支援するために開発されました。このガイドの内容に関して明示的または暗示された保証はありません。ユーザーにとって役立つ品質のリファレンスを提供したいと考えています。このリファレンスガイドの誤りやエラーについては、blogs@bmc.comまでお知らせください。Db2はIBM Corporationの登録商標です。
Db2 ガイド
- Db2 12 for z/OS: 入門
- Db2 12のスカラー関数
- Db2 12のIBM<sup>®</sup>構文ダイアグラムの読み方
- Db2 12の言語要素
- Db2 12の集計関数
- Db2 12のテーブル&行関数
- Db2 12のクエリ
- Db2 12のコマンド
- Db2 12のSQL制御文
- Db2 12の説明テーブル
- Db2 12のDSNZPARM
- Db2 12のバインドパラメータ
- Db2 12の制限
- SQL Communication Area (SQLCA) in Db2 12
- Db2 12のREXX SQLCA
- Db2 12の診断の取得
- Db2 12のIFCIDS
- Db2 12のカタログテーブル
- Db2 12の例外
- Db2 12のXMLスキーマリポジトリテーブル
- Db2 12の更新可能なカタログ統計
- Db2 12のIBMユーティリティ
- Db2 12のSQL正の戻りコード
- Db2 12のSQLエラーロ戻りコード
これらの投稿は私自身のものであり、必ずしもBMCの立場、戦略、または意見を表すものではありません。