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

2019-09-21 04:25发布

我执行以下使用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

现在看来,这是存储为对象,我怎么能它转换成普通字符串?

Answer 1:

试图通过@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();
}


Answer 2:

或者,我们可以利用这一点 -

  • 字符串getNString(INT columnIndex)
  • 字符串getNString(字符串columnLabel)

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



文章来源: Converting nvarchar(max) data type to string in Java