你把数据库的blob类型变大点试试看

解决方案 »

  1.   

    当企图更新一个不存在的id实体时,便发生了这样的异常Could not synchronize database state with session
    看看你的id是否传递过去
      

  2.   

    请用你的oracle安装目录下的jdbc驱动,比如:
    $oracle_home\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar注意:工程的驱动必须与数据库的驱动一致,初步怀疑你这里的jdbc驱动版本不对导致此问题。
    另外一个可能就是数据库的字符集与程序的字符集不一致。你这个问题只有当插入中文才会出现吧
      

  3.   

    在网上查了很多资料,都倾向于是使用的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  
      

  4.   

    其实这个问题好多人碰到过,不知道你是那种情况:
    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
      

  5.   

    下一个ojdbc14.jar的驱动就可以了,10.1和10.2的驱动不一样。
      

  6.   

    对于UTF-8或欧洲的某些字符集,oracle在存储时,对于一个字符需要2个或3个字节的存储空间,虽然表定义中为varchar2(4000),但是其实该字段的data_length为其2倍或3倍长。这种情况下oracle会把data_length长度超过4000的当做LONG型处理,你的表中有两个这样的字段,插入数据时相当于同时操作2个LONG字段,所以报错 不知道楼主是不是这个原因
      

  7.   

    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
      

  8.   

    批量更新的问题:
    先把byte[] temp
    for(int i=0;i<temp.length;i++){
        this.getHibernateTemplate().save(picture);
    }
    试试看吧!