在修改数据库中表zz中的字段jtdh长度时,出现了如下的问题:

ORA-01441:无法减小列长度,因为一些值过大

看一下我的思路,我先将zz表中jtdh(家庭电话)长度大于30的jtdh(家庭电话)写入bz(备注)

update zz set bz=bz||'原家庭电话信息:'||jtdh,gxsj=sysdate where length(jtdh)>'30';

之后将zz表中jtdh(家庭电话)长度大于30的jtdh(家庭电话)截取长度为30的数据

update zz set jtdh=substr(jtdh,1,30),gxsj=sysdate where length(jtdh)>'30';

commit;

最后,修改zz表中jtdh(家庭电话)长度为30

alter table zz modify jtdh VARCHAR2(30);

是不是觉得这一切都是正常的,没有问题,为什么会报错呢?

实际上这里需要注意的就是:字符与字节的区别

例如:

update zz set bz=bz||'原家庭电话信息:'||jtdh,gxsj=sysdate where length(jtdh)>'30';

就是将字符长度大于30的取出来,但是汉字在oracle中占一个字符,三个字节,就应该写成

update zz set bz=bz||'原家庭电话信息:'||jtdh,gxsj=sysdate where lengthb(jtdh)>'30';

将上面所有按字符取长度的换成按字节取长度,sql如下:

update zz set bz=bz||'原家庭电话信息:'||jtdh,gxsj=sysdate where lengthb(jtdh)>'30';

update zz set jtdh=substrb(jtdh,1,30),gxsj=sysdate where lengthb(jtdh)>'30';

commit;

之后修改字段长度:

alter table zz modify jtdh VARCHAR2(30);

OK,就是这样了。

每天进步一点点。

推荐微信公众号【排骨肉段】,记录日常的美好。

oracle-01441,ORA-01441:无法减小列长度,因为一些值过大相关推荐

  1. oracle无法减小列长度,中国港湾扩展表单分配时调整字段后保存时报错,无法正常维护表单定义...

    版本号: 7.0.4 业务场景(如下):中国港湾扩展表单分配时调整字段后保存时报错,无法正常维护表单定义 异常提示: 异常信息:添加业务实体的时候出错. 导致错误的应用程序或对象的名称:Generso ...

  2. oracle在group by时某列有多个值的拼接

    最近编码过程中出现了group by后,某些列会有多个值,而我需要把这些多个值的列进行拼接的情况,和大家分享一下. 有如下表student: 我们希望以class分组,每组的信息平铺,效果如下 分组首 ...

  3. ORACLE全部ORA错误收集整理

    有时数据库出现问题,不是每次都有网络可查,所以把所有的ora系列的错误整理出来, 在最没有办法的时候,需要自己来解决,有了这些根据,问题会好办的.虽说对于数据库方面, DBA很强大,他们在遇到错误时, ...

  4. oracle exp ora 01406,8i9i exp 10g遭遇 ora-1406及ora-1406相关问题

    本文提到的案例 通过odbc驱动使用高精度number类型,如果遇到下面两种情况,会出现这个错误 -to fetch of a calculated column with many decimal ...

  5. 04 ORA系列:ORA-00984 列在此处不允许 SQL parse error location

    如果希望对常见的Oracle异常ORA报错解决方案有系统的了解,请看<ORACLE系列异常总结ORA>. create table t_user( fid varchar2(44) pri ...

  6. oracle 大表新增列 慢_Oracle DDL性能改进-大表新增列行为分析

    生产过程中常常会遇到对表需要在线增加列,尤其是新增带缺省值的非空列,例如: ALTER TABLE .. ADD COLUMN ( ... NOT NULL DEFAULT ... ) 在Oracle ...

  7. Oracle 11g新特性之--虚拟列(Virtual Column)

    Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...

  8. oracle同时更新多列数据,ORACLE 11G 表联合更新多列

    -- ORACLE 11G  表联合更新多列 update apps.SGD_ACTUAL_WIP_COST cst set (cst.ITEM_ID,cst.WIP_ENTITY_ID,cst.ST ...

  9. oracle+字段+virtual,Oracle 11g新特性之--虚拟列(Virtual Column)

    Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...

最新文章

  1. 使用ASP.NET MVC 2编程时遇到的两个小问题
  2. 源码阅读心得11-13
  3. 爬虫——正则表达式re模块
  4. 【数据结构与算法】【算法思想】 A *搜索算法
  5. 1004. Counting Leaves (30)
  6. Linux操作系统内核启动参数详细解析[转]
  7. u-boot-2010.09移植(A)
  8. selenium报错TypeError: 'FirefoxWebElement' object is not iterable
  9. JavaScript函数实例(一)
  10. PRML 十大经典机器学习算法
  11. 如何在移动硬盘上安装Linux系统?WIN10 + Ubuntu 18.0.4(LTS)
  12. linux系统维护诸多定时器,linux定时器总结
  13. Java 数学三角函数正弦、余弦、正切以及反正弦、反余弦、反正切函数的使用
  14. win10 开机黑屏时间长 联想y470解决方案
  15. 前端学习记录(三) CSS浮动、定位与居中
  16. Golang连接Redis数据库
  17. Oracle v12.2 Bug 27163928触发ORA-4031 导致实例crash.
  18. Nginx SPDY patch实现
  19. limma差异分析谁比谁不重要
  20. IaaS、PaaS、SaaS、BaaS和FaaS英文全称以及解释说明

热门文章

  1. 系统分析师论文 -结束语参考
  2. 高通手机型号、开机logo、默认语言设置等小修改
  3. 四家银行使用R3 Corda平台完成10万欧元商业票据交易
  4. 记录一次文本挖掘 情感分析的项目过程
  5. Otsu大津算法公式推导及python实现
  6. Java-renameTo()失败原因总结
  7. 2023 年江苏省职业院校网络搭建与应用赛项
  8. 公司来了个00后,真是卷死了呀,辞职信已经写好了·····
  9. ZOJ 2302 Elevator
  10. linux配置网络步骤