Null pointer when populating Grails domain object with long field Oracle 10g

We are trying to populate a domain object from oracle 10g database. The field in question is defined as a string in the domain object with the following restrictions.

zdata (space: false, MaxSize: 3000000)

The data size is approximately 70 thousand XML.

The table definition looks like this:

ZDATA NOT NULL LONG ()

We use the generated grails getter to access the table:

reportData = ReportData.get (reportDataId)

When we make this call, we get a null pointer exception. Here is a portion of our stack trace. java.lang.NullPointerException at java.lang.String. (String.java:176) at oracle.sql.CharacterSet.AL32UTF8ToString (CharacterSet.java:1518) at oracle.jdbc.driver.DBConversion.CharBytesToString (DBConversion.java:610) at oracle.jdbc.driver.DBBConversion DBConversion.java:555) at oracle.jdbc.driver.LongAccessor.getString (LongAccessor.java:217) at oracle.jdbc.driver.T4CLongAccessor.getString (T4CLongAccessor.java:426) at oracle.jdbc.driver.etOracleRplring (OracleResultSetImpl.java:403) at oracle.jdbc.driver.OracleResultSet.getString (OracleResultSet.java:1515) at org.apache.commons.dbcp.DelegatingResultSet.getString (DelegatingResultSet.java:224) attype.StringType.get (StringType.java:18) at org.hibernate.type.NullableType.nullSafeGet (NullableType.java:163) at org.hibernate.type.NullableType.nullSafeGet (NullableType.java.154) .loader.hql.QueryLoader.getResultColumnOrRow (QueryLoader.java:333) at org.hibernate.loader.Loader.getRowFromResultSet (Loader.java:606) at org.hibernate.loader.Loader.doQuery (Loader1ava) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections (Loader.java:236) at org.hibernate.loader.Loader.doList (Loader.java:2220) at org.hibernate.loader.Loader.listIgnoreQueryCache (Loader.java:236) at org.hibernate.loader.Loader.list (Loader.java:2099) at org.hibernate.loader.hql.QueryLoader.list (QueryLoader.java:378) at org.hibernate.hql.ast.QueryTranslatorImpl.list (QueryTranslatorImpl ...java: 338) to org.hibernate.engine.query.HQLQueryPlan.performList (HQLQueryPlan.java:172) to org.hibernate.impl.SessionImpl.list (SessionImpl.java:1121) to org.hibernate.impl.QueryImpl.list (QueryImpl.java:79) at org.codehaus.groovy.grails.orm.hibernate.metaclass.ExecuteQueryPersistentMethod $ 1.doInHibernate (ExecuteQueryPersistentMethod.java:94)

we are using oracle driver 10.2.0.3.0.

0


source to share


3 answers


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



This known limitation has been fixed as per Oracle JDBC Driver release 11.1.0.7.0 release notes

+1


source


Why are you using long field in Oracle? Long is very deprecated, you should use clob.



0


source


If you are storing XML in Oracle, use an XmlType column that can be easily converted to CLOB and works great with the JDBC 10g driver as this is what we are currently using in our production environment.

0


source







All Articles