近日工作中发现有一张表的字段类型建错了,本应是CLOB类型却建成了VARCHAR2(4000),修改时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_copy
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.
原文地址:ttp://12447680.blog.163.com/blog/static/17614089200811323126233/
分享到:
相关推荐
### ORA-00845 错误详解与解决方案 #### 错误代码与含义 ORA-00845 错误是指 Oracle 数据库中的一个错误代码,该错误通常表示“MEMORY_TARGET not supported on this system”,即系统不支持 MEMORY_TARGET 参数。...
这两个错误通常会伴随其他错误信息,如ORA-29283表示无效的文件操作,以及ORA-06512指出问题出现在SYS.UTL_FILE包中。 为了理解这些错误并找到解决方案,首先需要明确expdp的用法和目的。expdp是Oracle的Data Pump...
#### 二、ORA-01041错误详解 ORA-01041是Oracle数据库的一种内部错误代码,通常表示在执行某个操作时遇到了未预期的情况。在这种情况下,“hostdef扩展名不存在”表明Oracle客户端在加载或识别某些必需的组件时出现...
【ORA-600 16703 灾难恢复详解】 在数据库管理领域,数据恢复是一项至关重要的任务,尤其是当系统遇到严重错误如 ORA-600 时。ORA-00600 是Oracle数据库内部错误代码,通常表示遇到了未预期的内部错误或数据结构...
### ORA-01157 错误详解与解决方案 #### 错误代码与含义 ORA-01157 错误是 Oracle 数据库中一个常见的错误代码,其全称是:“ORA-01157: 无法识别/文件 - DBWR 文件”。这个错误通常发生在数据库启动过程中,当...
### ORA-12560 TNS 协议适配器错误详解 #### 一、概述 在Oracle数据库管理过程中,经常会遇到各种各样的错误提示,其中“ORA-12560 TNS: 协议适配器错误”是较为常见的一种。这种错误通常发生在客户端尝试连接到...
在Oracle数据库管理中,遇到ORA-01033错误是较为常见的问题之一,该错误通常出现在数据库启动或关闭的过程中。ORA-01033错误的全称是“ORA-01033: ORACLE 正在初始化或关闭”,它表明Oracle实例可能没有正确启动或...
Oracle ORA 异常处理详解 Oracle 是一个强大的关系数据库管理系统,然而,在使用 Oracle 时,总是会遇到各种错误信息,这些错误信息是Oracle抛出的异常信息,用于提示开发者出现了什么问题。了解这些错误信息是...
### ORA错误中文描述知识点详解 #### ORA-00001: 违反唯一约束条件 (.) 此错误表明在执行数据插入或更新操作时,违反了表中定义的唯一性约束。例如,尝试向具有唯一索引的列插入重复值时,就会触发这个错误。解决...
### Oracle回收站功能详解与彻底删除表方法 #### 一、Oracle回收站功能概述 Oracle数据库自10g版本开始引入了回收站功能(Recycle Bin),这一特性为数据库管理员提供了一种简单而强大的方式来恢复误删的数据对象。...
### Oracle 12c ORA-01017 错误详解及解决方案 #### 错误概述 在Oracle数据库管理过程中,用户可能会遇到ORA-01017错误:“用户名/口令无效;登录被拒绝”。这一错误通常出现在尝试连接数据库时,提示提供的用户名...
Oracle RAC ORA-03113 故障处理详解 Oracle RAC(Real Application Clusters)是一种高可用性的数据库解决方案,它可以提供高性能、可扩展性和高可用性的数据库服务。然而,在使用 Oracle RAC 时,可能会遇到一些...
1. **ORA-22858: invalid alteration of datatype** - 这个错误通常发生在尝试直接改变字段类型时,特别是在从固定长度的类型(如`VARCHAR2`)转换到变长类型(如`CLOB`)时。 - 解决方案是先创建一个新的字段,...
### Oracle常用异常代码详解 #### 1. ACCESS_INTO_NULL (ORA-06530) **异常描述:** 当尝试访问一个未初始化或者值为NULL的引用时触发此异常。通常发生在对一个NULL对象执行操作(如读取或修改其属性)时。 **解决...
### Oracle 错误码详解(ORA-02001 至 ORA-02107) 在Oracle数据库管理过程中,经常会遇到各种错误码,这些错误码是Oracle系统为帮助用户快速定位问题而设计的一套编码体系。下面将详细介绍从ORA-02001至ORA-02107...
在Oracle数据库环境中,当遇到"ORA-01196: 文件 1 由于介质恢复会话失败而不一致"的错误时,这通常意味着数据库在尝试打开时发现数据文件的状态不正常,可能是因为数据文件损坏或者缺少必要的归档日志进行恢复。...
### Oracle 错误码知识点详解 #### 一、概述 Oracle数据库系统中,错误码是系统用来指示操作过程中遇到的问题的重要标识。理解这些错误码及其含义对于排除故障、确保数据库的稳定运行至关重要。本文将详细介绍一...