javascript - acesso a um campo de tipo de dados varchar (max) no conjunto de resultados
-
13-09-2019 - |
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?
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