メッセージ解説書

SQL0800 - SQL0899

SQL0801Nゼロによる除算が試みられました。

説明: 列関数または算術式の処理が、ゼロによる除算を結果としました。

ステートメントは処理されません。 INSERT, UPDATE, または DELETE ステートメントの 場合は、挿入も更新も実行されません。

ユーザーの処置: SQL ステートメントを調べて、問題の原因を判別してください。 問題がデータによるものであれば、エラーが起きたときに 処理されていたデータを調べてください。 データ・タイプの有効範囲を判別するには、 SQL 解説書 を参照してください。

連合システム・ユーザー: SQL ステートメントを調べて、問題の原因を判別してください。問題がデータによるものであれば、エラーが起きたときにデータ・ソースで処理されていたデータを調べてください。

sqlcode: -801

sqlstate: 22012

SQL0802N算術オーバーフロー、またはその他の算術例外が 発生しました。

説明: 列関数または算術式の処理で、算術オーバーフローが起きました。

ステートメントは処理されません。 INSERT、 UPDATE、 または DELETE ステートメントの場合は、挿入も更新も実行されません。

ユーザーの処置: SQL ステートメントを調べて、問題の原因を判別してください。 問題がデータによるものであれば、エラーが起きたときに 処理されていたデータを調べてください。 データ・タイプの有効範囲を判別するには、 SQL 解説書 を参照してください。

SQL ステートメントによって返された値を列関数が扱えない場合にも、このエラーが返されることがあります。 たとえば、MAX_LONGINT_INT SQL 制限で定義されているよりも多い行を持つ表に 対して SELECT COUNT ステートメントを出すと、算術オーバーフロー・エラーが起こります。 2,147,483,647 を超える行を持つ表には COUNT_BIG 列関数を使用するよう考慮してください。

連合システム・ユーザー: SQL ステートメントを調べて、問題の原因を判別してください。問題がデータによるものであれば、エラーが起きたときにデータ・ソースで処理されていたデータを調べてください。 データ・タイプの有効範囲を判別するには、対応する SQL 解説書でデータ・ソースを参照してください。

sqlcode: -802

sqlstate: 22003

SQL0803NINSERT ステートメント、UPDATE ステートメントの 1 つ以上の値、または DELETE ステートメントによって行われた外部キーの更新は 1 次キー、固有制約または固有索引を伴う表ので重複行を 作成するため、有効ではありません。

説明: INSERT または UPDATE の対象となる表は、1 つ 以上の UNIQUE 索引により、ある列または列のグループ内に 固有の値を持つとみなされています。 代りに、親表の DELETE ステートメントにより、ある列または列のグループ内に固有の値を持つように制約のある 従属表で、外部キーの更新を行います。この固有索引は、表で定義された 1 次キーまたは固有制約を サポートするために存在している可能性があります。 要求された挿入または更新処理が完了すると、列の値が 重複することになります。

または、INSERT または UPDATE ステートメントの対象が 視点の場合には、その視点が定義されている表が 制約をうけます。

ステートメントは処理されません。 表は変更されません。

ユーザーの処置: 対象表に定義されているすべての UNIQUE 索引の定義を 調べて、それらの索引が影響を与える固有制約を判別してください。

UPDATE ステートメントの場合は、指定した処理自体が 固有制約との間に矛盾がないことを確認してください。それでもエラーの内容が不明な場合には、対象表の内容を 調べて、問題の原因を判別してください。

INSERT ステートメントの場合は、対象表の内容を 調べて、固有制約に違反している指定した値リストの 値を判別してください。または、INSERT ステートメントが副照会を含んでいる 場合は、問題の原因を判別するには、その副照会に よって示される表の内容を対象表の内容と 一致させる必要があります。

DELETE ステートメントの場合、外部キーの固有制約に対する従属表が 規則 ON DELETE SET NULL で定義されているかを検査してください。 その表の列に NULL がすでにあるので、この表は NULL に設定できない 固有索引に含まれる外部キー列を持っています。

連合システム・ユーザー: 失敗を引き起こしたデータ・ソースで問題を分離し (問題判別の手引きを参照して、 SQL ステートメント処理の失敗のデータ・ソースを判別してください)、 前にリストされた条件の索引定義およびデータを調べてください。

sqlcode: -803

sqlstate: 23505

SQL0804N現行要求に対するアプリケーション・プログラムの 入力パラメーターが無効です。 理由コードは "<reason-code>"。 ホスト変数あるいは SQLDA の SQLVAR が無効です : ホスト変数/SQLVAR 番号 = "<var-number>"、SQLTYPE = "<sqltype>"、SQLLEN = "<sqllen>"、ホスト変数/SQLVAR タイプ = "<input_or_output>".

説明: 現行要求を処理中にエラーが発生しました。

理由コードは 次のように解釈されます。

100
作成された要求がサポートされていないか、コンテキスト外にある

101
SQLDA.SQLN が SQLDA.SQLD より小さい

102
SQLVAR.SQLTYPE が無効である

連合システム・ユーザー: 指定したデータ・タイプは、連合サーバー、またはアクセスしたいデータ・ソースによって サポートされていません。

103
SQLVAR.SQLLEN あるいは SQLVAR2.SQLLONGLEN で指定した長さが SQLVAR.SQLTYPE で与えられた SQL タイプに対して間違っている

104
SQLVAR を 2 倍することが予期されていたが、SQLDA.SQLDAID の SQLDOUBLED フィールドが '2' に 設定されていない: ラージ・オブジェクト・タイプまたは構造化タイプのために、これが必要になる 場合があります。

105
2 バイト文字ラージ・オブジェクトには SQLVAR2.SQLDATALEN ポインターで示される奇数値があり、これが常にバイトで、DBCLOB に対してもそうである

106
SQLDATA ポインターが無効であるか、あるいは不十分な記憶域を示している

107
SQLIND ポインターが無効であるか、あるいは不十分な記憶域を示している

108
SQLDATALEN ポインターが無効であるか、あるいは不十分な記憶域を示している

109
入力ホスト変数 /SQLVARS の特定値が 現行 SQL ステートメントで予想される

110
LOB ロケーターが互換タイプの LOB に関連していない

111
LOB が SQLVAR の SQLTYPE に示されているが、2 番目の SQLVAR はヌルである

112
SQLDATATYPE NAME フィールドが無効。 データベース内で既存のユーザー定義タイプを 識別するための形式に適合していません。 既存のユーザー定義タイプを識別するための形式は、8 バイト、その後にピリオド、さらにその後に 18 バイトです。

113
SQLFLAG4 フィールドが無効。 構造化タイプが指定されている場合、値は X'12' でなければなりません。 参照タイプが指定されている場合、値は X'01' でなければなりません。 その他の場合、値は X'00' でなければなりません。

ホスト変数を指定した SQL ステートメントでは、ホスト変数番号を使用して ステートメント (あるいは 複合 SQL の場合はサブステートメント) の最初からカウントし 無効なホスト変数を探し出すことができます。 SQLDA を使用したステートメントでは SQLVAR 番号が 無効な SQLVAR の検出に使用されます。 入力 SQLDA では 入力ホスト変数あるいは SQLVAR をカウントするだけです。出力も同様です。この番号の基本は 1 であることに注意してください。

ステートメントは処理されません。

ユーザーの処置: 示されたエラーについて、アプリケーション・プログラムを 調べてください。 プログラマーは、事前コンパイラー出力を変更するべきではないことに 注意してください。

連合システム・ユーザー: 理由コード 102 を受け取った場合、サポートされているデータ・タイプを 指定してプログラムを再実行依頼してください。

sqlcode: -804

sqlstate: 07002

SQL0805Nパッケージ "<package-name>" が見つかりませんでした。

説明: このメッセージ (SQLCODE) の考えられる原因は、以下のとおりです。

ステートメントは処理されません。

ユーザーの処置: 正しいパッケージ名を指定するか、または プログラムをバインドしてください。 実行中のアプリケーションがデータベースに バインドされていない場合は、データベース管理者に 連絡して、バインドに必要な処置を行ってください。

DB2 ユーティリティー・プログラムがデータベースに再バインドされる必要がある場合、 データベース管理者は、データベースに接続されている間に bnd サブディレクトリーから次の CLP コマンドを 1 つ発行し、 このデータベースを完成することができます。

連合システム・ユーザー: 連合サーバーに必要なパッケージが、適用可能なデータ・ソースにバインドされることを確認してください。データ・ソースへのパッケージのバインドについては、インストールおよび構成 補足ガイドを参照してください。

sqlcode: -805

sqlstate: 51002

SQL0808NCONNECT ステートメント・セマンティクスに、他の既存の接続の セマンティクスとの整合性がありません。

説明: CONNECT ステートメントが、接続が存在するソース・ ファイルの接続オプション (SQLRULES、CONNECT タイプ、SYNCPOINT、または RELEASE タイプ) とは異なる接続タイプで 事前コンパイルされたソース・ファイルから作成されています。

ユーザーの処置: すべてのソース・ファイルが、同じ CONNECT オプションで 事前コンパイルされていることを確認するか、または確認できない 場合は、最初の CONNECT ステートメントを発行する前に、SET CLIENT api を呼び出して、アプリケーション・プロセスに 必要なオプションを設定してください。

sqlcode: -808

sqlstate: 08001

SQL0811Nスカラー全選択、SELECT INTO ステートメント、または VALUES INTO ステートメントの結果が複数行になりました。

説明: 以下のいずれかがエラーの原因です。

連合システム・ユーザー: この状態は連合サーバーまたはデータ・ソースで検出できます。

ステートメントは処理されません。

ユーザーの処置: ステートメントに適切な条件指定が含まれていることを 確認してください。 条件指定が適切な場合には、1 行のみが想定されている ときに、複数の行または値を返すデータの問題である 可能性があります。

連合システム・ユーザー: 失敗を引き起こしたデータ・ソースで問題を分離して (問題判別の手引き を参照して、 SQL ステートメント処理の失敗のデータ・ソースを判別してください)、 そのオブジェクトに対する選択基準およびデータを調べてください。

sqlcode: -811

sqlstate: 21000

SQL0817NSQL ステートメントは、ステートメントの結果が禁止された更新操作となるため、実行されません。

説明: アプリケーションは、実行結果が ユーザー・データあるいはサブシステム・カタログへの更新となる SQL を実行しようとしました。 これは、以下のいずれかの理由から禁止されています。

SQL ステートメントには INSERT、 UPDATE、 DELETE、 CREATE、 ALTER、 DROP、 GRANT、 および REVOKE が含まれています。

ステートメントは処理されません。

ユーザーの処置: アプリケーションが IMS 照会専用トランザクションとして動作している場合、アプリケーション実行下での照会専用トランザクションの状況変更に ついて、IMS システム・プログラマーを調べてください。

IMS または CICS アプリケーションがリモートの更新を行う場合、アプリケーションが サーバー DBMS でのローカル・アプリケーションとして動作するか、あるいは サーバー DBMS が 2 フェーズ・コミットをサポートするように アップグレードされる必要があります。

アプリケーションが複数のロケーションでデータを更新しようとする場合、アプリケーションを変更するか、あるいは すべての DBMS が 2 フェーズ・コミットをサポートするよう、アップグレードされる必要があります。

sqlcode: -817

sqlstate: 25000

SQL0818Nタイム・スタンプの矛盾が起きました。

説明: 事前コンパイル時に事前コンパイラーによって生成された タイム・スタンプが、バインド時にパッケージとともに格納された タイム・スタンプと同じではありません。

この問題は以下の状況で起きる可能性があります。

連合システム・ユーザー: 前にリストされた原因に加えて、 必須パッケージをすべての適用可能なデータ・ソースにバインドするわけではないため、 問題が発生する可能性もあります。

ステートメントは処理されません。

ユーザーの処置: オブジェクト・モジュールと一致するプログラムのバインド・ファイルを 使用して、もう一度アプリケーションをバインドしてください。または、データベース内に格納されているパッケージに対応するプログラムを 実行してください。

サンプル・データベースをインストールしている場合は、このメッセージの 番号とテキストを記録して、サービス技術員に連絡してください。

連合システム・ユーザー: 前にリストされた処置に加えて、 連合サーバーに必要なパッケージが適用可能なデータ・ソースにバインドされていることを確認してください。データ・ソースへのパッケージのバインドに関する詳細については、「インストールおよび構成 補足」を参照してください。

sqlcode: -818

sqlstate: 51003

SQL0822NSQLDA に、無効なデータ・アドレスまたは標識変数アドレスが 含まれています。

説明: アプリケーション・プログラムにより、無効なアドレスが SQLDA に 置かれました。

ステートメントは処理されません。

ユーザーの処置: アプリケーション・プログラムを修正して、有効なアドレスが SQLDA に 置かれるようにしてください。

sqlcode: -822

sqlstate: 51004

SQL0840NSELECT リストに戻された項目が多すぎます。

説明: SELECT リスト内に返された項目数が、許容最大値を超えています。 SELECT リストの最大値 (共通表式以外) は 1012 です。 共通表式での SELECT リストの最大は 5000 です。

ステートメントは処理されません。

ユーザーの処置: すべての情報が実際に必要かどうかを判別してください。 (SQL ステートメント SELECT * from A、B、C の SELECT list * によって戻される項目数は、 3 つの表すべての列数の合計です。) 可能であれば、情報の必要な項目のみが戻されるように、 SQL ステートメントを修正してください。すべての情報が必要な場合は、SQL ステートメントを 2 つ以上のステートメントに分割してください。

sqlcode: -840

sqlstate: 54004

SQL0842Nサーバー "<server-name>" への接続はすでに存在しています。

説明: SQLRULES(STD) が実際あり、CONNECT ステートメントは既存 SQL 接続を 識別します。

ユーザーの処置: エラーに対する処置は、以下のとおりです。

アプリケーションのエラーを修正して、もう一度やり直してください。

sqlcode: -842

sqlstate: 08002

SQL0843Nサーバー名は既存の接続を指定しません。

説明: ステートメント、コマンド、または API は、アプリケーション・プロセスの既存の SQL 接続を識別しない サーバー名を指定しました。

次の使用で起こった可能性があります:

ユーザーの処置: エラーに対する処置は、以下のとおりです。

アプリケーションのエラーを修正して、もう一度やり直してください。

sqlcode: -843

sqlstate: 08003

SQL0846N識別列 "<column-name>" の指定が無効です。

説明: ALTER または CREATE TABLE ステートメントの場合、以下のいずれかの理由で 識別列の指定が無効だと思われます。

ステートメントは処理されません。

ユーザーの処置: 構文を訂正して、ステートメントを再実行依頼してください。

sqlcode: -846

sqlstate: 42815

SQL0859Nトランザクション・マネージャー・データベースに対するアクセスが、SQLCODE "<SQLCODE>" で失敗しました。

説明: アプリケーションが SYNCPOINT(TWOPHASE) で事前コンパイルされ、2 フェーズ・コミットを調整するために、トランザクション・マネージャー・データベースを必要としています。 トランザクション・マネージャー・データベースが使用できない理由は、 以下である可能性があります。

ユーザーの処置: 解決策は以下の通りです。

sqlcode: -859

sqlstate: 08502

SQL0863W接続は成功しましたが、1 バイト文字しか使用できません。

説明: サーバー・データベースおよびクライアント・アプリケーションは 異なる言語タイプのコード・ページを使用し、7 ビット ASCII 範囲外の 文字は使用できません ( 7 ビット ASCII 内の文字のみがすべての コード・ページに存在します)。たとえば、日本語とラテン 1 コード・ページ間の 接続があっても、日本語文字はすべてラテン 1 コード・ページでは 使用できません。そのため、これらの文字すべてを避ける必要があります (英語の文字は 問題ありません)。

連合システム・ユーザー: 考えられる原因は以下のとおりです。

ユーザーの処置: アプリケーションおよびデータベース・コード・ページ間で共通でない 文字を使用する SQL ステートメントまたはコマンドを実行要求しないで ください。

連合システム・ユーザー: クライアント・システム、連合システム、 およびデータ・ソース間で共通でない文字を使用する SQL ステートメントまたはコマンドを実行依頼しないでください。

sqlcode: +863

sqlstate: 01539

SQL0865Ntm_database 値が無効です。

説明: データベース・マネージャー構成で tm_database として 選択されたデータベースが有効ではありません。 データベースはレベル DB2 V2.1 またはそれ以降のレベルでなければならず、DRDA プロトコルでは (つまりDB2 コネクトでは) アクセスすることはできません。

ステートメントは処理されません。

ユーザーの処置:

  1. データベース・マネージャー構成を更新して、tm_database パラメーター に、有効な データベースを指定してください。
  2. db2stop と db2start を発行して、変更を 反映してください。

sqlcode: -865

sqlstate: 08001

SQL0866N接続リダイレクトが失敗しました。 理由コード: "<reason-code>"。

説明: データベースに対するディレクトリーのカタログにより、接続がサポートされていない方法にリダイレクトされました。

理由コードには、以下のものがあります。

01
データベース接続が、あるサーバーから別のサーバーへの 複数リダイレクトを呼び出しましたが、1 つの接続リダイレクトのみが サポートされています。

02
現在のバージョンの DB2 クライアントまたはサーバーと、バージョン 1 クライアントまたはサーバーの両方を呼び出す 接続が試みられました。 バージョン 1 クライアントまたはサーバーではリダイレクトが サポートされていないために、この試みは失敗しました。

ユーザーの処置: 理由コードによる処置は、以下のとおりです。

01
接続のパスにおいて、接続を他のサーバーにリダイレクトする サーバーが複数にならないように、データベースを再カタログします。

02
接続をリダイレクトする中継サーバーが存在しないように、データベースを再カタログします。

sqlcode: -866

sqlstate: 08001

SQL0868NUSER/USING 文節を使用する CONNECT が、接続がすでに 存在するサーバーに対して試みられました。

説明: サーバーに対する現行または休止接続が存在するので、USER/USING 文節を使用したこのサーバーへの CONNECT (接続) が 試みられました。

ユーザーの処置: 解決策は以下の通りです。

sqlcode: -868

sqlstate: 51022

SQL0880NSAVEPOINT "<savepoint-name>" が存在しないか、またはこのコンテキストでは無効です。

説明: RELEASE または ROLLBACK TO SAVEPOINT "<savepoint-name>" ステートメントを 出したときにエラーが起こりました。 この名前を持つ保管点が見つからないか、または現在のアトミック実行コンテキストの外側に 設定されています。

ステートメントは処理されません。

ユーザーの処置: ステートメントにある保管点の名前を訂正して、ステートメントを出し直してください。

sqlcode: -880

sqlstate: 3B001

SQL0881N名前 "<savepoint-name>" の SAVEPOINT が存在しますが、この保管点名は再利用できません。

説明: 名前 "<savepoint-name>" は SAVEPOINT ステートメントですでに使用されています。 この保管点名を使用している SAVEPOINT ステートメントの少なくとも 1 つが、名前が固有でなければ ならないことを宣言している UNIQUE キーワードも指定しているため、この名前を再利用することは できません。

ステートメントは処理されません。 新しい保管点は設定されていません。 同じ名前の古い保管点が存在します。

ユーザーの処置: この保管点に別の名前を選択し、SAVEPOINT ステートメントを出し直してください。 既存の保管点名を使用する必要がある場合、RELEASE SAVEPOINT ステートメントを出して既存の保管点を解放してください。 ただし、指定された保管点が設定された後でトランザクションに設定された保管点も、この RELEASE SAVEPOINT ステートメントによって解放されるので注意してください。 詳細については、SQL 解説書を参照してください。

sqlcode: -881

sqlstate: 3B501

SQL0882N保管点は存在しません。

説明: ROLLBACK TO SAVEPOINT ステートメントを出したときにエラーが起こりました。 既存の保管点がない場合、特定の保管点名を指定せずに ROLLBACK TO SAVEPOINT を出すことは 許可されていません。

ステートメントは処理されません。

ユーザーの処置: 異なるステートメントを出すか、または ROLLBACK ステートメントでトランザクション全体の ロールバックを試みてください。

sqlcode: -882

sqlstate: 3B502


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]