2011-01-24 62 views
3

我已經被分配去開發一個小的Java應用程序來處理來自DB2數據庫的某些數據(用於記錄業務事務),並且我知道一些關於數據庫。目前,我正在努力研究爲什麼在我的應用程序上執行的查詢(通過JDBC)爲我的Quest Central for DB2客戶端上執行的直接查詢提供了不同的結果集。DB2 JDBC:「Same」查詢給出了不同的結果

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行。正如前面提到的,我對數據庫的使用經驗很少,而且我需要某種想法來說明同一個查詢如何產生兩個不同的結果。

+2

您可能正在連接到兩個不同的數據庫,或者可能是不同的角色/模式 – Zeki 2011-01-24 20:25:19

+0

您正在使用什麼驅動程序? – 2011-01-24 20:28:09

回答

4

幾個原因。

  • 它不是相同的數據庫和/或模式。
  • 該表具有行級安全性(DB2具有此功能),並且登錄的JDBC用戶對沒有返回的用戶沒有足夠的權限。
  • 這些很多行都是在未提交的相同事務中插入和選擇的。
相關問題