DB2 JDBC: один и тот же запрос дает разные результаты - PullRequest
3 голосов
/ 24 января 2011

Мне поручили разработать небольшое приложение Java для обработки некоторых данных из базы данных DB2 (используется для регистрации бизнес-транзакций), и я немного знаю о внутренних настройках базы данных. В настоящее время я пытаюсь выяснить, почему запрос, выполняемый в моем приложении (через JDBC), дает набор результатов, отличный от прямого запроса, выполняемого в моем клиенте Quest Central для 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) {...

Приведенный выше код возвращает объект ResultSet с 7 строками, в то время как тот же запрос, выполняемый на моем клиенте db2, возвращает более 30 строк. Как упоминалось ранее, у меня минимальный опыт работы с базой данных, и мне нужно какое-то представление о том, как один и тот же запрос может генерировать два разных результата.

1 Ответ

4 голосов
/ 24 января 2011

Несколько причин.

  • Это не та же БД и / или схема.
  • Таблица имеет защиту на уровне строк (в DB2 есть эта функция) и зарегистрированный JDBCу пользователя недостаточно прав для тех, которые не возвращены.
  • Эта серия строк была вставлена ​​и выбрана в рамках той же транзакции, которая не была зафиксирована.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...