Oracle列类型转换

Author Avatar
Serical 8月 17, 2016
  • 在其它设备中阅读本文章

CHAR型转为INTEGER

原来为char型,现需要改为integer型,当列中有数据后不能直接更改类型,需要先清空再更改类型,但这无疑会丢掉原来的数据。做法如下:

第一步:添加TYPE1字段

ALTER TABLE TABLE_NAME ADD TYPE1 INTEGER DEFAULT 0;

第二步:UPDATE TYPE1的值为TYPE的值

UPDATE TABLE_NAME T SET T.TYPE1 = NVL(T.TYPE, 0);

第三步:删除原TYPE列

ALTER TABLE TABLE_NAME DROP COLUMN TYPE;

第四步:重命名TYPE1为TYPE

ALTER TABLE TABLE_NAME RENAME COLUMN TYPE1 TO TYPE;