[在线求教][急] ORA-01461 Hibernate 运行错误 你把数据库的blob类型变大点试试看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当企图更新一个不存在的id实体时,便发生了这样的异常Could not synchronize database state with session看看你的id是否传递过去 请用你的oracle安装目录下的jdbc驱动,比如:$oracle_home\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar注意:工程的驱动必须与数据库的驱动一致,初步怀疑你这里的jdbc驱动版本不对导致此问题。另外一个可能就是数据库的字符集与程序的字符集不一致。你这个问题只有当插入中文才会出现吧 在网上查了很多资料,都倾向于是使用的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 其实这个问题好多人碰到过,不知道你是那种情况:http://www.baidu.com/s?bs=ORA-01461%3A+can+bind+a+LONG+value+only+for+insert+into+a+LONG+column&f=8&wd=ORA-01461%3A+can+bind+a+LONG+value+only+for+insert+into+a+LONG+column 下一个ojdbc14.jar的驱动就可以了,10.1和10.2的驱动不一样。 对于UTF-8或欧洲的某些字符集,oracle在存储时,对于一个字符需要2个或3个字节的存储空间,虽然表定义中为varchar2(4000),但是其实该字段的data_length为其2倍或3倍长。这种情况下oracle会把data_length长度超过4000的当做LONG型处理,你的表中有两个这样的字段,插入数据时相当于同时操作2个LONG字段,所以报错 不知道楼主是不是这个原因 Oracle 的 JDBC 驱动基本上是向下兼容的,比如:Oracle JDBC 11g 的驱动可以用于 Oracle 11g, Oracle 10g, Oracle 9i 等版本的数据库。这里是 Oracle JDBC 驱动的下载页面(可以去下载最新版本的 JDBC 驱动程序):http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html这里有 Oracle JDBC 驱动版本与 Oracle 数据库版本之间的兼容列表,可以根据数据库版本选择最新的 JDBC 驱动:http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html#02_02 批量更新的问题:先把byte[] tempfor(int i=0;i<temp.length;i++){ this.getHibernateTemplate().save(picture);}试试看吧! java nio 客户端异常关闭问题 问一个java连接sql server2005的问题 关于一个表格的行显示问题 大家给小弟推荐一下java网络编程的书吧,如果有电子书的话,可以发一分给我吗? 高分求java blend的资料 如何在<frame>左边点击,并添加到右边的页面中~~~~~~~~~ 请教;JSP用UPloadfil 组件上传文件 请教:html或者jsp中怎样设置图片的缓存?(100分噢) jsp中如何上传图片? 一个有关jasperreport中文显示的问题? 请教个struts2.1.6 零配置和手工配置并存的问题? spring2.x 配置问题
看看你的id是否传递过去
$oracle_home\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar注意:工程的驱动必须与数据库的驱动一致,初步怀疑你这里的jdbc驱动版本不对导致此问题。
另外一个可能就是数据库的字符集与程序的字符集不一致。你这个问题只有当插入中文才会出现吧
http://www.baidu.com/s?bs=ORA-01461%3A+can+bind+a+LONG+value+only+for+insert+into+a+LONG+column&f=8&wd=ORA-01461%3A+can+bind+a+LONG+value+only+for+insert+into+a+LONG+column
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html这里有 Oracle JDBC 驱动版本与 Oracle 数据库版本之间的兼容列表,可以根据数据库版本选择最新的 JDBC 驱动:
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html#02_02
先把byte[] temp
for(int i=0;i<temp.length;i++){
this.getHibernateTemplate().save(picture);
}
试试看吧!