如果表中有数据,Oracle是不能修改其数据类型的。但可以通过新建一个临时列,将要修改列的数据复制到临时列中,删除原列再修改临时列的名字。这样说好像有点拗口,分步解说一下。
表AC_REG中有列:is_active,原来是字符类型的,目标是将它改为数值类型
---目标将IS_ACTIVE改为数值型--新增一列alter table AC_REG add is_active_temp number(1);--将IS_ACTIVE的值,赋给is_active_tempupdate 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_)