ERRORCODE=4461, SQLSTATE=01000
タイトルが無骨すぎますけど、
これで調べる方もいらっしゃるかと思って。
エラー内容
内容としては
入力データ・タイプが一致しません。というものなのですが、
チェーン例外を参照してください。
記述入力情報を使用して実行を再試行します。
JDBC セマンティクスで必要なデータベース列タイプと一致する入力データ・タイプを使用するよう、
アプリケーションを変更してください。
環境によっては再試行(WARN扱い)する場合と、
再試行しない(FATAL扱い)場合があって、
後者の場合はExceptionで落ちてしまいます。
(DB2にそんな設定があるのかドライバが悪いのかは不明です)
環境とエラー対象のテーブルについて
アプリケーション上からJDBC経由(db2jcc.jar)で
テーブルにSQLを発行するわけですが、
テーブルが以下のデータ型で構成されていて
・VARCHAR
・DECIMAL
・CHAR
・TIMESTAMP
主キー以外NULLで更新する場合に起こっていました。
ちなみにドライバのバージョンは不明ですm(_ _;;)m
回避策(ひとまず)
上記であればDECIMAL型のカラムに
なにかしらの値を入れることによって
このエラーを回避することができます。
これはすべてのDECIMAL型に入れないといけないわけではなく、
特定の1つでかまわないのでシステムによって
ひとまず「0」を入れておいてもよいと判断できるものには
「0」を入れておくのがよいということです。
最後に
なんとも腑に落ちませんが私の現在の技術力では
こんなもんでしか対応できませんでした°゜(゜´Д`゜)゜°