javascript - доступ к полю типа данных varchar(max) в результирующем наборе
-
13-09-2019 - |
Вопрос
В приложении javascript мы вызываем sproc на SQL Server 2005, который возвращает результирующий набор с 3 столбцами типа:bigint, varchar(20) и varchar(МАКСИМУМ).
При вызове sproc и считывании результатов исключение не генерируется.При перечислении результирующего набора:
var dbConn = DatabaseConnectionFactory.createDatabaseConnection("1","2","3","4");
var myResultSet = dbConn.executeCachedQuery("EXEC MySproc");
dbConn.close();
var myString = myResultSet.getString("MyVarcharMaxField");
При проверке значения myString значение оказывается не таким, какое я ожидаю:
javax.sql.rowset.serial.SerialClob@15b4206
Есть какие-нибудь идеи, как получить реальное значение поля?
Может быть, вызываете другой метод, отличный от getString()?
Решение
Параметр Varchar (МАКС.) является КОМОК тип данных (Символьный крупный объект).Вот некоторый код, который вы можете использовать для того, чтобы прочитать его содержимое.
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();
Не связан с StackOverflow