Я выполняю запрос из моего веб-приложения на основе Java, работающего в контейнере Websphere.
Однако этот запрос, будучи довольно простым, завершается ошибкой со странным erorr следующим образом:
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R com.ibm.db2.jcc.b.zd: Invalid data conversion:Requested conversion would result in a loss of precision of 40000
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.q.a(q.java:137)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.q.a(q.java:1189)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.ad.a(ad.java:1217)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.ad.kb(ad.java:2977)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.ad.d(ad.java:1970)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.ad.d(ad.java:2342)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.ad.U(ad.java:489)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.db2.jcc.b.ad.executeQuery(ad.java:472)
[5/15/09 16:50:33:828 IST] 0000001e SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:559)
Запрос довольно прост: он так же прост, как и
select field1, field2 from <xyz table> where <xyz_pk> = ?
Первичный ключ представляет собой INTEGER (4) и имеет данные, которые имеют значения до 99999999. Но, тем не менее,
когда я запускаю этот запрос, он запускается в моем веб-приложении для соединения, полученного из пула соединений websphere, он начинает давать сбой при значениях pk> 35k +. В коде привязки jdbc я попытался сделать prepareStatement.setInt () и prepareStatement.setFloat (). Но ничего не работает !! Это просто работает для всего, что ниже 35k + и терпит неудачу для всего, что выше этого.
Размер int в Java намного больше, чем 35k +, так почему этот запрос не будет выполнен с этой ошибкой? Это происходит только из моего приложения, когда я пытаюсь выполнить тот же запрос с клиентом базы данных по своему выбору, для всех значений pkey получаются правильные результаты!
Кто-нибудь сталкивался с этой проблемой раньше? Если да, как ты справился с этим?