次の方法で共有


DB2 のデータ プロバイダーの一般的なエラー

DB2 のデータ プロバイダーが利用する IBM SQLCAMESSAGE ストアド プロシージャは、詳細なエラー メッセージを返すために使用されます。 この機能を使用するには、ホスト CCSID に EBCDIC 値を使用するようデータ ソースを構成する必要があります。

以下の表で、発生する可能性のある DB2 サーバーのエラーと、エラーを修正するために必要な処理を説明します。

SQLSTATE SQLCODE Message 説明
42601 -104 無効な記号です。

トークンは有効な予期しないトークンではありませんでした。

テキスト>の後<に予期しないトークン <トークン>が見つかりました。 想定されるトークンには、token-list> が<含まれる場合があります。
理由: サーバーは、違法、無効、または予期しないシンボルまたはトークンを含んだ SQL ステートメントを実行できません。

アクション: 特定の IBM DB2 プラットフォームおよびバージョンの IBM DB2 SQL リファレンスを使用して SQL 構文を確認してください。 サポートされている区切り記号 (二重引用符) を使用するのではなく、データ コンシューマー アプリケーションでサポートされていない区切り記号付きオブジェクト識別子 (角かっこ ([<object-name>]) を使用しているかどうかを確認します。
42602 -113 無効な文字が見つかりました: <string>、REASON CODE <reason-code>。

名前の中で無効な文字が検出されました。

<identifier> には、許可されていない文字または文字を含まない文字が含まれています。
理由: クライアントが DB2 サーバーに接続する場合、サーバーは SQL SET CURRENT SQLID ステートメントを処理できません。

アクション: 接続情報を確認し、既定の修飾子の値が、オブジェクトがカタログ化されている DB2 コレクションに一致するようにします。 詳細については、「既定の修飾子」を参照してください。
42802 -117 代入された値の数が、明示的または暗黙的に指定された列の数と同じではありません。

ステートメントに含まれている値の数が正しくありません。

代入された値の数が、明示的または暗黙的に指定された列または変数の数と同じではありません。
理由: 指定された値の数が、テーブルの列の数と同じでない場合、サーバーは SQL INSERT ステートメントを実行できません。

アクション: システム カタログ (SYSIBM.SYSCOLUMNS など) を照会するか、クライアント スキーマ クエリ (OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) や ADO.NET MsDb2Connection.GetSchema(Columns) など) を実行して、列の数が SQL ステートメントのオブジェクトと一致していることを確認します。
22007 -181 DATETIME 値の文字列表現が有効な DATETIME 値ではありません

日付、時刻、またはタイムスタンプ文字列の値が有効ではありません。

DATETIME 値の文字列表現が範囲外です。
理由: サーバーは、DATETIME 値が正しく書式設定されていないか範囲外である SQL ステートメントを実行できません。

アクション: DATETIME 値が、年は 0001 ~ 9999、月は 1 ~ 12、日は 28/29/30/31 (月とうるう年に応じて)、時は 0 ~ 24 (米国では 12)、分は 0 ~ 59、秒は 0 ~ 59、ミリ秒は 0 ~ 999999 のサポートされる範囲内にあることを確認します。 接続情報を調べ、DateTime As Date オプションが True に指定されていて、DB2 のタイムスタンプ データ値にマッピングされている Windows DateTime データ値の時間部分を削除するようクライアントに指示し、DB2 データベースで DB2 の日付データの値としてこれらの値を読み取れるようにします。 詳細については、「DateTime (Date)」を参照してください。
42704 -204 <スキーマ>。<object> は識別されていない名前です。

定義されていないオブジェクトまたは制約の名前が検出されました。

<name> は未定義の名前です。
理由: サーバーは、無効な <スキーマ>を参照する SQL ステートメントを実行できません。<オブジェクト> 名。

アクション: SQL ステートメントで指定されているオブジェクト名を確認します。 接続情報を確認し、既定の修飾子の値が、オブジェクトがカタログ化される DB2 コレクションに一致するようにします。 詳細については、「既定の修飾子」を参照してください。
42703 -206 <name> が使用されているコンテキストでは無効です

指定したテーブルに含まれていない列名<>。

<name> が使用されているコンテキストでは無効です。
理由: サーバーは、指定された列名が、ステートメントで参照されている送信元または送信先のテーブルまたはビューの列ではない SQL ステートメントを実行できません。

アクション: システム カタログ (SYSIBM.SYSCOLUMNS など) を照会するか、クライアント スキーマ クエリ (OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) や ADO.NET MsDb2Connection.GetSchema(Columns) など) を実行して、列の参照が SQL ステートメントのオブジェクトと一致していることを確認します。
08S01 -360 ホスト リソースが見つかりませんでした。 初期カタログ値がホスト リソース名と一致しているか確認してください。 理由: サーバーは、要求された DRDA RDBNAM (リレーショナル データベース名) にクライアントを接続することができませんでした。

アクション: 接続情報を確認して、初期カタログ値が DB2 for z/OS ロケーション名、DB2 for IBM i リレーショナル・データベース・ディレクトリー・エントリー (RDBDIRE)、または DB2 for Windows データベース名と一致していることを確認します。 詳細については、「初期カタログ」を参照してください。
42884 -440 <現在のパスで互換性のある引数を持つ名前<ルーチン名>によってルーチン型>が見つかりませんでした

指定された名前および互換性のある引数を持つルーチンが見つかりませんでした。

互換性のある引数を持つルーチン型<の routine-name> という名前<の承認されたルーチン>が見つかりませんでした。
理由: サーバーは、誤った数の引数を含む SQL CALL ステートメント、または無効なパラメーター データ型を含む SQL CALL ステートメントを実行したり、無効な <スキーマ>を参照したりできません。<オブジェクト> 名。

アクション: 引数の数を確認します。 パラメーターのデータ型を確認します。 SQL ステートメントで指定されているオブジェクト名を確認します。 接続情報を確認し、既定の修飾子の値が、オブジェクトがカタログ化される DB2 コレクションに一致するようにします。 詳細については、「既定の修飾子」を参照してください。
24501 -501 FETCH または CLOSE ステートメントで特定されているカーソルが開かれていません。

カーソル <カーソル名> が開いていません。

FETCH ステートメントまたは CLOSE ステートメントで指定されているカーソルが開かれていないか、カーソル スカラー関数参照のカーソル変数が開かれていません。
理由: サーバーは、開かれている状態ではない CURSOR に対して FETCH または CLOSE を必要とする SQL SELECT または CALL ステートメントを実行できません。

アクション: カーソルを閉じる可能性のある COMMIT または ROLLBACK をアプリケーションが発行していないことを確認します。 システム イベントに基づいてサーバーが自動的にカーソルを閉じたことを示している可能性がある、以前に受信した戻りメッセージを確認します (SQLCODE -404、-652、-679、-802、-901、-904、-909、-910、-911、-913、または -952 など)。 リモートの作業単位トランザクションを使用する場合は、接続情報を確認して、SQL Server Integration Services や分散クエリ プロセッサを含む一部の汎用コンシューマーを操作する際に、AutoCommit オプションが True に指定されるようにします。 詳細については、「AutoCommit」を参照してください。
42501 -551 オブジェクトに対して権限がありません。

resource-name 型の resource-type> でオブジェクト <オブジェクト名>>に<対して権限がありません。<

<authorization-ID> には、オブジェクト <オブジェクト名>に対して操作操作<>を実行するために必要な承認または特権がありません。
理由: サーバーは、現在のユーザーには権限がない静的 SQL パッケージに格納されている CURSOR ステートメントを必要とする SQL SELECT または CALL ステートメントを実行できません。 クライアントは、SQL SELECT ステートメントの実行をサポートするために、DB2 静的 SQL パッケージ内のセクションで事前に定義された SQL ステートメントを使用します。 既定では、パッケージ コレクション接続プロパティで指定されている DB2 コレクションに対するパッケージ BIND、EXECUTE、および GRANT 権限を実行時ユーザーが所有している場合、クライアントはパッケージを自動的に定義します。

アクション: 接続情報を確認し、パッケージ コレクションの値が、現在のユーザー ID または PUBLIC による実行に対して HIS 2010 パッケージが定義されている DB2 コレクションに一致するようにします。 データ アクセス ツール、データ ソース ウィザード、データ リンク、またはデータ アクセス ライブラリを使用して、現在のユーザー ID または PUBLIC による実行に対して HIS 2010 パッケージを手動で作成します。 HIS 2010 パッケージを自動的に作成する権限 (CREATE、BIND および EXECUTE 権限) のある承認 ID を使用して、DB2 に接続します。 詳細については、「パッケージ コレクション」を参照してください。
42501

42602
-567

-567
<bind-type> AUTHORIZATION ERROR USING <auth-id> AUTHORITY PACKAGE = <package-name> PRIVILEGE = <privilege>.

認証名 &1 は使用できません。

<authorization-ID> は有効な承認 ID ではありません。
理由: サーバーは、必要な DB2 パッケージを作成または実行するための許可がユーザー アカウントにない場合、SQL SELECT ステートメントを実行できません。

アクション: 接続情報を確認し、パッケージ コレクションの値が、現在のユーザー ID または PUBLIC による実行に対して HIS 2010 パッケージが定義されている DB2 コレクションに一致するようにします。 データ アクセス ツール、データ ソース ウィザード、データ リンク、またはデータ アクセス ライブラリを使用して、現在のユーザー ID または PUBLIC による実行に対して HIS 2010 パッケージを手動で作成します。 HIS 2010 パッケージを自動的に作成する権限 (CREATE、BIND および EXECUTE 権限) のある承認 ID を使用して、DB2 に接続します。 詳細については、「パッケージ コレクション」を参照してください。
42710 -601 定義するオブジェクトの名前 (バージョンまたはボリュームシリアル番号) または RENAME ステートメントのターゲットは、オブジェクト型<オブジェクト型>の既存の名前 (バージョンまたはボリュームシリアル番号) <オブジェクト名>と同じです。

<スキーマ>型型<>の <name> は既に存在します。

作成するオブジェクトの名前は、type 型><の既存の名前<と>同じです。
理由: サーバーは、名前が同じ型の別のオブジェクトで既に使用中である場合は、オブジェクトをその名前にすることができません。

アクション: 既存のデータベース オブジェクトと比較して一意な名前をオブジェクトに付けます。
42721 -725 場所><の特別なレジスタ<レジスタ>に無効な値が指定されました 理由: サーバーは、SET CURRENT SQLID ステートメントにユーザー識別子またはコレクション名に関して無効な値が含まれている場合、そのステートメントを処理できません。

アクション: 接続情報を確認し、既定の修飾子の値が、オブジェクトがカタログ化されている DB2 コレクションに一致するようにします。 詳細については、「既定の修飾子」を参照してください。
23505 -803 インデックススペース <indexspace-name> のインデックスはテーブルの列を制約するため、挿入または更新された値は無効です。そのため、2 つの行に重複する値を含めないようにします。 既存の行の RID は X <行識別子です>

重複するキー値が指定されています。

INSERT ステートメント、UPDATE ステートメント、または DELETE ステートメントに起因する外部キー更新の 1 つ以上の値は無効です。これは、index-id> によって識別される主キー、一意制約、または一意のインデックスによって<、テーブル <テーブル名>にインデックス キーの値が重複しないように制約するためです。
理由: サーバーは、ステートメントによって重複するキーが生じるため、UNIQUE INDEX によって制限されるテーブルに対して、INSERT または UPDATE ステートメントを実行できません。

アクション: システム カタログ (SYSIBM.SYSINDEXES など) を照会するか、クライアント スキーマ クエリ (OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_INDEXES) や ADO.NET MsDb2Connection.GetSchema(Indexes) など) を実行して、データ値が制約に違反していないことを確認します。
51002 -805 DBRM またはパッケージ名 <の場所名>。<collection-id>。<dbrmname>。<consistency-token> NOT FOUND IN PLAN <plan-name>. >理由<。

コレクション名の <SQL パッケージ <パッケージ名>>が DRDA Server で見つかりません。

パッケージ <パッケージ名> が見つかりませんでした。
理由: サーバーは、動的 SQL SELECT ステートメントを実行するために DB2 クライアントで必要な DB2 の静的 SQL パッケージを見つけることができませんでした。

アクション: 接続情報を確認し、パッケージ コレクションの値が、現在のユーザー ID または PUBLIC による実行に対して HIS 2010 パッケージが定義されている DB2 コレクションに一致するようにします。 詳細については、「パッケージ コレクション」を参照してください。
58004 -901 後続の SQL ステートメントの正常な実行を妨害しないシステム エラーが原因で発生した、実行の失敗です。

SQL システム エラー。

SQL ステートメントは重大ではないシステム エラーが原因で失敗しました。 後続の SQL ステートメントを処理できます。 (理由<>。
理由: サーバーは現在の SQL ステートメントの実行に失敗しましたが、後続の SQL ステートメントは成功する可能性があります。 このエラーは、分散作業単位内のトランザクション コミットの失敗、制約による更新の失敗、または (0 または最大長を超える) 無効な長さが含まれる SQL ステートメントが原因である場合があります。

アクション: ユーザーは、使用できる場合は理由コードを調べて、さらなるユーザーや管理者による処理が必要であるかどうかを確認するだけでなく、アプリケーション、トランザクション、またはコマンドを変更してエラーを回避する方法を確認する必要があります。
57011 -904 使用できないリソースが原因で発生した、実行の失敗です。 REASON <reason-code>、TYPE OF RESOURCE <resource-type>、RESOURCE NAME <resource-name>。

リソースの上限に達しました。

使用できないリソースが原因で発生した、実行の失敗です。 理由コード: <理由コード>、リソースの種類: <resource-type>、リソース名: <resource-name>。
理由: サーバーは、ステートメントのオブジェクトが使用できないため、SQL ステートメントを実行できません。

アクション: オブジェクトとデータベースが使用でき、デッドロック、オフライン、またはその他の使用不可能な状態ではないことを確認してください。
57033 -913 デッドロックまたはタイムアウトが原因で発生した、実行の失敗です。 REASON CODE <reason-code>、TYPE OF RESOURCE <resource-type>、RESOURCE NAME <resource-name>。

使用されているリソース名>の種類 resource-type><の<行またはオブジェクト <オブジェクト名>。

デッドロックまたはタイムアウトが原因で発生した、実行の失敗です。 理由コード <の理由コード>。
理由: サーバーは、ステートメントのオブジェクトが使用できないため、SQL ステートメントを実行できません。

アクション: オブジェクトとデータベースが使用でき、デッドロック、オフライン、またはその他の使用不可能な状態ではないことを確認してください。 直前の操作をコミットまたはロールバックし、データベースから切断します。 オブジェクトの状態に関する詳細情報については、サーバーの理由コードを確認します (たとえば、DB2 for z/OS の理由コード 00C90088 はデッドロックを示していますが、00C9008E はタイムアウトを示しています)。