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

标签 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

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

最佳答案

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

关于java - 在 Java 中将 nvarchar(max) 数据类型转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942073/

相关文章:

java - 如何在 SearchResponse 中使用 elasticSearch java api 访问聚合结果?

java - 开始日期和结束日期查询不起作用

mysql - SQL JOIN 从第二个表中获取不同的列

mysql - 如何在 phpmyadmin 中更改数据库的存储引擎?

sql - select语句where子句两个条件

java - Apache 无需下载即可获取文件日期

Java 依赖触发器

reporting-services - 报表管理器数据源的数据库角色成员资格设置

java - 该文件永远不会在 JavaMail 中发送

sql-server - 如何获取 XML 变量中的特定元素计数