Oracle 修改现有列的数据类型

如果表中有数据,Oracle是不能修改其数据类型的。但可以通过新建一个临时列,将要修改列的数据复制到临时列中,删除原列再修改临时列的名字。这样说好像有点拗口,分步解说一下。

表AC_REG中有列:is_active,原来是字符类型的,目标是将它改为数值类型

---目标将IS_ACTIVE改为数值型
--新增一列
alter table AC_REG add is_active_temp number(1);
--将IS_ACTIVE的值,赋给is_active_temp
update AC_REG set is_active_temp = cast(is_active as number(1));
--删除原来的列
alter table AC_REG drop column is_active;
--修改名称
alter table AC_REG rename column is_active_temp to is_active;

 

你可能感兴趣的:(oracle)