4

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 - 本番

4

1 に答える 1