java - DB2 JDBC : "Same" query gives different results

标签 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 行。如前所述,我使用数据库的经验很少,我需要了解同一个查询如何生成两个不同的结果。

最佳答案

有几个原因。

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

关于java - DB2 JDBC : "Same" query gives different results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786728/

相关文章:

java - mysql 中的位问题

java - 时间复杂度改进

java - java中如何通过用户输入结束程序?

java - Spring-Boot 多模块项目加载属性文件

java - 使用 jetty-runner 提供网络共享目录

c# - DBMigrator 无法首先读取 ef6 代码中的访问 token - SQL 连接

java - 关闭 HikariPool 中的连接

java - Informix 密码即将过期异常

c# - Entity Framework 试图插入错误的表?

sql - SQL 中的事务和回滚