1

在一个 javascript 应用程序中,我们在 SQL Server 2005 上调用一个存储过程,它返回一个具有 3 列类型的结果集:bigint、varchar(20) 和 varchar(MAX)。

调用存储过程并读取结果时,没有抛出异常。枚举结果集时:

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() 以外的其他方法?

4

1 回答 1

2

Varchar(MAX)是一种CLOB(字符大对象)数据类型。这里有一些代码可以用来读取它的内容。

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();
于 2009-04-25T09:55:54.583 回答