zoukankan      html  css  js  c++  java
  • [Oracle]ORA-01461: can bind a LONG value only for insert into a LONG column

    使用oracle时,如果插入字符串超出字符串长度会报这一错误。因为VARCHAR2的oracle长度限制是4000,所以如果长度为4000还放不下,可以考虑将数据类型改为clob(character large object)类型。clob类型少于4000个字节,会与记录放在一起存储,超过4000个字符,就会分开存储,个人估计会在记录里计入分开存储的入口地址。clob最大支持4G字节。

    但是oracle修改把列类型从varchar修改为clob类型,是会报错的,错误是ORA-22858: 数据类型的变更无效。

    这时候只能将表数据备份后,删表重建。

    -------------------分割线----------------

    下面讲一下VARCHAR2长度的计算。

    限定字符集SIMPLIFIED CHINESE_CHINA.ZHS16GBK(通过select userenv('language') from dual;)查看

    此字符集下,英文字符占用字节数为1,中文字符占用字节数2。

    而VARCHAR2的长度指的是字节数,VARCHAR2(4000)可以保存4000个英文字符或者2000个中文字符。

    NVARCHAR2的长度指的是字符数,NVARCHAR只能保存AL16UTF16 or UTF8这两种字符集,最大支持2000个字符。

     

  • 相关阅读:
    简单排序(冒泡、选择、插入)
    配置Tomcat数据源
    使用spring的邮件发送功能
    安装Tomcat
    Spring-MongoDB简单操作
    cisco ASA ios升级或恢复
    ASA 用TFTP 备份配置方法
    DELL MD3200i存储控制器解锁方法
    IBM ServerGuide引导盘全系列下载网址
    ASA5520远程配置 telnet,ssh
  • 原文地址:https://www.cnblogs.com/wendelhuang/p/7279265.html
Copyright © 2011-2022 走看看