ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brandon Goodin <brandon.goo...@gmail.com>
Subject Re: 32k limitations for clob/blob?
Date Thu, 09 Jun 2005 17:15:45 GMT
I don't have any idea off the top of my head. This may be a good
opportunity for you to do it with straight JDBC to see what works and
then look at our TypeHandlers to see how they are translating.

Brandon

On 6/9/05, Henry Lu <zhlu@umich.edu> wrote:
> No, I didn't. However, I got more details on the errors.
> 1. If I insert into CLOB or LONG as jdbc type with String in java, I got
> the 32K limitation error.
> 
>      [java] size=1551138, 1551138
>      [java] org.springframework.jdbc.UncategorizedSQLException:
> (SqlMapClientTem
> plate): encountered SQLException [
>      [java] --- The error occurred in ibatis_map/AccessDB.xml.
>      [java] --- The error occurred while applying a parameter map.
>      [java] --- Check the insert_long-InlineParameterMap.
>      [java] --- Check the parameter mapping for the 'l' property.
>      [java] --- Cause: java.sql.SQLException: setString can only process
> strings
>  of less than 32766 chararacters]; nested exception is
> com.ibatis.common.jdbc.ex
> ception.NestedSQLException:
>      [java] --- The error occurred in ibatis_map/AccessDB.xml.
>      [java] --- The error occurred while applying a parameter map.
>      [java] --- Check the insert_long-InlineParameterMap.
>      [java] --- Check the parameter mapping for the 'l' property.
>      [java] --- Cause: java.sql.SQLException: setString can only process
> strings
>  of less than 32766 chararacters
> 
> 2. If I insert into CLOB or LONG as jdbc type with byte[] in java, I got
> the following errors:
> 
>      [java] size=1461140, 1461140
>      [java] org.springframework.jdbc.UncategorizedSQLException:
> (SqlMapClientTem
> plate): encountered SQLException [
>      [java] --- The error occurred in ibatis_map/AccessDB.xml.
>      [java] --- The error occurred while applying a parameter map.
>      [java] --- Check the insert_long-InlineParameterMap.
>      [java] --- Check the statement (update failed).
>      [java] --- Cause: java.sql.SQLException: ORA-01461: can bind a LONG
> value o
> nly for insert into a LONG column
>      [java] ]; nested exception is
> com.ibatis.common.jdbc.exception.NestedSQLExc
> eption:
>      [java] --- The error occurred in ibatis_map/AccessDB.xml.
>      [java] --- The error occurred while applying a parameter map.
>      [java] --- Check the insert_long-InlineParameterMap.
>      [java] --- Check the statement (update failed).
>      [java] --- Cause: java.sql.SQLException: ORA-01461: can bind a LONG
> value o
> nly for insert into a LONG column
> 
> Any idea?
> 
> -Henry
> 
> 
> Brandon Goodin wrote:
> 
> >I'm not aware of this limitation. We have run into similar things
> >before with the oracle driver. But, upgrading has always fixed it.
> >Have you attempted a test using straight JDBC?
> >
> >Brandon
> >
> >On 6/9/05, Henry Lu <zhlu@umich.edu> wrote:
> >
> >
> >>I got the following errors when I insert a large text into a CLOB in
> >>oracle by using iBatis. How do I resulve it? I am using Oracle 10G jdbc
> >>deiver.
> >>
> >>
> >>org.springframework.jdbc.UncategorizedSQLException:
> >>(SqlMapClientTemplate): encountered SQLException [
> >>--- The error occurred in
> >>edu/umich/med/umms/tgsubmission/dao/ibatis_map/tgs_info_trainee.xml.
> >>--- The error occurred while applying a parameter map.
> >>--- Check the Tgs_info_trainee.insert_Tgs_info_trainee_map.
> >>--- Check the parameter mapping for the 'INFO_TEXT' property.
> >>--- Cause: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters]; nested exception is
> >>com.ibatis.common.jdbc.exception.NestedSQLException:
> >>--- The error occurred in
> >>edu/umich/med/umms/tgsubmission/dao/ibatis_map/tgs_info_trainee.xml.
> >>--- The error occurred while applying a parameter map.
> >>--- Check the Tgs_info_trainee.insert_Tgs_info_trainee_map.
> >>--- Check the parameter mapping for the 'INFO_TEXT' property.
> >>--- Cause: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters
> >>org.springframework.jdbc.UncategorizedSQLException:
> >>(SqlMapClientTemplate): encountered SQLException [
> >>--- The error occurred in
> >>edu/umich/med/umms/tgsubmission/dao/ibatis_map/tgs_info_trainee.xml.
> >>--- The error occurred while applying a parameter map.
> >>--- Check the Tgs_info_trainee.insert_Tgs_info_trainee_map.
> >>--- Check the parameter mapping for the 'INFO_TEXT' property.
> >>--- Cause: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters]; nested exception is
> >>com.ibatis.common.jdbc.exception.NestedSQLException:
> >>--- The error occurred in
> >>edu/umich/med/umms/tgsubmission/dao/ibatis_map/tgs_info_trainee.xml.
> >>--- The error occurred while applying a parameter map.
> >>--- Check the Tgs_info_trainee.insert_Tgs_info_trainee_map.
> >>--- Check the parameter mapping for the 'INFO_TEXT' property.
> >>--- Cause: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters
> >>com.ibatis.common.jdbc.exception.NestedSQLException:
> >>--- The error occurred in
> >>edu/umich/med/umms/tgsubmission/dao/ibatis_map/tgs_info_trainee.xml.
> >>--- The error occurred while applying a parameter map.
> >>--- Check the Tgs_info_trainee.insert_Tgs_info_trainee_map.
> >>--- Check the parameter mapping for the 'INFO_TEXT' property.
> >>--- Cause: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters
> >>Caused by: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:87)
> >>    at
> >>com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:500)
> >>    at
> >>com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:89)
> >>    at
> >>org.springframework.orm.ibatis.SqlMapClientTemplate$11.doInSqlMapClient(SqlMapClientTemplate.java:282)
> >>    at
> >>org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:140)
> >>    at
> >>org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:280)
> >>    at
> >>edu.umich.med.umms.tgsubmission.dao.sql.Tgs_info_traineeDaoSql.insertTgs_info_trainee(Tgs_info_traineeDaoSql.java:67)
> >>    at
> >>unit.edu.umich.med.umms.tgsubmission.dao.Tgs_info_traineeDaoSqlTestCase.doTestInsert(Tgs_info_traineeDaoSqlTestCase.java:100)
> >>    at
> >>unit.edu.umich.med.umms.tgsubmission.dao.Tgs_info_traineeDaoSqlTestCase.testAll(Tgs_info_traineeDaoSqlTestCase.java:64)
> >>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >>    at java.lang.reflect.Method.invoke(Unknown Source)
> >>    at junit.framework.TestCase.runTest(TestCase.java:154)
> >>    at junit.framework.TestCase.runBare(TestCase.java:127)
> >>    at junit.framework.TestResult$1.protect(TestResult.java:106)
> >>    at junit.framework.TestResult.runProtected(TestResult.java:124)
> >>    at junit.framework.TestResult.run(TestResult.java:109)
> >>    at junit.framework.TestCase.run(TestCase.java:118)
> >>    at junit.framework.TestSuite.runTest(TestSuite.java:208)
> >>    at junit.framework.TestSuite.run(TestSuite.java:203)
> >>    at
> >>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:474)
> >>    at
> >>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:342)
> >>    at
> >>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:194)
> >>Caused by: java.sql.SQLException: setString can only process strings of
> >>less than 32766 chararacters
> >>    at
> >>oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
> >>    at
> >>oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
> >>    at
> >>oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
> >>    at
> >>oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:4588)
> >>    at
> >>oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:4559)
> >>    at
> >>com.ibatis.sqlmap.engine.type.ParameterSetterImpl.setString(ParameterSetterImpl.java:139)
> >>    at
> >>com.ibatis.sqlmap.engine.type.ClobTypeHandlerCallback.setParameter(ClobTypeHandlerCallback.java:45)
> >>    at
> >>com.ibatis.sqlmap.engine.type.CustomTypeHandler.setParameter(CustomTypeHandler.java:46)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:165)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
> >>    at
> >>com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:196)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:74)
> >>    ... 23 more
> >>
> >>Caused by:
> >>java.sql.SQLException: setString can only process strings of less than
> >>32766 chararacters
> >>    at
> >>oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
> >>    at
> >>oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
> >>    at
> >>oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
> >>    at
> >>oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:4588)
> >>    at
> >>oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:4559)
> >>    at
> >>com.ibatis.sqlmap.engine.type.ParameterSetterImpl.setString(ParameterSetterImpl.java:139)
> >>    at
> >>com.ibatis.sqlmap.engine.type.ClobTypeHandlerCallback.setParameter(ClobTypeHandlerCallback.java:45)
> >>    at
> >>com.ibatis.sqlmap.engine.type.CustomTypeHandler.setParameter(CustomTypeHandler.java:46)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:165)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
> >>    at
> >>com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:196)
> >>    at
> >>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:74)
> >>    at
> >>com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:500)
> >>    at
> >>com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:89)
> >>    at
> >>org.springframework.orm.ibatis.SqlMapClientTemplate$11.doInSqlMapClient(SqlMapClientTemplate.java:282)
> >>    at
> >>org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:140)
> >>    at
> >>org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:280)
> >>    at
> >>edu.umich.med.umms.tgsubmission.dao.sql.Tgs_info_traineeDaoSql.insertTgs_info_trainee(Tgs_info_traineeDaoSql.java:67)
> >>    at
> >>unit.edu.umich.med.umms.tgsubmission.dao.Tgs_info_traineeDaoSqlTestCase.doTestInsert(Tgs_info_traineeDaoSqlTestCase.java:100)
> >>    at
> >>unit.edu.umich.med.umms.tgsubmission.dao.Tgs_info_traineeDaoSqlTestCase.testAll(Tgs_info_traineeDaoSqlTestCase.java:64)
> >>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >>    at java.lang.reflect.Method.invoke(Unknown Source)
> >>    at junit.framework.TestCase.runTest(TestCase.java:154)
> >>    at junit.framework.TestCase.runBare(TestCase.java:127)
> >>    at junit.framework.TestResult$1.protect(TestResult.java:106)
> >>    at junit.framework.TestResult.runProtected(TestResult.java:124)
> >>    at junit.framework.TestResult.run(TestResult.java:109)
> >>    at junit.framework.TestCase.run(TestCase.java:118)
> >>    at junit.framework.TestSuite.runTest(TestSuite.java:208)
> >>    at junit.framework.TestSuite.run(TestSuite.java:203)
> >>    at
> >>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:474)
> >>    at
> >>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:342)
> >>    at
> >>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:194)
> >>
> >>-Henry
> >>
> >>
> >>
> >
> >
> >
> >
>

Mime
View raw message