ORACL 异常:can bind a LONG value only for insert into a LONG column

以下为异常信息:Causedby:java.sql.BatchUpdateException:ORA-01461:canbindaLONGvalueonlyforinse... 以下为异常信息:
Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column
......
....
严重: Servlet.service() for servlet default threw exception
java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column

...
...

Hibernate operation: Could not execute JDBC batch update; uncategorized SQLException for SQL [update INS_MTO_PLAN_UNIT_MX set REMARK=?, CAPABILITYID=?, CAPABILITY=?, CAPABILITYDATE=?, PROCESSINGRESULTS=?, ALARMID=?, ALARM=?, INS_MTO_PLAN_UNIT_ID=?, ALARMLEVEL=?, ALARMTYPE=?, ALARMDATE=? where ID=?]; 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

请教高人。
谢谢。

能准确描述错误原因最好。
没有的话,
请列举 出现这个错误有哪些原因。
谢谢。
展开
 我来答
思思d84
2012-05-28 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:50.9万
展开全部
估计你的表中有定义超过2000的字符字段
对于gbk和utf-8 字符集oracle在存储时,对于一个字符需要2个或3个字节的存储空间,其实该字段的data_length为其2倍或3倍长。这种情况下oracle会把data_length长度超过4000的当做LONG型处理,插入数据时相当于操作LONG字段,所以报错。
厍曼冬6o
推荐于2018-02-28 · TA获得超过1569个赞
知道小有建树答主
回答量:1336
采纳率:0%
帮助的人:1208万
展开全部
原因大概如下:
1、插入到字符串长度大于4000字节。
2、插入到表中的记录的某个字段数据的实际长度大于2000个字节(如果是UTF-8,则是1333个字节);或者是插入的记录中有两个或两个以上长度大于2000字节的字符串。
3、数据库与客户端的JDBC驱动不匹配。

建议用Oracle 10g 10.2.0.4 JDBC_classes12.jar
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oushaomeng
2012-12-04
知道答主
回答量:37
采纳率:100%
帮助的人:18.4万
展开全部
我今天出现的原因是:jboss里面的ojdbc14的版本过低
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式