setObject(index,object) を使用して値を PreparedStatement にバインドすると、MySQL では正常に機能しましたが、Oracle では機能しませんでした。
preparedStatement.setObject(i, bindValue);
以下は、バインド変数を追加した後に作成されたクエリです。
select ACC_NO from ACC_TABLE where ACC_NAME='java.lang.String';
型に変換しようとしているためjava.lang.String
、次の例外が発生します。
java.sql.SQLException: SQL コマンドを実行できませんでした - 元のメッセージ: null
私のACC_NAMEは「user01」です。
したがって、実際にはクエリは次のようになります。
select ACC_NO from ACC_TABLE where ACC_NAME='user01';
したがって、私の理解が間違っていなければ、preparedStatement.setObject(index, object)
データをそれぞれのデータ型に変換して設定しています。
preparedStatement.setObject(index, object)
MySQL では問題なく問題なく動作しています。
唯一の問題は、Oracle の使用中です。
私が使用しているOracle DBのバージョンは次のとおりです。
Oracle Database 11g Express Edition リリース 11.2.0.2.0 - プロダクション
PL/SQL リリース 11.2.0.2.0 - プロダクション「CORE 11.2.0.2.0 プロダクション」
TNS for 32 ビット Windows: バージョン 11.2.0.2.0 - プロダクション NLSRTL バージョン
11.2.0.2.0 - 本番