操作clob 大字段的can bind a LONG value only for insert into a LONG column 异常处理
来源:互联网 发布:以太坊挖矿软件 编辑:程序博客网 时间:2024/05/17 08:48
开发架构:spring 2.0
DAO层:ibatis 2.3
DB: oracle 10g
需要在spring的application.xml的关于clob的配置。如下源码:
==========================================
<!-- spring提供的对ibatis大字段处理 -->
<bean id="nativeJdbcExtractorNew" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true"/>
<bean id="oracleLobHandlerNew" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
<property name="nativeJdbcExtractor"><ref local="nativeJdbcExtractorNew"/></property>
</bean>
<!-- SqlMap setup for iBATIS Database Layer -->
<bean id="sqlMapClientNew" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSourceNew" />
<!-- 大字段处理 -->
<property name="lobHandler"><ref local="oracleLobHandlerNew"/></property>
</bean>
============================================
对clob的操作出现can bind a LONG value only for insert into a LONG column ,主要问题是在引入jar包上。
先说下我做的项目中大字段出现的问题时的系统引入的jar包,oracle版本:10g,用的驱动版本:classes12.jar的版本10.2.0.1.0。并且项目中同时还有ojdbc14.jar(10.02版本) 、ojdbc14dms.jar、classes12dms.jar、ojdbc14dms_g.jar这几个都设计数据库操作的jar包,Tomcat的lib下也是classes12.jar(10.2.0.1.0版本)。在项目具体模块中涉及到大字段的操作时候,始终出现can bind a LONG value only for insert into a LONG column 的sql异常。
在网上查了很多资料,都倾向于是使用的oracle版本和classes12.jar的版本不一致的问题所造成,因为项目使用的是oracle10g,换了classes12.jar(10.2.0.1.0版本)包与所使用的oracle版本一致了,但是在操作时问题依然出现sql的异常。
=================================================
解决方式:
1.删除项目中的ojdbc14.jar(10.02版本) 、ojdbc14dms.jar、classes12dms.jar、
ojdbc14dms_g.jar、classes12.jar(10.2.0.1.0版本)这样的jar。
2.同时删除tomcat/lib下的classes12.jar包。
3.用ojdbc14.jar(注意:Oracle JDBC Driver version - 10.1.0.2.0)添加到项目和tomcat中。
重启app,操作相应的用到大字段的模块,问题解决。
================================================================
问题的原因:
驱动包classes12.jar用于JDK 1.2和JDK 1.3,而ojdbc14.jar用于JDK 1.4及以上,所以尽量不要使用classes12.jar;
从oracle 9.2之后,对jdbc 的驱动程序的命名将有所改变,JDK1.1,JDK1.2的驱动程序名(class12.jar)将不再改变,一直沿用下去,从JDK1.4开始驱动程序名将所有改变,例如:JDK1.4的驱动名为ojdbc14.jar 。JDK1.5的驱动名为ojdbc15.jar
- 操作clob 大字段的can bind a LONG value only for insert into a LONG column 异常处理
- ORA-01461: can bind a LONG value only for insert into a LONG column
- ORA-01461: can bind a LONG value only for insert into a LONG column
- ORA-01461: can bind a LONG value only for insert into a LONG column 问题解决方案
- hibernate错误:ORA-01461: can bind a LONG value only for insert into a LONG column
- ORA-01461: can bind a LONG value only for insert into a LONG column
- can bind a LONG value only for insert into a LONG column
- 转: can bind a LONG value only for insert into a LONG column
- Siebel Exception: ORA-01461: can bind a LONG value only for insert into a LONG column
- can bind a LONG value only for insert into a LONG column
- 解决 ORA-01461: can bind a LONG value only for insert into a LONG column
- ORA-01461: can bind a LONG value only for insert into a LONG column oracle
- ORA-01461: can bind a LONG value only for insert into a LONG column
- ORA-01461: can bind a LONG value only for insert into a LONG column解决办法
- ORA-01461: can bind a LONG value only for insert into a LONG column
- 关于ORA-01461: can bind a LONG value only for insert into a LONG column
- can bind a LONG value only for insert into a LONG column
- can bind a LONG value only for insert into a LONG column
- 必备的 Java 参考资源列表【转】
- 独学而无友 则孤陋而寡闻!
- USB 协议分析 设置USB地址 和 配置-字符串描述符
- 实验三
- ASCII 编码表
- 操作clob 大字段的can bind a LONG value only for insert into a LONG column 异常处理
- 点击画面关闭按钮时使控件验证事件无效
- 浮点数的比较
- 易经.谦
- va_start va_end va_arg的用处
- sp_reset_connection是干嘛的?( What does sp_reset_connection do?)
- C#代理详解
- 关于hibernate+spring+sqlserver2000的问题!
- MySQL innodb 锁测试(一)