javascript - доступ к полю типа данных varchar(max) в результирующем наборе

StackOverflow https://stackoverflow.com/questions/782189

Вопрос

В приложении 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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top