2012-08-13 120 views
3

我執行下面的SQL Server上的SQL查詢2008年使用JTDS API:轉換爲nvarchar(max)數據類型爲字符串的Java

SELECT a , b , c FROM [db].[dbo].[table] where d = 1; 

而對於這三個字段的數據類型如下:

a -- nvarchar(255) 
b -- nvarchar(255) 
c -- nvarchar(max) 

當我使用Java,A和b的字符串值執行查詢是純文本,但對於C我得到以下值:

[email protected] 

它似乎存儲爲對象,我如何將它轉換爲普通字符串?

+0

Java中的類型是什麼? DBVT_STRING? DBVT_ASTRING?還有別的嗎? – 2012-08-13 20:52:24

+1

當你從ResultSet中取得值時,我已經嘗試了'getString(column)'和'getCharacterStream(column)'? – 2012-08-13 20:53:54

+0

是試過了,還是一樣的 – Pradeep 2012-08-13 20:58:20

回答

5

試圖通過@Roberto Navaron發來的鏈接,它的工作,只是傳遞的對象,以這種方法,類型將它轉換爲CLOB和返回字符串

private String clobToString(Clob data) { 
    StringBuilder sb = new StringBuilder(); 
    try { 
     Reader reader = data.getCharacterStream(); 
     BufferedReader br = new BufferedReader(reader); 

     String line; 
     while(null != (line = br.readLine())) { 
      sb.append(line); 
     } 
     br.close(); 
    } catch (SQLException e) { 
     // handle this exception 
    } catch (IOException e) { 
     // handle this exception 
    } 
    return sb.toString(); 
} 
相關問題