求解 java.sql.BatchUpdateException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值

Rush_Wangxh 2010-12-17 11:21:43
生产环境报java.sql.BatchUpdateException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 这个异常
无能为力呀,求高手帮忙,谢谢
java程序里用绑定变量批量更新的方式更新表,几张表中都没有超长字段,最长设了varchar2(120),也没有用到clob类型的字段,jdbc驱动版本和数据库版本也是一致的都是10.2.0.3,字符里是有中文的,但是只有一个案例在生产环境里出错,其他数据没有问题,
在我测试环境里用同样的数据没有问题,测试环境没法重现,这个逻辑里要update六张表,每次报错都不是同一张表

网上其他帖子说是数据库的bug,有没有高手解释下为什么有这个bug,有没有办法解决。
谢谢

补充:
字符里的中文也都是简单的字,没有生僻字
把更新语句拿出来在数据库里直接跑,也没有问题

请高手们提供点解决思路,不胜感激!
...全文
1268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuan_yuan_0000 2013-09-06
  • 打赏
  • 举报
回复
楼主,这个问题最后怎么解决的啊?我也遇到这个问题
iihero_ 2010-12-17
  • 打赏
  • 举报
回复
推断来看,应该是环境问题。
字符集配置的不一样?难道。
Oraclefans_ 2010-12-17
  • 打赏
  • 举报
回复
这可能和客户端的字符集有关了。。。。。
具体参考下这个。。。。刚刚讨论的。。
http://topic.csdn.net/u/20101216/00/640427fe-0f55-4063-9adc-416a9aa0c61e.html
Rush_Wangxh 2010-12-17
  • 打赏
  • 举报
回复
数据库的字符集如下:
SELECT * FROM v$NLS_PARAMETERS


1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CURRENCY $
4 NLS_ISO_CURRENCY AMERICA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT DD-MON-RR
8 NLS_DATE_LANGUAGE AMERICAN
9 NLS_CHARACTERSET ZHS16GBK
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
Rush_Wangxh 2010-12-17
  • 打赏
  • 举报
回复
谢谢回复,
应该不是字符集的问题,因为我是从oracle数据库的一张表里取的数据,然后更新到另外一张表,这两张表字段定义都是一样的,感觉应该是oracle的问题,但是不知道怎么可以解决。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧