如果表中有数据,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;
blob转varchar2
UTL_RAW.CAST_TO_VARCHAR2(blob_)