oracle数据库表中字段类型由varchar2改成number,表里有数据的,有办法不删表里数据而能改字段类型吗?
1个回答
2011-04-14
展开全部
修改类型要求字段类型必须是为空。
要不您就建一个临时表把数据先备份过去吧
create table b
as
select * from a
之后清空a列或者全清空,然后再往回转,使用to_number把varchar2字段转化一下存回来。
要不您就建一个临时表把数据先备份过去吧
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询