近日工作中发现有一张表的字段类型建错了,本应是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-22858问题详解相关推荐

  1. Oracle init.ora常用配置详解

    文件的位置(oracle 9i):/export/home/oracle/app/oracle/admin/oracle9i/pfile/initoracle9i.ora 重要的配置 db_name ...

  2. oracle sqlnet配置,sqlnet.ora文件配置详解

    一.于sqlnet.ora的说明: *****************************************************FROM ORACLE11G DOCS********** ...

  3. tnsname.ora文件配置详解

    在该配置文件中,不能有多余的留白(空格等),如果多.少一个空格,都会报错.所以,最好使用netca配置. 转载于:https://www.cnblogs.com/Jace06/p/8796138.ht ...

  4. 两张图告诉你tnsnames.ora 的配置详解

    图一: 图二: 是否解答了你的困惑呢?

  5. Oracle 数据库名、实例名、服务名详解

    详解:数据库名.实例名.ORACLE_SID.数据库域名.全局数据库名.服务名 数据库名.实例名.数据库域名.全局数据库名.服务名,这是几个令很多初学者容易混淆的概念.相信很多初学者都被标题上这些概念 ...

  6. Oracle ASM 详解 收藏

    Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...

  7. oracle control file文件 详解

    1 定义当前物理数据库状态信息的二进制文件 (1)控制文件丢失的话要求恢复 (2)它是在MOUNT状态被读取的(可以在NOMOUNT状态用CREATE CONFILE重建) (3)它是数据库操作必须的 ...

  8. Java字节码(.class文件)格式详解(一)

    原文链接:http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html 小介:去年在读<深入解析JVM>的时候写的,记得当时还 ...

  9. oracle参数文件initorcl位置,oracle 参数文件详解

    参数文件 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端, ...

  10. oracle tns 代理配置_oracle数据库tns配置方法详解

    TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS ...

最新文章

  1. Java怎么做三端_Java三端分离开发在线教育平台
  2. 使用JavaScript让网页title动起来
  3. springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置
  4. 晴天php下载,x.php · 一步晴天/smart - Gitee.com
  5. html答题赚钱源码,WTS在线答题系统 v1.0.0
  6. 这里是武汉(1)——汉阳造文化创意产业园
  7. debian GNU linux 版的docker 安装vi
  8. 表级触发器不支持ddl语句_表上的数据库级DDL触发器
  9. VB让控件可以当标题栏拖动
  10. supervisor常用命令
  11. LINUX doubango编译中prefix参数无效
  12. 和高手相处,能让你觉得自己也变得…
  13. 利用QuickCHM制作chm
  14. TypeScript 类型声明文件.d.ts
  15. iOS自动化-iOS录屏xrecord及解决iPhone设备不显示的问题
  16. JVM,堆,栈,方法区之间的关系
  17. Prometheus监控神器-Alertmanager篇(1)
  18. 7-15 换硬币 (20 分)
  19. 基于Java毕业设计学校旧书交易网站源码+系统+mysql+lw文档+部署软件
  20. iOS开发之模仿qq通讯录源代码!

热门文章

  1. 《功夫熊猫》之经典台词~~,欢迎大家一起添加
  2. python 格式化打印print常见用法(更新中)
  3. 最短路算法 算法 python实现
  4. 题目:【正月初八】开工大吉,事业新启,红红火火!
  5. 批量梯度下降法(BGD)拟合曲线——Python实现
  6. Flex 饼图PieChart
  7. VSD?啥是VSD?VSD应用场景你知道吗?
  8. Kubernetes为什么会赢,容器圈的风云变幻!
  9. 如何通过快照进行数据备份?
  10. Android把uri图片转为bitmap