4

jTDSAPIを使用してSQLServer2008で次のSQLクエリを実行しています。

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

また、これら3つのフィールドのデータ型は次のとおりです。

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

Javaを使用してクエリを実行すると、aとbの文字列値はプレーンテキストですが、cの場合は次の値を取得しています。

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

オブジェクトとして保存されているようですが、どうすれば通常の文字列に変換できますか?

4

2 に答える 2

7

@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();
}
于 2012-08-14T07:57:29.053 に答える
1

または、これを使用できます-

  • 文字列 getNString(int columnIndex)
  • String getNString(String columnLabel)

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

于 2016-12-21T05:29:26.093 に答える