首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Oracle笔记之修改表字段类型

Oracle笔记之修改表字段类型

作者头像
SmileNicky
发布2019-01-17 16:12:00
发布2019-01-17 16:12:00
9680
举报
文章被收录于专栏:Nicky's blogNicky's blog

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

代码语言:javascript
复制
alter table A modify (a varchar2(10));

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

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

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

代码语言:javascript
复制
添加一个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;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年10月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档