Item 1 is String limitation. Item 2 I've never hit when using iBatis. I did get it however a few times in PL-SQL... the problem was then solved by using the Oracle function to_lob() while inserting the lob.
Regards, Sven Boden On Thu, 09 Jun 2005 13:05:50 -0400, you 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 <[EMAIL PROTECTED]> 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 >>> >>> >>> >> >> >> >>