转载: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?

1

2

3

4

5

6

7

8

9

10

11

12

13

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值