从Java ResultSet中获取有关执行rs.getString()的某些列的错误值

时间:2018-08-21 11:39:58

标签: java oracle12c

当我从Java应用程序中使用PreparedStatement.executeQuery()执行查询时,我得到了其中一个字段的值错误的resultSet对象。当我使用在SQL Developer中运行相同的查询时,我会正确看到这些值。

例如在我的查询输出中,我可以看到以下值:

ID_TABLE        VALUE_ID
-------------------------
 1234 111111

 1234 222222

 5678 333333

 5678 444444

但是,在Java中,当我在while循环中迭代结果集时,我在一行上分别用rs.getString("ID_TABLE")rs.getString("VALUE_ID")打印了日志,

System.out.println(" Table Id= "+rs.getString("ID_TABLE")+" -Value Id= "+rs.getString("VALUE_ID"));

在这里,我输入的日志为表ID = 5678-值ID = 222222,这是不正确的。我总是在sql developer中获得相同的输出,并且它仅在单个线程中运行。没有并行运行。

我正在使用Oracle 12c(-12.1版)和jdk 1.7.0_45。

您认为这是Java方面的问题还是Oracle方面的数据获取问题?

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

请在下面找到我的方法代码段:

    Connection conn = null;
    ResultSet res = null;
    String strQuery = "SELECT ID_TABLE,VALUE_ID FROM AppTableDetails";
    PreparedStatement pStmt = null;
    conn = getConnection();
    pStmt = conn.prepareStatement(strQuery);
    res = pStmt.executeQuery();
    while (res.next()) 
    {
        System.out.println("Table Id= "+res.getString("ID_TABLE")+" -Value Id= "+res.getString("VALUE_ID"));
    }

还有一件事,这个错误是随机发生的,而不是我每次运行该过程时都会发生。

0 个答案:

没有答案