oracle数据库表中字段类型由varchar2改成number,表里有数据的,有办法不...

发布网友

我来回答

1个回答

热心网友

修改类型要求字段类型必须是为空。
要不您就建一个临时表把数据先备份过去吧
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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com