DB2 JDBC:“相同”查询给出不同的结果

时间:2011-01-24 20:20:02

标签: java sql jdbc db2

我被分配开发一个小型Java应用程序来处理来自DB2数据库的某些数据(用于记录业务事务),我对数据库的内部设置有一点了解。目前,我正在努力找出为什么在我的应用程序上执行的查询(通过JDBC)给出了在我的Quest Central for DB2客户端上执行的直接查询的不同结果集。

    String query = "SELECT DISTINCT SYSTEM_NME FROM MISUSER.USAGE_LOGGER";

    try {
        Connection conn = DB2Connect.getDB2Connection();
        Statement stmt = conn.createStatement();

        ResultSet rs = stmt.executeQuery(query);
        while(rs.next()){
            retval.add(rs.getString(this.code.column_name));
        }

    } catch (SQLException e) {...

上面的代码返回一个包含7行的ResultSet对象,而在我的db2客户端上执行的相同查询返回的行数超过30行。如前所述,我使用数据库的经验很少,我需要知道同一个查询如何生成两个不同的结果。

1 个答案:

答案 0 :(得分:4)

有几个原因。

  • 这不是相同的数据库和/或架构。
  • 该表具有行级安全性(DB2具有此功能),并且已登录的JDBC用户对于未返回的用户没有足够的权限。
  • 在未提交的同一事务中插入并选择了那么多行。