hibernate持久化一个对象到oracle数据库,有个中文属性, 执行getHibernateTemplate().saveOrUpdate(u);语句是出现Hibernate flushing: Could not execute JDBC batch update; uncategorized SQLException for SQL
[insert into pms2_opera2 (version, name, action, description, status, id) values (?, ?, ?, ?, ?, ?)];
SQL state [72000]; error code [1461];
ORA-01461: can bind a LONG value only for insert into a LONG column ;
nested exception is java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column
这个错误
数据库里面的表是通过orm映射出来的,请大侠们帮忙解决下。
------解决方案--------------------
字符类型在pl/sql中做为变量存大,最大可支持32767个字节,但在sql中通常只能够支持到4000字节(char/nchar为2000),因此如果声明的变量长度超出了sql中类型长度,并且变量实际值也超出类型可接受最大值时,就会触发ORA-01461错误