SQLCA フィールドの説明
大部分は、COBOL、C、PL/I、およびアセンブラーは SQLCA フィールドに対して同じ名前を使用していますが、FORTRAN は異なる名前を使用します。 ただし、C、PL/I、およびアセンブラーで COBOL と異なる名前も、1 つだけあります。
下表の名前は、SQL INCLUDE ステートメントによって提供される名前です。
アセンブラ、
COBOL、または PL/I Name |
C 名前 |
Fortran 氏名 |
データ の種類 |
目的 |
|---|---|---|---|---|
| SQLCAID | sqlcaid | 使用されません。 | CHAR(8) | ストレージ・ダンプ用の目印。テキスト「SQLCA」が入っています。 動的ステートメントまたはネイティブ SQL プロシージャーの構文解析から行番号情報が戻された場合、6 番目のバイトは「L」。 外部 SQL プロシージャーを処理した場合、6 番目のバイトは設定されない。 |
| SQLCABC | sqlcabc | 使用されません。 | INTEGER | SQLCA の長さ 136 が入る。 |
| SQLCODE (注 1 を参照) | SQLCODE | SQLCOD | INTEGER | SQL 戻りコードが入る。 (注 2 を参照)
|
SQLERRML
(注3参照) |
sqlerrml
(注3参照) |
SQLTXL | SMALLINT | SQLERRMC の長さ標識 (0 から 70 の範囲)。0 は、SQLERRMC の値が適切でないことを意味します。 |
SQLERRMC
(注3参照) |
sqlerrmc
(注3を参照) |
SQLTXT | VARCHAR(70) | X'FF' で分けた 1 つ以上のトークンを含む。このトークンはエラー条件の記述において変数に置き換わる。 これには 切り捨てられたトークンが含まれていることもあります。 メッセージ長が 70 バイトの場合は、切り捨てが行われた可能性があることを示している。 |
| SQLERRP | sqlerrp | SQLERP | CHAR(8) | プロダクト・シグニチャー、およびエラーの場合は、エラーを検出した モジュール名などの診断情報を提供する。 いずれの場合も、最初の3文字は「DSN」です。 Db2 for z/OS® の場合。 |
| SQLERRD(1) | sqlerrd[0] | SQLERR(1) | INTEGER | センシティブ静的カーソルの場合は、カーソル位置が最終行よりも後にあるとき (つまり SQLCODE が +100 と等しいとき) に結果表に行数が入る。 SQL プロシージャーから正常に戻された場合、その SQL プロシージャーからの戻り状況値が入ります。 SQLERRD(1) には内部エラー・コードが入ることもある。 |
| SQLERRD(2) | sqlerrd[1] | SQLERR(2) | INTEGER | センシティブ静的カーソルの場合は、カーソル位置が最終行よりも後にあるとき (つまり SQLCODE が +100 と等しいとき) に結果表に行数が入る。 SQLERRD(2) には内部エラー・コードが入ることもある。 |
| SQLERRD(3) | sqlerrd[2] | SQLERR(3) | INTEGER | DELETE、INSERT、UPDATE、または MERGE ステートメントの後に、削除、挿入、または更新の対象となる行の数が含まれます。 この数は、トリガー、参照整合性制約、またはBUSINESS_TIME期間のFOR PORTION OF句の処理の結果挿入された行の影響を受ける行を除外しています。 データ変更ステートメントを含む SELECT、または SELECT INTO に対するカーソルの OPEN の場合、SQLERRD(3) には組み込みデータ変更ステートメントによる影響を受けた行数が入る。 この値は、SQL ステートメントが失敗した場合は 0 となり、ステートメントの実行中に行われた変更が
すべて取り消されたことを示します。 DELETE ステートメントの場合、 操作がセグメント化表スペースにある表からの一括削除であり、DELETE ステートメントに選択基準が含まれていなかった場合、値は -1 になる。 削除の対象がビューであった場合は、DELETE ステートメントにもビューの定義にも選択基準は含まれていない。 TRUNCATE ステートメントの場合、 値は -1 になる。 PREPARE ステートメントの場合は、選択された行の推定数が入る。 行数が 2,147,483,647 より大きい場合は、2,147,483,647 の値が戻されます。 REFRESH TABLE ステートメントの場合、SQLERRD(3) にはマテリアライズ照会表に挿入された行数が入る。 行セット位置付け FETCH の場合、取り出された行数が入る。 |
| SQLERRD(3) (続き) | SQLCODE -911 と -913 の場合、SQLERRD(3) にはタイムアウトまたはデッドロックの理由コードが入る。 動的ステートメントの構文解析でエラーが発生した場合、あるいはネイティブ SQL プロシージャーの構文解析、バインディング、または実行でエラーが発生した場合、SQLERRD(3) にはエラーが発生した行番号が入ります。 この行番号が有効であるためには、SQLCAID の 6 番目のバイトは「L」でなければなりません。 この値は、ステートメント・ソースに新しい行制御文字が含まれている場合にのみ意味があります。 この情報は、外部 SQL プロシージャーには戻されません。 |
|||
| SQLERRD(4) | sqlerrd[3] | SQLERR(4) | INTEGER | 通常は、必要なリソースの相対見積もりの概算を示す短精度浮動小数点数値である timeron が入る (注 4 を参照)。 これは必要な時間の見積もりは反映しない。 動的に定義された SQL ステートメントを準備する場合には、この フィールドを準備済み SQL ステートメントの相対コストの標識として使用できる。 特定のステートメントについて、この数値は、カタログ内の統計が 変更されることで変わることがある。 また、 Db2 for z/OS のリリース間でも変更される可能性があります。 |
| SQLERRD(5) | sqlerrd[4] | SQLERR(5) | INTEGER | PREPARE ステートメントまたは EXECUTE IMMEDIATE ステートメントの構文エラーの位置 または列が入る。 |
| SQLERRD(6) | sqlerrd[5] | SQLERR(6) | INTEGER | 内部エラー・コードが入る。 |
| SQLWARN0 | SQLWARN0 | SQLWRN(0) | CHAR(1) | 警告状態に他の標識が設定されていない (つまり、他の標識に W または Z が含まれて いない) 場合、ブランクが入る。 少なくとも他に 1 つの標識に W または Z が含まれている場合には、W が入る。 |
| SQLWARN1 | SQLWARN1 | SQLWRN(1) | CHAR(1) | ホスト変数へストリング列を割り当てるときにその値が切り捨て られた場合に、W が入る。 OPEN CURSOR または ALLOCATE CURSOR ステートメントの後に、順方向カーソルの場合には N、両方向スクロール・カーソルの場合には S が入る。 |
| SQLWARN2 | SQLWARN2 | SQLWRN(2) | CHAR(1) | 集約関数の引数から NULL 値が除去された場合に、W が入る。MIN 関数の場合は、NULL 値を除去してもその結果は左右されないため、必ずしも W には設定されない。 |
| SQLWARN3 | SQLWARN3 | SQLWRN(3) | CHAR(1) | 結果列の数がホスト変数の数より多い場合に、W が入る。 ASSOCIATE LOCATORS ステートメントに 指定されたロケーターの数が戻されたストアード・プロシージャーよりも少ない場合には Z が入る。 |
| SQLWARN4 | SQLWARN4 | SQLWRN(4) | CHAR(1) | 準備済みの UPDATE ステートメントまたは DELETE ステートメント に WHERE 文節が含まれていない場合に、W が入る。 両方向スクロール・カーソルの場合、OPEN CURSOR または ALLOCATE CURSOR ステートメントの後に、センシティブ動的カーソルの場合は D、インセンシティブ・カーソルの場合は I、センシティブ静的カーソルの場合は S が入ります。カーソルがスクロールできない場合は空白です。 |
| SQLWARN5 | SQLWARN5 | SQLWRN(5) | CHAR(1) | Db2 for z/OS において有効なSQLステートメントではないため、SQLステートメントが実行されなかった場合はWが格納されます。 OPEN CURSOR または ALLOCATE CURSOR ステートメントの後 に、カーソルの能力を反映するために、1 (読み取り専用)、2 (読み取りおよび削除)、 または 4 (読み取り、削除、更新) の文字値が入る。 |
| SQLWARN6 | SQLWARN6 | SQLWRN(6) | CHAR(1) | DATE 値または TIMESTAMP 値に月または年の期間を足した結果が 無効な日 (例えば 6 月 31 日) となる場合に、W が入る。 正しい結果とするために、日の値がその月の末日に変更されたことを示す。 |
| SQLWARN7 | SQLWARN7 | SQLWRN(7) | CHAR(1) | 10 進数の乗算または除算のオペランドとして使用される数値の 小数部分からゼロでない数字が 1 つ以上除去された場合に、W が入る。 |
| SQLWARN8 | SQLWARN8 | SQLWRX(1) | CHAR(1) | 変換できない文字が置換文字に置き換えられた場合に、W が入る。 信頼された接続を確立しようとして失敗した場合、Yが含まれます。 |
| SQLWARN9 | SQLWARN9 | SQLWRX(2) | CHAR(1) | COUNT または COUNT_BIG の処理中に算術例外が無視された場合に、W が入る。 ストアード・プロシージャーが複数の 結果セットを戻した場合に、Z が入る。 |
| SQLWARNA | SQLWARNA | SQLWRX(3) | CHAR(1) | SQLCA の少なくとも 1 つの文字フィールド、または SQLDA の名前 またはラベルが、文字変換エラーのために無効となった場合に、W が入る。 |
| SQLSTATE | SQLSTATE | SQLSTT | CHAR(5) | 最も新しく実行された SQL ステートメントの結果を表す戻りコード が入る (注 5 を参照)。 |
注:
|
||||