在Java中将nvarchar(max)数据类型转换为字符串

时间:2012-08-13 20:48:29

标签: java sql sql-server-2008

我正在使用jTDS API在SQL Server 2008上执行以下sql查询:

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

这三个字段的数据类型如下:

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

当我使用Java执行查询时,a和b的字符串值是纯文本,但对于c,我得到以下值:

net.sourceforge.jtds.jdbc.ClobImpl@2b34fb

它似乎存储为对象,如何将其转换为普通字符串?

2 个答案:

答案 0 :(得分:6)

尝试了由@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();
}

答案 1 :(得分:1)

或者我们可以使用它 -

  • String getNString(int columnIndex)
  • String getNString(String columnLabel)

http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html