Oracle修改字段类型,把varchar2类型变成date类型 表已经有数据
原来表是这样的
create table export (
name varchar2(10),
datetimes varchar2(50)
)
原来datetimes 时间的格式为 20090608121418
现在为方便按时时间查找要把datetimes 改成 date类型
alter table export modify (datetimes date) 有数据的时候,这样不起作用。
解决方案:
QL code?
create table export_bak
as
select * from export;
truncate table export;
alter table export modify datetimes date;
insert into export
select name, to_date(datetimes, 'yyyymmddhh24miss')
from export_bak;
commit;
或者
可以先
create table export_bak (
name varchar2(10),
datetimes date
);
insert into export_bak
select name, to_date(datetimes, ‘yyyymmddhh24miss’) from export;
然后去掉所有export上的被references的约束
drop table export;
alter table export_bak rename to export; — 这个rename好像要9i或者9i以上才支持
如果低于9i
就create table export as select * from export_bak; 这样就和ls的方法一样了。