GET DIAGNOSTICS
GET DIAGNOSTICS ステートメントは、直前に実行された SQL ステートメントに関する情報を取得します。
呼び出し
このステートメントは、アプリケーション・プログラム、SQL 関数、 SQL プロシージャー、またはトリガー内にのみ組み込むことができます。 これを対話式に発行することはできません。これは実行可能ステートメントですが、動的に準備することはできません。REXX で指定してはなりません。
権限
権限は不要です。
構文
.-CURRENT-. >>-GET--+---------+--DIAGNOSTICS--+-statement-information-+---->< '-STACKED-' +-condition-information-+ '-combined-information--' statement-information .-,-------------------------------------------. V | |--+---variable-1-- = --statement-information-item-+--+---------| '-variable-1-- = --DB2_GET_DIAGNOSTICS_DIAGNOSTICS-' condition-information |--CONDITION--+-variable-2-+------------------------------------> '-integer----' .-,------------------------------------------------. V | >----variable-3-- = --+-connection-information-item-+-+---------| '-condition-information-item--' combined-information |--variable-4-- = ----------------------------------------------> (1) >--ALL--+----------------------------------------+--------------| | .-,----------------------------------. | | V | | '---+-STATEMENT----------------------+-+-' '-+-CONDITION--+--+------------+-' '-CONNECTION-' +-variable-5-+ '-integer----'
- STATEMENT は 1 回だけ指定できます。 変数-5 または整数 が指定されていない場合、 CONDITION および CONNECTION は 1 回だけ指定できます。
statement-information-item |--+-COMMAND_FUNCTION----------------+--------------------------| +-COMMAND_FUNCTION_CODE-----------+ +-DB2_DIAGNOSTIC_CONVERSION_ERROR-+ +-DB2_LAST_ROW--------------------+ +-DB2_NUMBER_CONNECTIONS----------+ +-DB2_NUMBER_PARAMETER_MARKERS----+ +-DB2_NUMBER_RESULT_SETS----------+ +-DB2_NUMBER_ROWS-----------------+ +-DB2_NUMBER_SUCCESSFUL_SUBSTMTS--+ +-DB2_RELATIVE_COST_ESTIMATE------+ +-DB2_RETURN_STATUS---------------+ +-DB2_ROW_COUNT_SECONDARY---------+ +-DB2_ROW_LENGTH------------------+ +-DB2_SQL_ATTR_CONCURRENCY--------+ +-DB2_SQL_ATTR_CURSOR_CAPABILITY--+ +-DB2_SQL_ATTR_CURSOR_HOLD--------+ +-DB2_SQL_ATTR_CURSOR_ROWSET------+ +-DB2_SQL_ATTR_CURSOR_SCROLLABLE--+ +-DB2_SQL_ATTR_CURSOR_SENSITIVITY-+ +-DB2_SQL_ATTR_CURSOR_TYPE--------+ +-DB2_SQL_NESTING_LEVEL-----------+ +-DYNAMIC_FUNCTION----------------+ +-DYNAMIC_FUNCTION_CODE-----------+ +-MORE----------------------------+ +-NUMBER--------------------------+ +-ROW_COUNT-----------------------+ +-TRANSACTION_ACTIVE--------------+ +-TRANSACTIONS_COMMITTED----------+ '-TRANSACTIONS_ROLLED_BACK--------' connection-information-item |--+-CONNECTION_NAME---------+----------------------------------| +-DB2_AUTHENTICATION_TYPE-+ +-DB2_AUTHORIZATION_ID----+ +-DB2_CONNECTION_METHOD---+ +-DB2_CONNECTION_NUMBER---+ +-DB2_CONNECTION_STATE----+ +-DB2_CONNECTION_STATUS---+ +-DB2_CONNECTION_TYPE-----+ +-DB2_DYN_QUERY_MGMT -----+ +-DB2_ENCRYPTION_TYPE-----+ +-DB2_PRODUCT_ID----------+ +-DB2_SERVER_CLASS_NAME---+ '-DB2_SERVER_NAME---------'
condition-information-item |--+-CATALOG_NAME------------------+----------------------------| +-CLASS_ORIGIN------------------+ +-COLUMN_NAME-------------------+ +-CONDITION_IDENTIFIER----------+ +-CONDITION_NUMBER--------------+ +-CONSTRAINT_CATALOG------------+ +-CONSTRAINT_NAME---------------+ +-CONSTRAINT_SCHEMA-------------+ +-CURSOR_NAME-------------------+ +-DB2_ERROR_CODE1---------------+ +-DB2_ERROR_CODE2---------------+ +-DB2_ERROR_CODE3---------------+ +-DB2_ERROR_CODE4---------------+ +-DB2_INTERNAL_ERROR_POINTER----+ +-DB2_LINE_NUMBER---------------+ +-DB2_MESSAGE_ID----------------+ +-DB2_MESSAGE_ID1---------------+ +-DB2_MESSAGE_ID2---------------+ +-DB2_MESSAGE_KEY---------------+ +-DB2_MODULE_DETECTING_ERROR----+ +-DB2_NUMBER_FAILING_STATEMENTS-+ +-DB2_OFFSET--------------------+ +-DB2_ORDINAL_TOKEN_n-----------+ +-DB2_PARTITION_NUMBER----------+ +-DB2_REASON_CODE---------------+ +-DB2_RETURNED_SQLCODE----------+ +-DB2_ROW_NUMBER----------------+ +-DB2_SQLERRD_SET---------------+ +-DB2_SQLERRD1------------------+ +-DB2_SQLERRD2------------------+ +-DB2_SQLERRD3------------------+ +-DB2_SQLERRD4------------------+ +-DB2_SQLERRD5------------------+ +-DB2_SQLERRD6------------------+ +-DB2_TOKEN_COUNT---------------+ +-DB2_TOKEN_STRING--------------+ +-MESSAGE_LENGTH----------------+ +-MESSAGE_OCTET_LENGTH----------+ +-MESSAGE_TEXT------------------+ +-PARAMETER_MODE----------------+ +-PARAMETER_NAME----------------+ +-PARAMETER_ORDINAL_POSITION----+ +-RETURNED_SQLSTATE-------------+ +-ROUTINE_CATALOG---------------+ +-ROUTINE_NAME------------------+ +-ROUTINE_SCHEMA----------------+ +-SCHEMA_NAME-------------------+ +-SERVER_NAME-------------------+ +-SPECIFIC_NAME-----------------+ +-SUBCLASS_ORIGIN---------------+ +-TABLE_NAME--------------------+ +-TRIGGER_CATALOG---------------+ +-TRIGGER_NAME------------------+ '-TRIGGER_SCHEMA----------------'
説明
- CURRENT または STACKED
- アクセスする診断領域を指定します。
- CURRENT
- 最初の診断領域にアクセスするように指定します。 これは、直前に実行された SQL ステートメントで、GET DIAGNOSTICS ステートメントでないものに対応します。これはデフォルトです。
- STACKED
- 2 番目の診断領域にアクセスするように指定します。 2 番目の診断領域は、ハンドラー内だけで使用できます。 これはハンドラーに入る前に実行された直前の SQL ステートメントで、 GET DIAGNOSTICS ではないものに対応します。 GET DIAGNOSTICS ステートメントがハンドラー内で最初のステートメントである場合、 最初の診断領域と 2 番目の診断領域には同じ診断情報が含まれます。
- statement-information
- 最後に実行された SQL ステートメントに関する情報を戻します。
- variable-1
- 変数を宣言する規則に従ってプログラム内で宣言された、変数を指定します。
変数をグローバル変数にすることはできません。変数のデータ・タイプは、表 1 で指定の条件情報項目として指定されているデータ・タイプと互換性がなければなりません。変数には、検索割り当てで説明されている検索割り当て規則に従って、指定したステートメント情報項目の値が割り当てられます。その値が変数に割り当てられる際に切り捨てられる場合、
警告 (SQLSTATE 01004) が戻されて診断領域の GET_DIAGNOSTICS_DIAGNOSTICS 項目に
この条件の詳細が追加されて更新されます。
指定の診断項目に診断情報が含まれない場合、 変数はそのデータ・タイプに基づいてデフォルト値に設定されます。
- 厳密な数の値診断項目は 0、
- VARCHAR 診断項目は空ストリング、
- および CHAR 診断項目はブランクです。
- condition-information
- 最後の SQL ステートメントの実行時に生じた 1 つ以上の条件に関する情報を戻します。
- CONDITION variable-2 または integer
- 情報が要求された診断を識別します。 SQL ステートメントを実行する際に生じる診断ごとに、1 つの整数が割り当てられます。 値 1 は最初の診断を示し、2 は 2 番目の診断を示し、以下同様となります。 値が 1 の場合、検索される診断情報は (GET DIAGNOSTICS ステートメント以外の) 直前の SQL ステートメントの 実行によって実際に戻された SQLSTATE 値によって示される条件に対応します。 指定される変数は、位取りがゼロの真数変数の宣言規則に従ってプログラム内で宣言される必要があり、グローバル変数であってはなりません。 指定される値は、1 より小さくてはならず、使用可能な診断の数よりも大きくてもなりません。
- variable-3
- 変数を宣言する規則に従ってプログラム内で宣言された、変数を指定します。
変数をグローバル変数にすることはできません。変数のデータ・タイプは、表 1 で指定の条件情報項目として指定されているデータ・タイプと互換性がなければなりません。変数には、検索割り当てで説明されている検索割り当て規則に従って、指定した条件情報項目の値が割り当てられます。その値が変数に割り当てられる際に切り捨てられる場合、
エラーが戻されて診断領域の GET_DIAGNOSTICS_DIAGNOSTICS 項目に
この条件の詳細が追加されて更新されます。
指定の診断項目に診断情報が含まれない場合、 変数はそのデータ・タイプに基づいてデフォルト値に設定されます。
- 厳密な数の値診断項目は 0、
- VARCHAR 診断項目は空ストリング、
- および CHAR 診断項目はブランクです。
- combined-information
- 1 つのストリングに結合された複数の情報を戻します。
- variable-4
- 変数を宣言する規則に従ってプログラム内で宣言された、変数を指定します。 変数をグローバル変数にすることはできません。変数のデータ・タイプは、VARCHAR でなければなりません。 変数は、検索割り当てで説明されている検索割り当て規則に従って割り当てられます。variable-4 の長さが、戻される診断ストリング全体を保持するのに十分な長さでない場合、ストリングは切り捨てられ、エラーが戻されて診断領域の GET_DIAGNOSTICS_DIAGNOSTICS 項目にこの条件の詳細が追加されて更新されます。
- ALL
- 最後に実行された SQL ステートメントに設定されたすべての診断項目を、
1 つのストリングに結合するように指示します。
ストリングの形式は、
以下の形式による、使用可能なすべての診断情報を含むセミコロンで分離したリストです。
文字形式による正の数値には、先頭の正符号 (+) は含まれません。 ただし、項目が DB2_RETURNED_SQLCODE のときは例外です。 その場合には、先頭に正符号 (+) が追加されます。 例えば、次のようになります。項目名=文字形式による項目値;
診断情報を含む項目だけが、ストリングに含まれます。 このストリング内には、DB2_GET_DIAGNOSTICS_DIAGNOSTICS および DB2_SQL_NESTING_LEVEL 項目についてのエントリーもありません。NUMBER=1;RETURNED_SQLSTATE=02000;DB2_RETURNED_SQLCODE=+100;
- STATEMENT
- 最後に実行された SQL ステートメントの診断項目を含む すべてのステートメント情報項目 診断項目を、 1 つのストリングに結合するように指示します。 形式は、ALL についての上記の説明と同じです。
- CONDITION
- 最後に実行された SQL ステートメントの診断情報を含む条件情報項目 診断項目を、1 つのストリングに結合するように指示します。variable-5 または integer を指定した場合、その形式は ALL オプションについての上記の説明と同じになります。variable-5 または integer を指定しない場合、その形式には情報の先頭に、以下の形式による条件に対する条件番号項目が含まれます。
X は、条件の番号です。 例えば、次のようになります。CONDITION_NUMBER=X;item-name=character-form-of-the-item-value;
CONDITION_NUMBER=1;RETURNED_SQLSTATE=02000;DB2_RETURNED_SQLCODE=+100; CONDITION_NUMBER=2;RETURNED_SQLSTATE=01004;
- CONNECTION
- 最後に実行された SQL ステートメントの診断項目を含む
接続情報項目 診断項目を、1 つのストリングに結合するように指示します。
variable-5 または integer を指定した場合、その形式は ALL についての上記の説明と同じになります。variable-5 または integer を指定しない場合、その形式には情報の先頭に、以下の形式による条件に対する接続番号項目が含まれます。
X は、条件の番号です。 例えば、次のようになります。DB2_CONNECTION_NUMBER=X;item-name=character-form-of-the-item-value;
DB2_CONNECTION_NUMBER=1;CONNECTION_NAME=SVL1;DB2_PRODUCT_ID=DSN07010;
- variable-5 または integer
- ALL CONDITION または ALL CONNECTION 情報が要求された診断を識別します。 指定された変数は、整変数の宣言の規則に従ってプログラムで宣言されていなければなりません。変数をグローバル変数にすることはできません。指定される値は、1 より小さくてはならず、使用可能な診断の数よりも大きくてもなりません。
ステートメント情報項目
- COMMAND_FUNCTION
- 直前の SQL ステートメントの名前を戻します。 ステートメント・ストリング値についての詳細は、 表 2 を参照してください。
- COMMAND_FUNCTION_CODE
- 直前の SQL ステートメントを識別する整数を戻します。 ステートメント・コード値についての詳細は、 表 2 を参照してください。
- DB2_DIAGNOSTIC_CONVERSION_ERROR
- GET DIAGNOSTICS ステートメント値の 1 つのために文字データ値を変換するとき 変換エラーが生じた場合、値の 1 を戻します。 その他の場合は、値 0 を戻します。
- DB2_GET_DIAGNOSTICS_DIAGNOSTICS
- GET DIAGNOSTICS ステートメントの後に、GET DIAGNOSTICS ステートメントの実行中に
エラーまたは警告が生じた場合、DB2_GET_DIAGNOSTICS_DIAGNOSTICS はそれらのエラーまたは警告に
関するテキスト情報を戻します。
この情報の形式は、GET DIAGNOSTICS :hv = ALL ステートメントで戻される形式に似ています。
サーバーの DRDA® レベルが要求元のクライアントよりも低い場合など、 サーバーが理解できない情報項目についての要求が出された場合は、 DB2_GET_DIAGNOSTICS_DIAGNOSTICS はテキスト 'Item not supported:' に続けて、 要求されてはいてもサーバーがサポートしていない項目名のコンマで区切られたリストを戻します。
- DB2_LAST_ROW
- multiple-row-fetch ステートメント
の場合、取り出された行のセットに、結果表に現在ある最後の行 (順方向に取り出しているカーソルの場合) が
含まれているか、結果表に現在ある最初の行 (逆方向に取り出しているカーソルの場合) が
含まれていると、値 +100 が戻されることがあります。戻された行の数が要求した行の数に等しい場合は、
データ終わりの警告は発生しないことがあり、DB2_LAST_ROW は +100 に設定されないことがあります。
更新に影響を受けにくいカーソルの場合に DB2_LAST_ROW の値 +100 が戻されると、 以降の FETCH は、SQLCODE が +100 に、SQLSTATE が「02000」に設定されて戻ります。 更新に影響を受けやすいカーソルの場合は、以降の FETCH は、 FETCH が実行される前に挿入された行があれば、 より多くのデータを戻すことがあります。
multiple-row-fetch ステートメント 以外のステートメントの場合、または、結果表に現在ある最後の行 (順方向に取り出しているカーソルの場合) を含んでいないか、 結果表に現在ある最初の行 (逆方向に取り出しているカーソルの場合) を含んで いない multiple-row-fetch ステートメントの場合、または、サーバーが SQLCA のみを戻す場合、 ゼロ値が戻されます。
- DB2_NUMBER_CONNECTIONS
- クライアントの要求を実行するサーバーを取得するために確立された接続の数を戻します。 それぞれの接続は、単一の条件に対して入手可能となる接続情報の項目領域を生成することがあります。
- DB2_NUMBER_PARAMETER_MARKERS
- PREPARE ステートメントの場合、 準備済みステートメント内のパラメーター・マーカーの数を戻します。 その他の場合は、値 0 を戻します。
- DB2_NUMBER_RESULT_SETS
- CALL ステートメントの場合は、プロシージャーから戻された結果セットの実際の数を戻します。 その他の場合は、値 0 を戻します。
- DB2_NUMBER_ROWS
- 直前の SQL ステートメントが OPEN または FETCH であり、 それによって結果表のサイズが判明した場合、結果表の行数を戻します。 SENSITIVE カーソルでは、挿入および削除される行はこの値の次回の検索に影響を与えるので、 この値は近似とみなされます。 その他の場合は、値 0 を戻します。
- DB2_NUMBER_SUCCESSFUL_SUBSTMTS
- 組み込み複合 SQL ステートメントでは、成功したサブステートメントの数を戻します。 その他の場合は、値 0 を戻します。
- DB2_RELATIVE_COST_ESTIMATE
- PREPARE ステートメントの場合は、 すべての実行で必要なリソースの相対的なコストの見積もりを戻します。 必要な時間の見積もりは反映されません。 動的に定義されるステートメントを準備するとき、 この値は準備するステートメントの相対コストの標識として使用できます。 この値は統計の変更に応じてさまざまであり、 製品のリリースごとに異なることがあります。 これはオプティマイザーによって選択されたアクセス・プランの見積もりコストです。 ステートメントが PREPARE ステートメントではない場合、値のゼロが戻されます。
- DB2_RETURN_STATUS
- 直前の SQL CALL ステートメントから戻された状況値を識別します。
直前のステートメントが CALL ステートメントでない場合は、戻される値は意味がなく、予測不能です。
詳しくは、戻り (RETURN) ステートメントを参照してください。
その他の場合は、値 0 を戻します。
外部プロシージャーについては、SQLCODE < 0 が戻された場合は、SQL_ERROR_CODE1 および DB2_RETURN_STATUS は -1 に設定され、それ以外の場合は、SQL_ERROR_CODE1 および DB2_RETURN_STATUS は 0 に設定されます。
- DB2_ROW_COUNT_SECONDARY
- 直前に実行された SQL ステートメントの 2 次アクションに関連付けられた行数を識別します。
直前の SQL ステートメントが DELETE または MERGE の場合、この値はカスケードされたアクションを含む参照制約、および活動化されたトリガーからのトリガー SQL ステートメントの処理の影響を受ける合計行数です。直前の SQL ステートメントが INSERT または UPDATE の場合、この値は、活動化されたトリガーからのトリガー SQL ステートメントの処理の結果として影響を受ける合計行数です。
その他の場合は、値 0 を戻します。
分離レベルのコミット不可を使用して SQL ステートメントが実行される場合、この値はゼロになる場合があります。
- DB2_ROW_LENGTH
- FETCH ステートメントの場合は、取り出された行の長さを戻します。 その他の場合は、値 0 を戻します。
- DB2_SQL_ATTR_CONCURRENCY
- OPEN ステートメントの場合、読み取り専用、ロッキング、楽観的使用のタイム・スタンプ、
または楽観的使用の値についての、並行性制御オプションを示します。
- R は、読み取り専用を示します。
- L は、ロッキングを示します。
- T は、タイム・スタンプまたは ROWID を使用して行バージョンを比較することを示します。
- V は、値を比較することを示します。
- DB2_SQL_ATTR_CURSOR_CAPABILITY
- OPEN ステートメントの場合、
カーソルが読み取り専用、削除可能、または更新可能であるかどうかという、カーソルの機能を示します。
- R は、カーソルが読み取り専用であることを示します。
- D は、カーソルを使用して読み取りおよび削除できることを示します。
- U は、カーソルを使用して読み取り、削除、および更新ができることを示します。
- DB2_SQL_ATTR_CURSOR_HOLD
- OPEN ステートメントの場合、カーソルを複数の作業単位に渡って
オープンしたままにできるかどうかを示します。
- N は、このカーソルが複数の作業単位に渡ってオープンしたままにはならないことを示します。
- Y は、このカーソルが複数の作業単位に渡ってオープンしたままになることを示します。
- DB2_SQL_ATTR_CURSOR_ROWSET
- OPEN ステートメントの場合、行セットによる位置指定を使用して
カーソルにアクセスできるかどうかを示します。
- N は、このカーソルが行で位置指定する操作だけをサポートすることを示します。
- Y は、このカーソルが行セットによる位置指定をサポートすることを示します。
- DB2_SQL_ATTR_CURSOR_SCROLLABLE
- OPEN ステートメントの場合、カーソルを前方および後方にスクロールできるかどうかを示します。
- N は、このカーソルがスクロール可能ではないことを示します。
- Y は、このカーソルがスクロール可能であることを示します。
- DB2_SQL_ATTR_CURSOR_SENSITIVITY
- OPEN ステートメントの場合、カーソルが他の接続によるカーソル行の更新を表示するかどうかを示します。
- I は、反応しないことを示します。
- P は、部分的に反応することを示します。
- S は、反応することを示します。
- U は、指定されていないことを示します。
- DB2_SQL_ATTR_CURSOR_TYPE
- OPEN ステートメントの場合、
カーソル・タイプが動的、転送のみ、または静的であるかどうかを示します。
- D は、動的カーソルを示します。
- F は、前進のみのカーソルを示します。
- S は、静的カーソルを示します。
- DB2_SQL_NESTING_LEVEL
- GET DIAGNOSTICS ステートメントが実行されたときに有効になっていたネストまたは再帰の現行レベルを識別します。
各ネスト・レベルは、関数、プロシージャー、またはトリガーのネスト呼び出しまたは再帰的呼び出しに対応しています。GET DIAGNOSTICS ステートメントがネストのレベル外で実行される場合、値ゼロが戻されます。
並行して実行しているユーザー定義関数内で GET DIAGNOSTICS が 発行される場合、ネスト・レベルは予測不能です。
- DYNAMIC_FUNCTION
- 動的に準備または実行される SQL ステートメントのタイプを示す、文字ストリングを戻します。 ステートメント・ストリング値についての詳細は、 表 2 を参照してください。
- DYNAMIC_FUNCTION_CODE
- 動的に準備または実行される SQL ステートメントのタイプを示す、数値を戻します。 ステートメント・コード値についての詳細は、 表 2 を参照してください。
- MORE
- 処理可能な数よりも多くのエラーが発生したかどうかを示します。
- N は、直前の SQL ステートメントによるすべてのエラーと警告が、診断領域に保管されたことを示します。
- Y は、直前の SQL ステートメントによって発生したエラーと警告の数が、 診断領域内の条件領域の数よりも多いことを示します。 診断領域の最大サイズは 90K です。
- NUMBER
- 直前の GET DIAGNOSTICS ステートメント以外の SQL ステートメントの実行によって検出された、 診断領域に保管されたエラーと警告の数を戻します。 直前の SQL ステートメントが成功 (SQLSTATE 00000) を戻したか、 または実行された直前の SQL ステートメントが存在しない場合、戻される数値は 1 となります。 GET DIAGNOSTICS ステートメントそのものは SQLSTATE パラメーターを介して情報を戻すことがありますが、 DB2_GET_DIAGNOSTICS_DIAGNOSTICS 項目を除いて、診断領域の以前の内容を変更することはありません。
- ROW_COUNT
- 直前に実行された SQL ステートメントに関連付けられた行数を識別します。 直前の SQL ステートメントが DELETE、INSERT、REFRESH、または UPDATE ステートメント の場合、ROW_COUNT は、そのステートメントによって削除、挿入、または 更新された行数を識別します (ただし、トリガーまたは参照保全制約の影 響を受けている行は除きます)。 直前の SQL ステートメントが MERGE ステートメントの場合、ROW_COUNT は、そのステートメントによって削除、挿入、および更新された合計行数を識別します (ただし、トリガーまたは参照保全制約の影響を受けている行は除きます)。直前の SQL ステートメントが複数行の 複数行取り出し、ROW_COUNT は取り出される行数を示します。 その他の場合は、値 0 を戻します。
- TRANSACTION_ACTIVE
- SQL トランザクションが現在アクティブであれば値の 1 を戻し、 SQL トランザクションが現在アクティブでなければ 0 を戻します。
- TRANSACTIONS_COMMITTED
- 直前のステートメントが CALL であった場合、 SQL または外部プロシージャーの実行中にコミットされたトランザクション数を戻します。 その他の場合は、値 0 を戻します。
- TRANSACTIONS_ROLLED_BACK
- 直前のステートメントが CALL であった場合、 SQL または外部プロシージャーの実行中にロールバックされたトランザクション数を戻します。 その他の場合は、値 0 を戻します。
接続情報項目
- CONNECTION_NAME
- 直前の SQL ステートメントが CONNECT、DISCONNECT、または SET CONNECTION の場合、 直前のステートメントで指定されたサーバー名を戻します。 その他の場合、現行接続の名前を戻します。
- DB2_AUTHENTICATION_TYPE
- 認証タイプがサーバーかクライアントかを示します。
- C は、クライアント認証を示します。
- E は、DCE セキュリティー・サービス認証を示します。
- S は、サーバー認証を示します。
- DB2_AUTHORIZATION_ID
- 接続先のサーバーによって使用される認証 ID を戻します。 ユーザー ID の翻訳および与信の出口プログラムのため、 ローカルのユーザー ID はサーバーが使用する認証 ID と異なることがあります。
- DB2_CONNECTION_METHOD
- CONNECT または SET CONNECTION ステートメントでは、接続メソッドを戻します。
- D は、*DUW (分散作業単位) を戻します。
- R は、*RUW (リモート作業単位) を戻します。
- DB2_CONNECTION_NUMBER
- 接続の数を戻します。
- DB2_CONNECTION_STATE
- 接続状態が、接続かどうかを示します。
- -1 は、接続が未接続であることを示します。
- 1 は、接続が接続であることを示します。
- DB2_CONNECTION_STATUS
- コミット可能な更新を実行できるかどうかを示します。
- 1 は、この作業単位の接続で、コミット可能な更新を行うことができることを示します。
- 2 は、この作業単位の接続で、コミット可能な更新を行うことはできないことを示します。
- DB2_CONNECTION_TYPE
- 接続タイプ (ローカル、リモート、またはドライバー・プログラム)、
および会話が保護されているかどうかを示します。
- 1 は、ローカルのリレーショナル・データベースとの接続を示します。
- 2 は、会話が保護されない、遠隔のリモート・リレーショナル・データベースとの接続を示します。
- 3 は、会話が保護される、遠隔のリモート・リレーショナル・データベースとの接続を示します。
- 4 は、アプリケーション・リクエスターのドライバー・プログラムとの接続を示します。
- DB2_DYN_QUERY_MGMT
- DYN_QUERY_MGMT データベース構成パラメーターが使用可能である場合、 値の 1 を戻します。 その他の場合は、値 0 を戻します。
- DB2_ENCRYPTION_TYPE
- 暗号化のレベルを戻します。
- A は、認証されたトークン (認証 ID およびパスワード) だけが暗号化されることを示します。
- D は、すべてのデータが接続のために暗号化されていることを示します。
- DB2_PRODUCT_ID
- 製品シグニチャーを戻します。アプリケーション・サーバーが IBM® リレーショナル・データベースのプロダクトである場合、形式は pppvvrrm となります。ここで、
- ppp は、以下のようにプロダクトを示します。ARI は DB2® (VM および VSE 版)、DSN は DB2 for z/OS®、QSQ は DB2 for i、および SQL は他のすべての DB2 プロダクトです。
- vv は、2 桁のバージョン ID です (例えば、'04' など)。
- rr は、2 桁のリリース ID です (例えば、'01' など)。
- m は、1 桁のモディフィケーション・レベルを示します (例えば、'0' など)。
- DB2_SERVER_CLASS_NAME
- サーバー・クラス名を戻します。 例えば、DB2 for z/OS、DB2 for AIX®、DB2 for Windows、および DB2 for i などです。
- DB2_SERVER_NAME
- CONNECT または SET CONNECTION ステートメントの場合、リレーショナル・データベース名を戻します。 その他の場合は、空ストリングを戻します。
条件情報項目
- CATALOG_NAME
- 戻される SQLSTATE が、
- クラス 09 (トリガー・アクション例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 27 (トリガー・データ変更違反)、または
- 40002 (トランザクション・ロールバック - 保全性制約違反) の場合、
戻される SQLSTATE がクラス 42 (構文エラーまたはアクセス規則違反) の場合、 エラーを生じた表のサーバー名を戻します。
戻される SQLSTATE がクラス 44 (WITH CHECK OPTION 違反) の場合、 エラーを生じたビューのサーバー名を戻します。 その他の場合は、空ストリングを戻します。
- CLASS_ORIGIN
- クラスが ISO 9075 で定義されている SQLSTATE に対しては、'ISO 9075' を戻します。 クラスが SQL/MM で定義されている SQLSTATE に対しては、'ISO/IEC 13249' を戻します。 クラスが IBM DB2 SQL で定義されている SQLSTATE に対しては、'DB2 SQL' を戻します。使用可能であれば、ユーザー作成コードによって設定された値を戻します。 その他の場合は、空ストリングを戻します。
- COLUMN_NAME
- 戻される SQLSTATE がクラス 42 (構文エラーまたはアクセス規則違反) であり、 エラーがアクセス不能な列によって生じた場合は、 エラーを生じた表のサーバー名を戻します。 その他の場合は、空ストリングを戻します。
- CONDITION_IDENTIFIER
- RETURNED_SQLSTATE の値が 未処理のユーザー定義例外 (SQLSTATE 45000) に対応する場合、 そのユーザー定義例外の条件名を戻します。
- CONDITION_NUMBER
- 条件の数を戻します。
- CONSTRAINT_CATALOG
- 戻される SQLSTATE が、
- クラス 23 (保全性制約違反)、または
- クラス 27 (トリガー・データ変更違反)、または
- 40002 (トランザクション・ロールバック - 保全性制約違反) の場合、
- CONSTRAINT_NAME
- 戻される SQLSTATE が、
- クラス 23 (保全性制約違反)、または
- クラス 27 (トリガー・データ変更違反)、または
- 40002 (トランザクション・ロールバック - 保全性制約違反) の場合、
- CONSTRAINT_SCHEMA
- 戻される SQLSTATE が、
- クラス 23 (保全性制約違反)、または
- クラス 27 (トリガー・データ変更違反)、または
- 40002 (トランザクション・ロールバック - 保全性制約違反) の場合、
- CURSOR_NAME
- 戻される SQLSTATE がクラス 24 (無効なカーソル状態) の場合、 カーソル名を戻します。 その他の場合は、空ストリングを戻します。
- DB2_ERROR_CODE1
- 内部エラー・コードを戻します。 その他の場合は、値 0 を戻します。
- DB2_ERROR_CODE2
- 内部エラー・コードを戻します。 その他の場合は、値 0 を戻します。
- DB2_ERROR_CODE3
- 内部エラー・コードを戻します。 その他の場合は、値 0 を戻します。
- DB2_ERROR_CODE4
- 内部エラー・コードを戻します。 その他の場合は、値 0 を戻します。
- DB2_INTERNAL_ERROR_POINTER
- いくつかのエラーについては、これは内部エラー・ポインターである負の値となります。 その他の場合は、値 0 を戻します。
- DB2_LINE_NUMBER
- SQL プロシージャー本体を構文解析中にエラーが 検出された SQL 関数、SQL プロシージャー、または SQL トリガーの CREATE PROCEDURE では、 エラーが生じた可能性のある行番号を戻します。 その他の場合は、値 0 を戻します。
- DB2_MESSAGE_ID
- MESSAGE_TEXT に対応するメッセージ ID を戻します。
- DB2_MESSAGE_ID1
- このエラーを最初に生じた、基礎となる IBM i CPF エスケープ・メッセージを戻します。 その他の場合は、空ストリングを戻します。
- DB2_MESSAGE_ID2
- このエラーを最初に生じた、基礎となる IBM i CPD 診断メッセージを戻します。 その他の場合は、空ストリングを戻します。
- DB2_MESSAGE_KEY
- CALL ステートメントの場合、プロシージャーが正常に実行されなかった原因となった、 エラーの IBM i メッセージ・キーを戻します。 DELETE、INSERT、または UPDATE ステートメント内のトリガー・エラーの場合、 トリガー・プログラムからシグナルで通知されたエラーのメッセージ・キーを戻します。 IBM i QMHRCVPM API は、そのメッセージ・キーおよびメッセージ・データのメッセージ記述を戻すために使用できます。 その他の場合は、値 0 を戻します。
- DB2_MODULE_DETECTING_ERROR
- どのモジュールがエラーを検出したかを示す ID を戻します。 ルーチンから発行される SIGNAL ステートメントの場合、値 'ROUTINE' を戻します。 その他の SIGNAL ステートメントの場合、値 'PROGRAM' を戻します。
- DB2_NUMBER_FAILING_STATEMENTS
- NOT ATOMIC 組み込みコンパウンド SQL ステートメントの場合、 失敗したステートメントの数を戻します。 その他の場合は、値 0 を戻します。
- DB2_OFFSET
- SQL プロシージャー本体を構文解析中にエラーが 検出された SQL プロシージャーの CREATE PROCEDURE では、 使用可能な場合、エラーが生じた可能性のある行番号へのオフセットを戻します。 ソース・ステートメントを構文解析中にエラーが検出された EXECUTE IMMEDIATE または PREPARE ステートメントでは、 エラーが生じた可能性のあるソース・ステートメントへのオフセットを戻します。 その他の場合は、値 0 を戻します。
- DB2_ORDINAL_TOKEN_n
- n 番目のトークンを戻します。 n は、1 から 100 までの値でなければなりません。 例えば、DB2_ORDINAL_TOKEN_1 は最初のトークンを戻し、 DB2_ORDINAL_TOKEN_2 は 2 番目のトークンを戻します。 トークンの数値は、戻される前に文字に変換されます。 トークンの値が存在しない場合、空ストリングを戻します。
- DB2_PARTITION_NUMBER
- パーティション・データベースの場合、 エラーまたは警告が検出されたデータベース・パーティションのパーティション番号を戻します。 エラーまたは警告が検出されなかった場合、 現行ノードのパーティション番号を戻します。 その他の場合は、値 0 を戻します。
- DB2_REASON_CODE
- メッセージ・テキスト内に理由コード・トークンがあるエラーの理由コードを戻します。 その他の場合は、値 0 を戻します。
- DB2_RETURNED_SQLCODE
- 指定された診断の SQLCODE を戻します。
- DB2_ROW_NUMBER
- 直前の SQL ステートメントが複数行の挿入または複数行の取り出しである場合、 条件が検出された行の番号が使用可能で適用可能な場合、その値を戻します。 その他の場合は、値 0 を戻します。
- DB2_SQLERRD_SET
- DB2_SQLERRD1 から DB2_SQLERRD6 の項目が設定可能であることを示すには、Y を戻します。 その他の場合は、ブランクを戻します。
- DB2_SQLERRD1
- サーバーによって戻された SQLCA から、値の SQLERRD(1) を戻します。
- DB2_SQLERRD2
- サーバーによって戻された SQLCA から、値の SQLERRD(2) を戻します。
- DB2_SQLERRD3
- サーバーによって戻された SQLCA から、値の SQLERRD(3) を戻します。
- DB2_SQLERRD4
- サーバーによって戻された SQLCA から、値の SQLERRD(4) を戻します。
- DB2_SQLERRD5
- サーバーによって戻された SQLCA から、値の SQLERRD(5) を戻します。
- DB2_SQLERRD6
- サーバーによって戻された SQLCA から、値の SQLERRD(6) を戻します。
- DB2_TOKEN_COUNT
- 指定された診断での、使用可能なトークンの数を戻します。
- DB2_TOKEN_STRING
- 指定された診断についての、X'FF' 区切り文字で区切られているトークンのストリングを戻します。
- MESSAGE_LENGTH
- 直前に実行された SQL ステートメントから戻されたエラー、警告、 または正常な完了のメッセージ・テキストの長さを (文字数で) 示します。
- MESSAGE_OCTET_LENGTH
- 直前に実行された SQL ステートメントから戻されたエラー、警告、 または正常な完了のメッセージ・テキストの長さを (バイト数で) 示します。
- MESSAGE_TEXT
- 直前に実行された SQL ステートメントから戻されたエラー、警告、
または正常な完了のメッセージ・テキストを示します。
SQLCODE が 0 の場合は、空ストリングが戻されます。これは、RETURNED_SQLSTATE の値が警告状態を示す場合にも該当します。
- PARAMETER_MODE
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- PARAMETER_NAME
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- PARAMETER_ORDINAL_POSITION
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- RETURNED_SQLSTATE
- 指定された診断の SQLSTATE を戻します。
- ROUTINE_CATALOG
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- ROUTINE_NAME
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- ROUTINE_SCHEMA
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- SCHEMA_NAME
- 戻される SQLSTATE が、
- クラス 09 (トリガー・アクション例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 27 (トリガー・データ変更違反)、または
- 40002 (トランザクション・ロールバック - 保全性制約違反) の場合、
戻される SQLSTATE がクラス 42 (構文エラーまたはアクセス規則違反) の場合、 エラーを生じた表のスキーマ名を戻します。
戻される SQLSTATE がクラス 44 (WITH CHECK OPTION 違反) の場合、 エラーを生じたビューのスキーマ名を戻します。 その他の場合は、空ストリングを戻します。
- SERVER_NAME
- 直前の SQL ステートメントが CONNECT、DISCONNECT、または SET CONNECTION の場合、 直前のステートメントで指定されたサーバー名を戻します。 その他の場合、ステートメントが実行されたサーバーの名前を戻します。
- SPECIFIC_NAME
- 戻される SQLSTATE が、
- クラス 39 (外部ルーチン呼び出し例外)、または
- クラス 38 (外部ルーチン例外)、または
- クラス 2F (SQL ルーチン例外)、または
- クラス 22 (データ例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 01 (警告)
- SUBCLASS_ORIGIN
- サブクラスが ISO 9075 で定義されている SQLSTATE に対しては、'ISO 9075' を戻します。 サブクラスが RDA で定義されている SQLSTATE に対しては、'ISO/IEC 9579' を戻します。 サブクラスが SQL/MM で定義されている SQLSTATE に対しては、 'ISO/IEC 13249-1'、'ISO/IEC 13249-2'、 'ISO/IEC 13249-3'、'ISO/IEC 13249-4'、 または 'ISO/IEC 13249-5' を戻します。 サブクラスが IBM DB2 SQL で定義されている SQLSTATE に対しては、'DB2 SQL' を戻します。使用可能であれば、ユーザー作成コードによって設定された値を戻します。 その他の場合は、空ストリングを戻します。
- TABLE_NAME
- 戻される SQLSTATE が、
- クラス 09 (トリガー・アクション例外)、または
- クラス 23 (保全性制約違反)、または
- クラス 27 (トリガー・データ変更違反)、または
- 40002 (トランザクション・ロールバック - 保全性制約違反) の場合、
戻される SQLSTATE がクラス 42 (構文エラーまたはアクセス規則違反) の場合、 エラーを生じた表の名前を戻します。
戻される SQLSTATE がクラス 44 (WITH CHECK OPTION 違反) の場合、 エラーを生じた表の名前を戻します。 その他の場合は、空ストリングを戻します。
- TRIGGER_CATALOG
- 戻される SQLSTATE が、
- クラス 09 (トリガー・アクション例外)、または
- クラス 27 (トリガー・データ変更違反) の場合、
- TRIGGER_NAME
- 戻される SQLSTATE が、
- クラス 09 (トリガー・アクション例外)、または
- クラス 27 (トリガー・データ変更違反) の場合、
- TRIGGER_SCHEMA
- 戻される SQLSTATE が、
- クラス 09 (トリガー・アクション例外)、または
- クラス 27 (トリガー・データ変更違反) の場合、
注
診断領域に関する考慮事項: GET DIAGNOSTICS ステートメントは、DB2_GET_DIAGNOSTICS_DIAGNOSTICS を除き、診断領域の内容を変更することはありません。
- エラーに関する情報が必要な場合、GET DIAGNOSTICS ステートメントは、エラーを処理するハンドラー内に 指定される最初の実行可能ステートメントでなければなりません。
- 警告に関する情報が必要な場合:
- ハンドラーがその警告条件に対する制御を取得する場合、GET DIAGNOSTICS ステートメントは、そのハンドラーに指定された最初のステートメント でなければなりません。
- ハンドラーがその警告条件に対する制御を取得しない場合、GET DIAGNOSTICS ステートメントは、その直前のステートメントの次に実行され るステートメントでなければなりません。
それ以外の場合、GET DIAGNOSTICS ステートメント は、最後に実行されたステートメントに関する情報を戻します。
SQLCODE および SQLSTATE SQL 変数に関する考慮事項: GET DIAGNOSTICS ステートメントは、SQLSTATE および SQLCODE SQL 変数の値を変更することはありません。
戻り値の大文字小文字の区別: 戻される診断項目に含まれる ID の値は、 引用符で区切られず、大文字小文字を区別します。 例えば、表の名前 "abc" は単に abc として戻されます。
変数の割り当て: 割り当てエラーが発生すると、変数の値は予測不能になります。
項目のデータ・タイプ: 以下の表は、 診断項目ごとの SQL データ・タイプを示しています。 診断項目が変数に割り当てられるとき、変数は診断項目のデータ・タイプと互換性がなければなりません。
項目名 | データ・タイプ |
---|---|
ステートメント情報項目 | |
COMMAND_FUNCTION | VARCHAR(128) |
COMMAND_FUNCTION_CODE | INTEGER |
DB2_DIAGNOSTIC_CONVERSION_ERROR | INTEGER |
DB2_GET_DIAGNOSTICS_DIAGNOSTICS | VARCHAR(32740) |
DB2_LAST_ROW | INTEGER |
DB2_NUMBER_CONNECTIONS | INTEGER |
DB2_NUMBER_PARAMETER_MARKERS | INTEGER |
DB2_NUMBER_RESULT_SETS | INTEGER |
DB2_NUMBER_ROWS | DECIMAL(31,0) |
DB2_NUMBER_SUCCESSFUL_SUBSTMTS | INTEGER |
DB2_RELATIVE_COST_ESTIMATE | INTEGER |
DB2_RETURN_STATUS | INTEGER |
DB2_ROW_COUNT_SECONDARY | DECIMAL(31,0) |
DB2_ROW_LENGTH | INTEGER |
DB2_SQL_ATTR_CONCURRENCY | CHAR(1) |
DB2_SQL_ATTR_CURSOR_CAPABILITY | CHAR(1) |
DB2_SQL_ATTR_CURSOR_HOLD | CHAR(1) |
DB2_SQL_ATTR_CURSOR_ROWSET | CHAR(1) |
DB2_SQL_ATTR_CURSOR_SCROLLABLE | CHAR(1) |
DB2_SQL_ATTR_CURSOR_SENSITIVITY | CHAR(1) |
DB2_SQL_ATTR_CURSOR_TYPE | CHAR(1) |
DB2_SQL_NESTING_LEVEL | INTEGER |
DYNAMIC_FUNCTION | VARCHAR(128) |
DYNAMIC_FUNCTION_CODE | INTEGER |
MORE | CHAR(1) |
NUMBER | INTEGER |
ROW_COUNT | DECIMAL(31,0) |
TRANSACTION_ACTIVE | INTEGER |
TRANSACTIONS_COMMITTED | INTEGER |
TRANSACTIONS_ROLLED_BACK | INTEGER |
接続情報項目 | |
CONNECTION_NAME | VARCHAR(128) |
DB2_AUTHENTICATION_TYPE | CHAR(1) |
DB2_AUTHORIZATION_ID | VARCHAR(128) |
DB2_CONNECTION_METHOD | CHAR(1) |
DB2_CONNECTION_NUMBER | INTEGER |
DB2_CONNECTION_STATE | INTEGER |
DB2_CONNECTION_STATUS | INTEGER |
DB2_CONNECTION_TYPE | SMALLINT |
DB2_DYN_QUERY_MGMT | INTEGER |
DB2_ENCRYPTION_TYPE | CHAR(1) |
DB2_PRODUCT_ID | VARCHAR(8) |
DB2_SERVER_CLASS_NAME | VARCHAR(128) |
DB2_SERVER_NAME | VARCHAR(128) |
条件情報項目 | |
CATALOG_NAME | VARCHAR(128) |
CLASS_ORIGIN | VARCHAR(128) |
COLUMN_NAME | VARCHAR(128) |
CONDITION_IDENTIFIER | VARCHAR(128) |
CONDITION_NUMBER | INTEGER |
CONSTRAINT_CATALOG | VARCHAR(128) |
CONSTRAINT_NAME | VARCHAR(128) |
CONSTRAINT_SCHEMA | VARCHAR(128) |
CURSOR_NAME | VARCHAR(128) |
DB2_ERROR_CODE1 | INTEGER |
DB2_ERROR_CODE2 | INTEGER |
DB2_ERROR_CODE3 | INTEGER |
DB2_ERROR_CODE4 | INTEGER |
DB2_INTERNAL_ERROR_POINTER | INTEGER |
DB2_LINE_NUMBER | INTEGER |
DB2_MESSAGE_ID | CHAR(10) |
DB2_MESSAGE_ID1 | VARCHAR(7) |
DB2_MESSAGE_ID2 | VARCHAR(7) |
DB2_MESSAGE_KEY | INTEGER |
DB2_MODULE_DETECTING_ERROR | VARCHAR(128) |
DB2_NUMBER_FAILING_STATEMENTS | INTEGER |
DB2_OFFSET | INTEGER |
DB2_ORDINAL_TOKEN_n | VARCHAR(32740) |
DB2_PARTITION_NUMBER | INTEGER |
DB2_REASON_CODE | INTEGER |
DB2_RETURNED_SQLCODE | INTEGER |
DB2_ROW_NUMBER | INTEGER |
DB2_SQLERRD_SET | CHAR(1) |
DB2_SQLERRD1 | INTEGER |
DB2_SQLERRD2 | INTEGER |
DB2_SQLERRD3 | INTEGER |
DB2_SQLERRD4 | INTEGER |
DB2_SQLERRD5 | INTEGER |
DB2_SQLERRD6 | INTEGER |
DB2_TOKEN_COUNT | INTEGER |
DB2_TOKEN_STRING | VARCHAR(1000) |
MESSAGE_LENGTH | INTEGER |
MESSAGE_OCTET_LENGTH | INTEGER |
MESSAGE_TEXT | VARCHAR(32740) |
PARAMETER_MODE | VARCHAR(5) |
PARAMETER_NAME | VARCHAR(128) |
PARAMETER_ORDINAL_POSITION | INTEGER |
RETURNED_SQLSTATE | CHAR(5) |
ROUTINE_CATALOG | VARCHAR(128) |
ROUTINE_NAME | VARCHAR(128) |
ROUTINE_SCHEMA | VARCHAR(128) |
SCHEMA_NAME | VARCHAR(128) |
SERVER_NAME | VARCHAR(128) |
SPECIFIC_NAME | VARCHAR(128) |
SUBCLASS_ORIGIN | VARCHAR(128) |
TABLE_NAME | VARCHAR(128) |
TRIGGER_CATALOG | VARCHAR(128) |
TRIGGER_NAME | VARCHAR(128) |
TRIGGER_SCHEMA | VARCHAR(128) |
SQL ステートメントのコードおよびストリング: 以下の表は、COMMAND_FUNCTION、COMMAND_FUNCTION_CODE、 DYNAMIC_FUNCTION、および DYNAMIC_FUNCTION_CODE 診断項目の 可能な値を示しています。
以下の表の値は、ISO および ANSI SQL Standard によって割り当てられていて、 この規格の発展に応じて変更される可能性があります。 これらの値を参照するときには、 ライブラリー QSYSINC 内のインクルード・ソース・ファイルにある インクルード sqlscds を使用してください。
ステートメントのタイプ | ステートメント・ストリング | ステートメント・コード |
---|---|---|
ALLOCATE CURSOR | ALLOCATE CURSOR | 1 |
ALLOCATE DESCRIPTOR | ALLOCATE DESCRIPTOR | 2 |
ALTER FUNCTION | ALTER ROUTINE | 17 |
ALTER MASK | ALTER MASK | –100 |
ALTER PERMISSION | ALTER PERMISSION | –103 |
ALTER PROCEDURE | ALTER ROUTINE | 17 |
ALTER SEQUENCE | ALTER SEQUENCE | 134 |
ALTER TABLE | ALTER TABLE | 4 |
ALTER TRIGGER | ALTER TRIGGER | –99 |
割り当て (assignment) ステートメント | ASSIGNMENT | 5 |
ASSOCIATE LOCATORS | ASSOCIATE LOCATORS | -6 |
CALL | CALL | 7 |
CASE | CASE | 86 |
CLOSE (静的 SQL) | CLOSE CURSOR | 9 |
CLOSE (動的 SQL) | DYNAMIC CLOSE CURSOR | 37 |
COMMENT | COMMENT | -7 |
COMMIT | COMMIT WORK | 11 |
複合 (compound) ステートメント | BEGIN END | 12 |
CONNECT | CONNECT | 13 |
CREATE ALIAS | CREATE ALIAS | –8 |
CREATE FUNCTION | CREATE ROUTINE | 14 |
CREATE INDEX | CREATE INDEX | -14 |
CREATE MASK | CREATE MASK | –101 |
CREATE PERMISSION | CREATE PERMISSION | –104 |
CREATE PROCEDURE | CREATE ROUTINE | 14 |
CREATE SCHEMA | CREATE SCHEMA | 64 |
CREATE SEQUENCE | CREATE SEQUENCE | 133 |
CREATE TABLE | CREATE TABLE | 77 |
CREATE TRIGGER | CREATE TRIGGER | 80 |
CREATE TYPE | CREATE TYPE | 83 |
CREATE VARIABLE | CREATE VARIABLE | -83 |
CREATE VIEW | CREATE VIEW | 84 |
DEALLOCATE DESCRIPTOR | DEALLOCATE DESCRIPTOR | 15 |
DECLARE GLOBAL TEMPORARY TABLE | DECLARE GLOBAL TEMPORARY TABLE | -21 |
位置指定された DELETE (静的 SQL) | DELETE CURSOR | 18 |
位置指定された DELETE (動的 SQL) | DYNAMIC DELETE CURSOR | 38 |
検索された DELETE | DELETE WHERE | 19 |
DESCRIBE | DESCRIBE | 20 |
DESCRIBE CURSOR | DESCRIBE CURSOR RESULT SET | -72 |
DESCRIBE PROCEDURE | DESCRIBE PROCEDURE | -23 |
DESCRIBE TABLE | DESCRIBE TABLE | -24 |
DISCONNECT | DISCONNECT | 22 |
DROP ALIAS | DROP ALIAS | -25 |
DROP FUNCTION | DROP ROUTINE | 30 |
DROP INDEX | DROP INDEX | -30 |
DROP MASK | DROP MASK | –102 |
DROP PACKAGE | DROP PACKAGE | -32 |
DROP PERMISSION | DROP PERMISSION | –105 |
DROP PROCEDURE | DROP ROUTINE | 30 |
DROP SCHEMA | DROP SCHEMA | 31 |
DROP SEQUENCE | DROP SEQUENCE | 135 |
DROP TABLE | DROP TABLE | 32 |
DROP TRIGGER | DROP TRIGGER | 34 |
DROP TYPE | DROP TYPE | 35 |
DROP VARIABLE | DROP VARIABLE | -84 |
DROP XSROBJECT | DROP XSROBJECT | -95 |
DROP VIEW | DROP VIEW | 36 |
EXECUTE | EXECUTE | 44 |
EXECUTE IMMEDIATE | EXECUTE IMMEDIATE | 43 |
FETCH (静的 SQL) | FETCH | 45 |
FETCH (動的 SQL) | DYNAMIC FETCH | 39 |
FOR | FOR | 46 |
FREE LOCATOR | FREE LOCATOR | 98 |
GET DESCRIPTOR | GET DESCRIPTOR | 47 |
GOTO | GOTO | -37 |
GRANT (任意のタイプ) | GRANT | 48 |
HOLD LOCATOR | HOLD LOCATOR | 99 |
IF | IF | 88 |
INSERT | INSERT | 50 |
ITERATE | ITERATE | 102 |
LABEL | LABEL | -39 |
LEAVE | LEAVE | 89 |
LOCK TABLE | LOCK TABLE | -40 |
LOOP | LOOP | 90 |
MERGE | MERGE | 128 |
OPEN (静的 SQL) | OPEN | 53 |
OPEN (動的 SQL) | DYNAMIC OPEN | 40 |
PREPARE | PREPARE | 56 |
準備済みの位置指定された DELETE (動的 SQL) | PREPARABLE DYNAMIC DELETE CURSOR | 54 |
準備済みの位置指定された UPDATE (動的 SQL) | PREPARABLE DYNAMIC UPDATE CURSOR | 55 |
REFRESH TABLE | REFRESH TABLE | -41 |
RELEASE (接続) | RELEASE CONNECTION | -42 |
RELEASE SAVEPOINT | RELEASE SAVEPOINT | 57 |
RENAME INDEX | RENAME INDEX | -43 |
RENAME TABLE | RENAME TABLE | -44 |
REPEAT | REPEAT | 95 |
RESIGNAL | RESIGNAL | 91 |
RETURN | RETURN | 58 |
REVOKE (任意のタイプ) | REVOKE | 59 |
ROLLBACK | ROLLBACK WORK | 62 |
SAVEPOINT | SAVEPOINT | 63 |
SELECT INTO | SELECT | 65 |
選択ステートメント (動的 SQL) | SELECT CURSOR | 85 |
SET CONNECTION | SET CONNECTION | 67 |
SET CURRENT DEBUG MODE | SET CURRENT DEBUG MODE | -75 |
SET CURRENT DECFLOAT ROUNDING MODE | SET CURRENT DECFLOAT ROUNDING MODE | -82 |
SET CURRENT DEGREE | SET CURRENT DEGREE | -47 |
SET CURRENT IMPLICIT XMLPARSE OPTION | SET CURRENT IMPLICIT XMLPARSE OPT | -90 |
SET CURRENT TEMPORAL SYSTEM_TIME | SET CURRENT TEMPORAL SYSTEM_TIME | –98 |
SET DESCRIPTOR | SET DESCRIPTOR | 70 |
SET ENCRYPTION PASSWORD | SET ENCRYPTION PASSWORD | -48 |
SET PATH | SET PATH | 69 |
SET RESULT SETS | SET RESULT SETS | -64 |
SET SCHEMA | SET SCHEMA | 74 |
SET SESSION AUTHORIZATION | SET SESSION AUTHORIZATION | 76 |
SET TRANSACTION | SET TRANSACTION | 75 |
SET 遷移変数 | ASSIGNMENT | 5 |
SET 変数 | ASSIGNMENT | 5 |
SIGNAL | SIGNAL | 92 |
TRANSFER OWNERSHIP | TRANSFER OWNERSHIP | –77 |
TRUNCATE TABLE | TRUNCATE TABLE | –74 |
位置指定された UPDATE (静的 SQL) | UPDATE CURSOR | 81 |
位置指定された UPDATE (動的 SQL) | DYNAMIC UPDATE CURSOR | 42 |
検索された UPDATE | UPDATE WHERE | 82 |
VALUES | STANDALONE FULLSELECT | -69 |
VALUES INTO | VALUES INTO | -66 |
WHILE | WHILE | 97 |
認識されないステートメント | 長さがゼロのストリング | 0 |
代替構文: 以下のキーワードは、旧リリースとの互換性を維持するためにサポートされている同義語です。 これらのキーワードは標準キーワードではないので、原則として使用しないようにしてください。
- キーワード EXCEPTION を CONDITION の同義語として使用することができます。
- キーワード RETURN_STATUS を DB2_RETURN_STATUS の同義語として使用することができます。
例
SQL プロシージャーにおいて、GET DIAGNOSTICS ステートメントを実行して、更新された行数を判別します。
CREATE PROCEDURE sqlprocg (IN deptnbr VARCHAR(3))
LANGUAGE SQL
BEGIN
DECLARE SQLSTATE CHAR(5);
DECLARE rcount INTEGER;
UPDATE CORPDATA.PROJECT
SET PRSTAFF = PRSTAFF + 1.5
WHERE DEPTNO = deptnbr;
GET DIAGNOSTICS rcount = ROW_COUNT;
/* At this point, rcount contains the number of rows that were updated. */
END
SQL プロシージャー内部で、TRYIT というストアード・プロシージャー の呼び出しから戻された状況値を処理します。 TRYIT で RETURN ステートメントを使用して状況値を明示的に戻すこと もでき、データベース・マネージャーから状況値が暗黙的に戻されることも あります。 このプロシージャーは、正常に実行されると、値ゼロを戻します。
CREATE PROCEDURE TESTIT ()
LANGUAGE SQL
A1: BEGIN
DECLARE RETVAL INTEGER DEFAULT 0;
...
CALL TRYIT
GET DIAGNOSTICS RETVAL = RETURN_STATUS;
IF RETVAL <> 0 THEN
...
LEAVE A1;
ELSE
...
END IF;
END A1
SQL プロシージャーで、GET DIAGNOSTICS ステートメントを実行して、エラーのメッセージ・テキストを取り出します。
CREATE PROCEDURE divide2 ( IN numerator INTEGER,
IN denominator INTEGER,
OUT divide_result INTEGER,
OUT divide_error VARCHAR(70) )
LANGUAGE SQL
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
GET DIAGNOSTICS CONDITION 1
divide_error = MESSAGE_TEXT;
SET divide_result = numerator / denominator;
END;