2

ドライバーを使用して、ODBC データソースとして利用可能なIBM DB2データテーブルにアクセスしていますsun.jdbc.odbc.JdbcOdbcDriver

私が遭遇した問題は、DELETE FROM tableusingjava.sql.Statement.executeUpdate(String),を実行していてテーブルが空の場合、java.sql.SQLExceptionがスローされることです (予想される動作は 0 が返されることです)。例外メッセージは「データが見つかりません」です。

IBM DB2との最初の接触なので、私の質問は、そのデータベースで予想される動作ですか? それとも、これはデータベース レベルで構成できるものですか? それともODBC固有のものですか?

それが標準的な動作である場合、実際の例外からその「例外」をどのように認識すればよいですか? ビジネス ロジックの例外メッセージを解析するのは好きではありませんが、必要な場合は、常に"データが見つかりません"になると期待できますか?

その動作の仕様をグーグルで検索しようとしましたが、その場合のドキュメントは見つかりませんでした。

4

1 に答える 1

2

これは完全に正常です。DB2 は削除するものが見つからなかったため、この警告を返しました。

多くのデータベースのステータスは同じです: sqlstate 02000。Google で調べると、他の RDBM にも同じコードがあることがわかります。ただし、DB2 にはその理由を説明する sqlcode があり、この sqlstate に対応するコードは sql0100W です。

DB2 を使用している間は、この動作に対処する必要があります。これは SQLWarning (SQL コードの末尾にある W) です。

http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql00100w.html

次回は、sqlcode を見てください。DB2 での作業中に問題を見つけるのに役立ちます。

于 2013-05-03T14:49:11.433 に答える