Oracle 表已經有數據 修改字段類型,把varchar2類型變成date類型

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章