Pergunta

Dentro de um aplicativo de javascript, estamos chamando um sproc no SQL Server 2005 que está retornando um conjunto de resultados com 3 colunas do tipo:. Bigint, VARCHAR (20), e varchar (MAX)

Ao chamar o sproc e ler os resultados, não há exceção sendo lançada. Ao enumerar o conjunto de resultados:

var dbConn = DatabaseConnectionFactory.createDatabaseConnection("1","2","3","4");    
var myResultSet = dbConn.executeCachedQuery("EXEC MySproc");
dbConn.close();

var myString = myResultSet.getString("MyVarcharMaxField");

Ao examinar o valor de myString, o valor não é o que eu espero:

javax.sql.rowset.serial.SerialClob@15b4206

Qualquer idéia de como obter o valor real do campo?

Chamando outro método que não seja getString () talvez?

Foi útil?

Solução

Varchar (MAX) é um CLOB (Large Object Character) tipo de dados. Aqui está um código que você pode usar a fim ler seu conteúdo.

var clobField = myResultSet.getClob("MyVarcharMaxField");
var strOut = new java.lang.StringBuffer();
var aux = new java.lang.String();

// RTF data conversion

var kit = new Packages.javax.swing.text.rtf.RTFEditorKit();
var doc = new Packages.javax.swing.text.DefaultStyledDocument();
kit.read(clobField.getAsciiStream(), doc, 0);

var text = doc.getText(0, doc.getLength());
var myString = text.toString();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top