Проблема в использовании PreparedStatement для запроса на обновление с именем столбца "REORDER"
Мы использовали Ojdbc 14 с Hibernate 3x для подключения к базе данных Oracle в нашем приложении, которое было развернуто в JBoss 4x. Теперь мы обновили наш сервер приложений до JBoss 6x. Поэтому нам пришлось обновить драйверы hibernate(4.2.18) и Ojdbc (ojdb7), чтобы они были совместимы с сервером приложений.
Сейчас мы сталкиваемся с проблемой (недопустимый индекс столбца) с операцией обновления таблицы, имеющей столбец с именем "REORDER", которая нормально работала с Hibernate 3x и Ojdbc 14.
PreparedStatement вычисляет неверное количество параметров (276) вместо фактического количества параметров (277), когда в запросе присутствует столбец REORDER, иначе он работает нормально.
Также оператор вставки со столбцом "REORDER" работает нормально.
Мы попытались выполнить поиск по ключевым словам Oracle, чтобы определить, является ли это ключевым словом Oracle или нет, но оно также не включено в ключевые слова Oracle Reserved.
Мы можем обновить таблицу, когда мы назовем столбец "REORDER" другим именем.
Может кто-нибудь, пожалуйста, помогите нам понять, что здесь пошло не так.
1 ответ
Кажется, это проблема с некоторыми конкретными версиями драйверов JDBC. Мы можем решить эту проблему путем понижения драйвера JDBC, используемого в нашей среде, до OJDBC6(11.2.0.3).
Ссылка: http://www-01.ibm.com/support/docview.wss?uid=swg21982951