oracle数据库alter table,oracle 数据库 alter table的用法(经典)

首先说一下最简单的oracle  alter table的命令吧,如下:

--增加字段  alter table tablename add column fieldname varchar2(2)  或者 alter table tablename add(fieldname clob)

-- 删除字段  alter table tablename drop column fieldname

-- 修改字段 (修改字段名字) alter table tablename rename column oldfield to newfield

(修改字段大小) alter table tablename modify fieldname varchar2(2000)

今天在修改一个表记录中的某个字段的时候,这个表的字段为clob类型,而且数据已经有很多了,我想要把这个clob修改成varchar2(4000)于是我心想这个简单,我就直接用命令 alter table tablename modify filedname varchar2(4000) 心想这也很快就可以结果问题,结果令我一想不到的错误产生,原来不同类型之间需要转换的时候,只操作这也的语句是不行,查了一些资料终于结果问题了,解决命令如下:

首先要在修改的表中,先新建一个字段: alter table tablename add newfield varchar2(4000);

其次就是给这个新增的字段赋值(即把原来的clob字段的值给这个新的字段,一个需要特别注意的如果新增的字段中接受的值要是大于4000的话,会移植失效),

执行命令如下:update tablename set newfield=dbms_lob.substr(oldfield,1,dbms_lob.getLength(oldfield));

当以上命令执行成功后,查看表是否有数据导入到新的字段中后,然后在drop掉之前的oldfield字段(即clob字段),

alter table tablename drop column oldfield;

如果想要把这个新增的字段换成旧字段则要执行:alter table tablename rename column oldfield to newfield ;

至此问题解决了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值