oracle中 在已有数据的表中更改字段类型

   大家好!今天在工作中碰到一个小问题,今天,别的模块来个需求,说让我添个根据时间查询数据,我说好啊,可以。当我做的时候我发现时间这个字段TNN的是varchar类型的,之后就改数据类型呗,在plsql直接改,好的。但是不行了,因为有数据的情况下不能改数据类型,废话不多说了,其实我很能墨迹。下面是四条sql语句能帮助在表有数据的情况下改变字段类型,我只在oracle下执行过,其他数据库我不清楚。

alter table eomsinfo rename column dealTime2 to dealTime22  把原字段换个名字,此条的sql是把dealTime2  换成dealTime22 
ALTER TABLE eomsinfo ADD dealTime2  DATE;   在表中添加一个原字段名字dealTime2 ,并把类型定义自己想改变的类型, 此条是定义DATE类型
UPDATE eomsinfo SET dealTime2 = CAST(to_date(dealTime22,'yyyy-mm-dd hh24:mi:ss') AS DATE);  这条语句是把备份的dealTime22 字段内容 添加到新建字段dealTime2 中来,这条语句就是把varchar类型的数据转换成date类型在插入到新定义的dealTime2
ALTER TABLE eomsinfo  DROP COLUMN dealTime22;  这条语句是把备份字段dealTime22去掉

猜你喜欢

转载自vanceinfozdw.iteye.com/blog/1332203