• VARCHAR2转换为CLOB碰到ORA-22858错误


    近日工作中发现有一张表的字段类型建错了,本应是BLOB类型却被别人建成了VARCHAR2(200),修改时oracle却提示“ORA-22858 invalid alteration of datatype”错误。
    经查看相关资料才了解,是oracle不允某些类型的字段修改。具体就是不可以将字段类型修改为:object、REF、nested table、VARRAY、 CLOB、BLOB。
    解决方案也很简单就是像学数据结构时经常用到的两变量(a,b)交换值的方法,c = a, a = b, b = c。当然我们这里可以简单处理,具体方法如下:
    1、将字段a改名为_a
    2、新建一个字段a,用正确的类型
    3、将_a字段中的数据经一定转换(一般要做转换的,因为类型变了)后插入了a字段中
    4、删除_a字段
    如果无需保留数据只要1、2、3步就可以了。
    如果表中或该字段中还没有数据,那就更简单了,把那个字段删除再以正确的数据类型新建一个即可。


    正面是本错误的官方解释:

    ORA-22858 invalid alteration of datatype

    Cause: An attempt was made to modify the column type to object, REF, nested table, VARRAY or LOB type.

    Action: Create a new column of the desired type and copy the current column data to the new type using the appropriate type constructor.

  • 相关阅读:
    Access导入MSSQL SERVER
    Centos8停用、启用、查看当前启用的端口
    CentOS下使用VI
    CentOS关机与重启命令
    华为云CentOS8安装FTP
    华为云CentOS8安装JDK
    华为云CentOS8安装Nginx
    华为云CentOS8安装Redis
    华为云CentOS8安装MYSQL
    oracle 本地导入imp bat的写法
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3164738.html
Copyright © 2020-2023  润新知