官方解释
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.

ORA-22858: 是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步就可以了。
如果表中或该字段中还没有数据,那就更简单了,把那个字段删除再以正确的数据类型新建一个即可。

虽然不能直接修改为CLOB,但是如果记录为空,可以直接修改为LONG类型。不久前的一篇文章介绍过,对于LONG类型,不管有没有数据存在,可以直接修改为CLOB类型:http://yangtingkun.itpub.net/post/468/501094
对于LONG类型的转换,Oracle并不是简单的将列的定义换成CLOB,而是生成了一个临时列,将数据保存,然后删除原LONG列。
Oracle可以对LONG类型的转换操作进行封装,不知道为什么没有对VARCHAR2类型转换为CLOB进行封装,使得一个简单的ALTER TABLE命令必须通过多个命令才能完成。
至于VARCHAR2到CLOB的转换就没有必要详细说明了,采用在线重定义就能实现。如果有足够的维护时间,也可以直接添加CLOB列,对新增CLOB列赋值、删除原VARCHAR2类型列,最后对新增CLOB列改名。

ORA-22858 invalid alteration of datatype相关推荐

  1. ORA-22858 invalid alteration of datatype varchar2转化clob

    author:skate time:2010-11-30 ORA-22858: invalid alteration of datatype 由于业务的需要,今天研发同事问我在oracle里如何把ta ...

  2. ORA-22858: invalid alteration of datatype

    SQL> alter table TRIG_SQL_2 modify sqltext blob; alter table TRIG_SQL_2 modify sqltext blob       ...

  3. invalid alteration of datatype(varchar2转化clob)

    由于业务的需要,今天研发同事问我在oracle里如何把table的varchar2类型转化为clob类型,其实标量类型的变量可以直接转换. 在'列'没有数据时,可以直接修改 alter table t ...

  4. 笔记:Oracle报错:ORA-22858: invalid alteration of datatype

    Oracle数据库 VARCHAR2转CLOB报错: ALTER TABLE TABLE_NAME MODIFY ( "FIELD" CLOB ) ; ORA-22858: ora ...

  5. ORA-22858: invalid alteration of datatype(varchar2转化clob)

    [size=large] 在11g下 --修改某字段类型 不能按照字段原来顺序(尤其是clob 与其他字段的转换) alter table gsj_question add column_new va ...

  6. Thread: alter varchar2 column to clob // ORA-22858: invalid alteration of datatype

    https://forums.oracle.com/forums/thread.jspa?threadID=411705 -- 修改字段类型 改为CLOB -- Varchar2 to CLOB -- ...

  7. 笔记:Oracle报错:ORA-22858 invalid alteration of datatype

    Oracle数据库 VARCHAR2转CLOB报错: ALTER TABLE TABLE_NAME MODIFY ( "FIELD" CLOB ) ; ORA-22858: ora ...

  8. SparkSQL报错:UnresolvedException: Invalid call to dataType on unresolved object, tree: 'bb

    1.美图 2.背景 /*** 测试点:测试系统函数,能否支持* 测试结果:报错* Caused by: org.apache.spark.sql.catalyst.analysis.Unresolve ...

  9. Oracle 列由VARCHAR2改为CLOB类型

    最近突然遇到好多Oracle 列由VARCHAR2改为CLOB类型的需求,不知道大家是不是约好了...查了一些网上的文章,结合实际修改的情况记录一下各种场景及解决方法. 一. 示例准备 新建两张表TB ...

最新文章

  1. 未能找出类型或命名空间名称“T” 问题的解决方案
  2. git——从远程库克隆
  3. docker目录挂载
  4. 同一个局域网,不同网段的远程控制
  5. 【OS学习笔记】十 实模式:实现一个程序加载器-程序加载器如何将用户程序加载到内存并执行
  6. Understanding node.js
  7. 迭代器模式(Iterator)
  8. php中cnum函数,PHP vprintf() 函数
  9. 几十行python代码构建一个前后端分离的目标检测演示网站,代码开源
  10. 虚拟服务器无限网站个数,一个虚拟主机最多可以放几个网站
  11. mac下安装php环境
  12. CorelDRAWX4SP2简体中文正式版精简增强版
  13. Python爬取起点中文网小说信息及封面图片
  14. h265硬解码和软解码
  15. 计算机术语 gc 是什么意思,gc是什么意思的缩写
  16. 巴勒斯坦富有_使会议富有成效
  17. 新联盟呼吁结束种族主义人工智能研究,声称将面Kong与犯罪行为相匹配
  18. ESP8266-NodeMCU项目(四):将上一项目的空调控制接入小爱同学(Blinker_APP同步控制+DHT11温湿度模块数据接入)
  19. 微信小程序-输入框输入文字后,将光标移到文字中间,接着输入文字后光标又自动跳到最后...
  20. 11岁发现数学新定理,13岁登日本数学会学术会议,学界大佬:他是「可敬的数学家」...

热门文章

  1. CAD .net开发-从注册表中获取CAD安装路径
  2. matlab求解常微分方程,matlab 求解常微分方程式
  3. Android游戏语音SDK及功能实现流程
  4. plc的应用领域有哪些
  5. 【java学习】EasyExcel的简单使用
  6. 怎样制作非商务的精美的PPT
  7. 【免费程序分享】Discuz仿手游控游戏论坛商业版网站模板/Discuz游戏论坛网站模板
  8. ABB机器人圆形角焊缝焊接程序
  9. EC6108V9/EC6108V9U/EC6108V92/EC6108V97_Hi3798MV100_当贝桌面_通刷_卡刷固件包
  10. 长期坐着不动会得什么病?_陕南赤子_新浪博客