Oracle应用之修改表字段类型
【摘要】 Mysql对于有数据和没数据的表字段类型都可以随意修改,不过oracle就不一样。 假如表A有个字段a,本来为number类型,然后我们想修改为varchar2类型。 (1)字段a没数据的情况,改为varchar2(10),可以如下:
alter table A modify (a varchar2(10));
1
(2)字段有数据的情况,执行上面sql会提示
...
Mysql对于有数据和没数据的表字段类型都可以随意修改,不过oracle就不一样。
假如表A有个字段a,本来为number类型,然后我们想修改为varchar2类型。
(1)字段a没数据的情况,改为varchar2(10),可以如下:
alter table A modify (a varchar2(10));
- 1
(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;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
文章来源: smilenicky.blog.csdn.net,作者:smileNicky,版权归原作者所有,如需转载,请联系作者。
原文链接:smilenicky.blog.csdn.net/article/details/83046006
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)