SQL Communication Area (SQLCA) in Db2 12

SQL Communication Area (SQLCA) in Db2 12

  • メインフレーム
6分で読めます 更新日 Apr 1, 2019

ポイント: 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の登録商標です。

これらの投稿は私自身のものであり、必ずしもBMCの立場、戦略、または意見を表すものではありません。

メインフレームの関連記事

The Briefを購読する

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ありがとう

あなたはThe Briefに登録されました
The Briefはメインフレームとエンタープライズオーケストレーション—BMC AMIとControl-M—および、両者に関するアナリストの研究、顧客の展開、イベントをカバーしています。