为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle笔记之修改表字段类型

标签:
Java

Mysql对于有数据和没数据的表字段类型都可以随意修改,不过oracle就不一样。
假如表A有个字段a,本来为number类型,然后我们想修改为varchar2类型。
(1)字段a没数据的情况,改为varchar2(10),可以如下:

alter table A modify (a varchar2(10));

(2)字段有数据的情况,执行上面sql会提示

“ORA-01439:要更改数据类型,则要修改的列必须为空”

这时,我们可以换种思路来修改,思路是这样的:先创建一个临时的字段,进行数据备份

添加一个varchar2类型的临时字段
alter table A add new_temp varchar2(10);
备份一下字段a
update A set new_temp = a;
事务提交
commit;
清空字段a数据
update A set a = '';
事务提交
commit;
这时a字段是没数据的
alter table A modify a varchar2(10);
将临时字段的数据搬过来
update A set a = new_temp;
事务提交
commit;
drop一下临时字段
alter table appr_control_info_ex drop column new_temp;



作者:smileNicky
链接:https://www.jianshu.com/p/fc64cea99160


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消