2016-01-12 44 views
0

我試圖從resulset獲取值,但它什麼都不返回。 當我試圖通過普通的SQL它會返回一些值。ResultSet不返回DB2的值,但它返回值,如果我嘗試做它manualy

List<String> res = new ArrayList<String>(); 
    try { 
     String query = "SELECT COLUMN_NAME FROM idoc.columns_to_show where user = ? " 
       + DAO.DB2_UR_POSTFIX; 

     Connection connection = Properties.getDocsConnection(); 
     try { 
      PreparedStatement pr = connection.prepareStatement(query); 
      try { 
       pr.setString(1, user.getDomainName()); 
       ResultSet rs = pr.executeQuery(); 
       try { 
        while (rs.next()) { 
         res.add(rs.getString("COLUMN_NAME")); 
        } 
       } finally { 
        rs.close(); 
       } 
      } finally { 
       pr.close(); 
      } 
     } finally { 
      connection.close(); 
     } 

    } catch (SQLException e) { 
     throw new RuntimeException(e); 
    } 

    return res; 
+2

什麼是DAO.DB2_UR_POSTFIX? – SMA

+0

@sma只是與你的; –

+0

你的意思是'DAO.DB2_UR_POSTFIX =「用你的」;'?你可以請e.printStackTrace()並檢查是否遇到錯誤? – Jan

回答

0

不要使用列名「user」它是DB2數據庫的保留名稱。 因此我找不到任何結果。

+0

還有**轉義**作爲解決您的查詢的另一種方式 – Jan

相關問題