oracle9i clob字段插入 报错ORA-01461
2012-03-19 23:44
267 查看
程序运行了大半年了,突然收到用户的发现的问题,数据有时候保存不进去。
后台显示是ORA-01461: 仅可以为插入 LONG 列的 LONG 值
多翻定位才发现是oracle9i,有一个clob字段,当插入数据的长度在1000、2000内,就会抛出这样的错误。其他的情况都正常。
对此网上的解决方案实在是五花八门,有换驱动的,换数据库的,修改hibernate配置等等。我想升级数据库肯定是ok的,但成本太高了,而修改hibernate配置,把原来映射string类型修改成clob类型,后面又牵涉到修改实体类,service层等多个类,风险也太高。
还是用这位仁兄的方法把:
思路:将存储的字符串补上空格,让其超过2000的长度即可,但仅限与紧急解决问题。
1、首先在.java文件中引入import org.apache.commons.lang.StringUtils;
2、在此.java文件的相应的方法里添加如下判断:
// 处理ora-1461问题(clob长度在1000-2000之间会出错)
if (xml.length() >= 1000 && xml.length() <= 2000) {
xml = StringUtils.rightPad(xml, 2008);
}
其他参考:
http://xuebin530.blog.163.com/blog/static/3772147200972731915975/
/article/4395916.html
http://www.iteye.com/topic/565169
后台显示是ORA-01461: 仅可以为插入 LONG 列的 LONG 值
多翻定位才发现是oracle9i,有一个clob字段,当插入数据的长度在1000、2000内,就会抛出这样的错误。其他的情况都正常。
对此网上的解决方案实在是五花八门,有换驱动的,换数据库的,修改hibernate配置等等。我想升级数据库肯定是ok的,但成本太高了,而修改hibernate配置,把原来映射string类型修改成clob类型,后面又牵涉到修改实体类,service层等多个类,风险也太高。
还是用这位仁兄的方法把:
思路:将存储的字符串补上空格,让其超过2000的长度即可,但仅限与紧急解决问题。
1、首先在.java文件中引入import org.apache.commons.lang.StringUtils;
2、在此.java文件的相应的方法里添加如下判断:
// 处理ora-1461问题(clob长度在1000-2000之间会出错)
if (xml.length() >= 1000 && xml.length() <= 2000) {
xml = StringUtils.rightPad(xml, 2008);
}
其他参考:
http://xuebin530.blog.163.com/blog/static/3772147200972731915975/
/article/4395916.html
http://www.iteye.com/topic/565169
相关文章推荐
- Oracle中Clob类型处理解析(NHibernate long值绑定long列,或者是直接oraclecommand的插入的时候报错都能用,ORA-01461:仅可以插入LONG列的LONG值赋值
- mybatis批量插入clob,ORA-01461-仅能绑定要插入LONG列的LONG值
- spring+hibernate2.0+oracle9i实现clob字段的插入和读出
- Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值
- (Clob的写入和读取-java)更新数据库报错:SQL Error: 1461, SQLState: 72000 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
- 解决oracle中插入大字段时,报ORA-01461错。
- Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值
- mybatis + oracle insert clob,出现ORA-01461:仅能绑定要插入LONG列的LONG值
- 转----Oracle中Clob类型处理解析(NHibernate long值绑定long列,或者是直接oraclecommand的插入的时候报错都可以用,ORA-01461:仅可以插入LONG列的LONG值赋值)
- proc中插入VARCHAR2字段报ORA-01461: can bind a LONG value only for insert into a LONG column
- mybatis批量插入clob,ORA-01461-仅能绑定要插入LONG列的LONG值
- PLSQLDeveloper中调试含clob字段的存储过程中出现 ORA-03127: 在活动操作结束之前不允许进行操作
- java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
- 出现ORA-01461:仅能绑定要插入LONG列的LONG值 mybatis+orcale
- 修改clob字段并插入新表|转|
- Oracle 插入超4000字节的CLOB字段的处理方法
- CLOB字段超4000报ORA-22835或ORA-01704
- ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值
- oracle ORA-01704问题(clob字段insert报错)
- ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值