ORA-22858 invalid alteration of datatype
官方解释
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相关推荐
- ORA-22858 invalid alteration of datatype varchar2转化clob
author:skate time:2010-11-30 ORA-22858: invalid alteration of datatype 由于业务的需要,今天研发同事问我在oracle里如何把ta ...
- ORA-22858: invalid alteration of datatype
SQL> alter table TRIG_SQL_2 modify sqltext blob; alter table TRIG_SQL_2 modify sqltext blob ...
- invalid alteration of datatype(varchar2转化clob)
由于业务的需要,今天研发同事问我在oracle里如何把table的varchar2类型转化为clob类型,其实标量类型的变量可以直接转换. 在'列'没有数据时,可以直接修改 alter table t ...
- 笔记:Oracle报错:ORA-22858: invalid alteration of datatype
Oracle数据库 VARCHAR2转CLOB报错: ALTER TABLE TABLE_NAME MODIFY ( "FIELD" CLOB ) ; ORA-22858: ora ...
- ORA-22858: invalid alteration of datatype(varchar2转化clob)
[size=large] 在11g下 --修改某字段类型 不能按照字段原来顺序(尤其是clob 与其他字段的转换) alter table gsj_question add column_new va ...
- 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 -- ...
- 笔记:Oracle报错:ORA-22858 invalid alteration of datatype
Oracle数据库 VARCHAR2转CLOB报错: ALTER TABLE TABLE_NAME MODIFY ( "FIELD" CLOB ) ; ORA-22858: ora ...
- SparkSQL报错:UnresolvedException: Invalid call to dataType on unresolved object, tree: 'bb
1.美图 2.背景 /*** 测试点:测试系统函数,能否支持* 测试结果:报错* Caused by: org.apache.spark.sql.catalyst.analysis.Unresolve ...
- Oracle 列由VARCHAR2改为CLOB类型
最近突然遇到好多Oracle 列由VARCHAR2改为CLOB类型的需求,不知道大家是不是约好了...查了一些网上的文章,结合实际修改的情况记录一下各种场景及解决方法. 一. 示例准备 新建两张表TB ...
最新文章
- 未能找出类型或命名空间名称“T” 问题的解决方案
- git——从远程库克隆
- docker目录挂载
- 同一个局域网,不同网段的远程控制
- 【OS学习笔记】十 实模式:实现一个程序加载器-程序加载器如何将用户程序加载到内存并执行
- Understanding node.js
- 迭代器模式(Iterator)
- php中cnum函数,PHP vprintf() 函数
- 几十行python代码构建一个前后端分离的目标检测演示网站,代码开源
- 虚拟服务器无限网站个数,一个虚拟主机最多可以放几个网站
- mac下安装php环境
- CorelDRAWX4SP2简体中文正式版精简增强版
- Python爬取起点中文网小说信息及封面图片
- h265硬解码和软解码
- 计算机术语 gc 是什么意思,gc是什么意思的缩写
- 巴勒斯坦富有_使会议富有成效
- 新联盟呼吁结束种族主义人工智能研究,声称将面Kong与犯罪行为相匹配
- ESP8266-NodeMCU项目(四):将上一项目的空调控制接入小爱同学(Blinker_APP同步控制+DHT11温湿度模块数据接入)
- 微信小程序-输入框输入文字后,将光标移到文字中间,接着输入文字后光标又自动跳到最后...
- 11岁发现数学新定理,13岁登日本数学会学术会议,学界大佬:他是「可敬的数学家」...
热门文章
- CAD .net开发-从注册表中获取CAD安装路径
- matlab求解常微分方程,matlab 求解常微分方程式
- Android游戏语音SDK及功能实现流程
- plc的应用领域有哪些
- 【java学习】EasyExcel的简单使用
- 怎样制作非商务的精美的PPT
- 【免费程序分享】Discuz仿手游控游戏论坛商业版网站模板/Discuz游戏论坛网站模板
- ABB机器人圆形角焊缝焊接程序
- EC6108V9/EC6108V9U/EC6108V92/EC6108V97_Hi3798MV100_当贝桌面_通刷_卡刷固件包
- 长期坐着不动会得什么病?_陕南赤子_新浪博客