0

我们正在尝试从 oracle 10g 数据库中填充域对象。有问题的字段被定义为域对象中的字符串,具有以下约束。

zdata(空白:假,最大尺寸:3000000)

数据的大小约为 70K 的 XML。

表定义如下所示:

ZDATA NOT NULL LONG()

我们使用 grails 生成的 getter 来访问表:

reportData = ReportData.get(reportDataId)

进行此调用时,我们得到一个空指针异常。这是我们的堆栈跟踪的一部分。java.lang.NullPointerException 在 java.lang.String.(String.java:176) 在 oracle.sql.CharacterSet.AL32UTF8ToString(CharacterSet.java:1518) 在 oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:610 ) 在 oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java: 426) 在 oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:403) 在 oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515) 在 org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet .java:

我们正在使用 oracle 驱动程序 10.2.0.3.0。

4

3 回答 3

1

This is a known limitation of the oracle jdbc driver as listed in the release notes for version 10.2.0.1.0.

This known limitation has been fixed according to the release notes of Oracle JDBC Driver release 11.1.0.7.0

于 2008-12-05T14:34:37.833 回答
0

为什么在 Oracle 中使用长字段?Long 已经过时了,你应该使用 clob。

于 2008-12-04T22:57:55.417 回答
0

如果您在 Oracle 中存储 XML,请使用 XmlType 列,该列可以轻松转换为 CLOB,并且可以与 JDBC 10g 驱动程序完美配合,因为这是我们目前在生产环境中使用的。

于 2009-02-08T03:53:10.620 回答