Java PreparedStatement.executeQuery为某些列获取了错误的值

Java PreparedStatement.executeQuery为某些列获取了错误的值,java,oracle,executequery,Java,Oracle,Executequery,当我从Java应用程序中使用PreparedStatement.executeQuery()执行查询时,我得到一个resultSet对象,其中一些字段的值错误。当我使用plsqldeveloper时,该值看起来正常 字段值为10101010,但在结果集中为1$ffssff。数据库字段大小只有8个字节,但我得到的结果值是9个字节(完全错误)。此字段的类型为VARCHAR2(8字节) 这只是偶尔发生的事。其他时候,当我执行相同的查询时,我会得到正确的值 resultSet如何可能为某些字段获取错误的

当我从Java应用程序中使用
PreparedStatement.executeQuery()
执行查询时,我得到一个
resultSet
对象,其中一些字段的值错误。当我使用plsqldeveloper时,该值看起来正常

字段值为
10101010
,但在结果集中为
1$ffssff
。数据库字段大小只有8个字节,但我得到的结果值是9个字节(完全错误)。此字段的类型为
VARCHAR2(8字节)

这只是偶尔发生的事。其他时候,当我执行相同的查询时,我会得到正确的值

resultSet如何可能为某些字段获取错误的值?是否需要为此验证一些设置?我的
NLS\u RDBMS\u版本是
11.2.0.3.0

您认为这是Java端的问题还是Oracle端的数据获取问题


如果您需要其他详细信息,请告诉我。

如果您可以在SQL developer中反复运行查询并不断获得正确的结果,那么您将遇到某种java问题。不知道Oracle方面有任何错误。通常这些都是类型转换或代码页问题。如果只是做了一些轻微的错误,您可以显示您的Java代码和版本吗?受保护的ResultSet exePreparedQuery(连接连接、字符串查询、ArrayList参数){PreparedStatement stmt=null;ResultSet rs=null;请重试{stmt=conn.prepareStatement(查询);bindParametersValue(stmt,query,params);rs=stmt.executeQuery();catch(异常e){e.printStackTrace();}返回rs;}Hi Themmadba——如果是代码页问题,那么应该是一致性的,对吗?在我的例子中,这种情况只发生过几次……Java版本是1.6.023