oracle数据库表中字段类型由varchar2改成number,表里有数据的,有办法不删表里数据而能改字段类型吗?

该字段中数据全部是number型的。... 该字段中数据全部是number型的。 展开
 我来答
匿名用户
2011-04-14
展开全部
修改类型要求字段类型必须是为空。
要不您就建一个临时表把数据先备份过去吧
create table b
as
select * from a
之后清空a列或者全清空,然后再往回转,使用to_number把varchar2字段转化一下存回来。
追问
看来是没办法不删数据改类型了,唉!
追答
呵呵,是啊,只能想一个方法来解决一下了。
您好,您这个问题,我想到了一个办法,先增加一个字段,别叫这个名,数字型的,然后把字符型转化成数字,更新到这个字段上去,删除字符型字段,再更改新增的字段的名字,就可以了。
alter table tablename add column newcolumn NUMBER(10);
UPDATE TABLENAME SET NEWCOLUMN = NVL(TO_NUMBER(OLDCOLUMN),0);
ALTER TABLE TABLENAME DROP COLUMN OLDCOLUMN;
ALTER TABLE TABLENAME RENAME NEWCOLUMN TO OLDCOLUMN;
假设之前的名字是OLDCOLUMN 字符型,先新增数字型NEWCOLUMN,更新NEWCOLUMN后,删除OLDCOLUMN,再把NEWCOLUMN改名为OLDCOLUMN
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式