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的方法一樣了。