在oracle中能不删除表中数据改变字段的类型吗?

oracle中某表的字段设置为number(9),现欲改为Varchar2(5),但是库中有很多数据,怎样能保证数据不丢失,把类型改过来?
---------------------------------------------------------------

SQL> create table aaa (a number(9));

Table created.

Elapsed: 00:00:00.32
SQL> insert into aaa values(999);

1 row created.

Elapsed: 00:00:00.03
SQL> commit;

Commit complete.

Elapsed: 00:00:00.00
SQL> alter table aaa add b varchar2(5);

Table altered.

Elapsed: 00:00:00.17
SQL> update aaa set a=b;

1 row updated.

Elapsed: 00:00:00.02
SQL> commit;

Commit complete.

Elapsed: 00:00:00.03
SQL> alter table aaa drop column a;

Table altered.

Elapsed: 00:00:00.52
SQL> alter table aaa rename column b to a;

Table altered.

Elapsed: 00:00:00.04
SQL>

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus