您的位置:首页 > 数据库 > Oracle

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐