美文网首页
ORA-01461: 仅能绑定要插入 LONG 列的 LONG

ORA-01461: 仅能绑定要插入 LONG 列的 LONG

作者: wifi四姨 | 来源:发表于2017-10-20 14:38 被阅读0次

问题背景
邮箱表PH_MAILINFO的内容(mailcontent)字段大小设置为varchar2(4000)

当向mailcontent字段中插入的数值大于2000时 便会抛出 Cause: java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException

原因:
指用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是varchar2类型(最大长度为4000字节)的,当长度超过2000--4000(最大值)之间的时候,oracle会自动将该字段值转为long型的,插入操作失败。

解决方法:
一:从代码中解决:若插入该字段的数据过多 则只取2000长度的数据 substring(0,2000)

二:从数据库中解决:将此字段的类型改为clob或者blob类型;

但是将oracle数据库表中的varchar2类型直接改成clob类型会失败,解决办法如下:new 一个Sql view,执行下列代码:

alter table table_name modify col_name long;
alter table table_name modify col_name clob;

在进行此操作之前需要先备份表的数据,然后清空表中的数据,再修改表的字段属性,最后将数据导入即可。

报错的截图:

image.png

相关文章

  • ORA-01461: 仅能绑定要插入 LONG 列的 LONG

    问题背景邮箱表PH_MAILINFO的内容(mailcontent)字段大小设置为varchar2(4000) 当...

  • ORA-01461: 仅能绑定要插入 LONG 列的 LONG

    在操作数据库的时候,讲一个数值保存到一个VARCHAR(2000)的字段里面,出现了下面的错误:仅能绑定要插入 L...

  • long long ago

  • It is a long long journey

    我们其实一直在路上,偶尔驻足只是想着把快乐的时光拉得更长,却忘了它们只是壁虎的尾巴,即使再小心翼翼也逃避不了折断的...

  • Long Long ago。。。

    01.没事不走夜路 时值盛夏,午夜过后,田间、屋外池塘里时不时传来蛙声、蛐蛐声,透过窗户月亮高高挂上树梢,那么明亮...

  • long long ago!

    这个寒假 过的像高考后的暑假 坐等通知

  • long long time

    很长很长时间了,之所以这样写,真是感慨于人想要坚持一件事真的是很不容易,无论你当时是抱着多大的决心开始做一件...

  • long long ago

    很久 没有联系 像故事没有再续 你的消息 从别人无关紧要提及 不禁唏嘘 我们的距离 远的还算可以 很久 没有...

  • 2023-02-14

    幸运之光 很早很早很早很早很早以前 long long ago long long long long ago 有...

  • 5月30日 love letter

    “Life is a long long long very long journey , with respec...

网友评论

      本文标题:ORA-01461: 仅能绑定要插入 LONG 列的 LONG

      本文链接:https://www.haomeiwen.com/subject/tmcvuxtx.html