Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting nvarchar(max) data type to string in Java

I am executing following sql query on SQL Server 2008 using jTDS API:

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

And data type for these three fields are as follows:

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

When I execute query using Java, the string values for a and b are plain text, but for c I am getting following value:

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

It seems it is stored as object, how can I convert it to normal string ?

like image 988
Pradeep Avatar asked Feb 19 '23 12:02

Pradeep


2 Answers

Tried the Link Sent by @Roberto Navaron , It worked, just passed object to this method, type cast it to clob and it returns string

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();
}
like image 135
Pradeep Avatar answered Feb 25 '23 10:02

Pradeep


Or we can use this -

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

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

like image 30
Ravindra Avatar answered Feb 25 '23 12:02

Ravindra