博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORA-22858问题
阅读量:7015 次
发布时间:2019-06-28

本文共 903 字,大约阅读时间需要 3 分钟。

   近日工作中发现有一张表的字段类型建错了,本应是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步就可以了。
如果表中或该字段中还没有数据,那就更简单了,把那个字段删除再以正确的数据类型新建一个即可。

或者

1、将 改字段的内容 备份,然后将改字段的值清空;

2、将改字段先改成LONG型,再将LONG型改成CLOB类型。

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

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.

Linked:http://12447680.blog.163.com/blog/static/17614089200811323126233/

转载于:https://www.cnblogs.com/means-sisy/p/3664039.html

你可能感兴趣的文章
body元素对象的clientWidth、offsetWidth、scrollWidth、clientLeft、offsetLeft、scrollLeft
查看>>
监控系统Opserver的配置调试
查看>>
Python正则表达式
查看>>
日志文件报警监控脚本(可用于zabbix监控文件)测试中...
查看>>
【原创】Python第二章——行与缩进
查看>>
【规划】学习计划
查看>>
2014.5.20知识点学习:void及void指针含义的深刻解析(转载)
查看>>
thrift
查看>>
Django建站纪要(三)——建博客
查看>>
Python全栈之路(目录) - 含资料(持续更新)
查看>>
cutpFTP设置步骤
查看>>
org-reveal
查看>>
CSS实例:图片导航块
查看>>
MemoryStream和FileStream
查看>>
Excel VLOOKUP函数怎么查询一个值返回多个结果
查看>>
python 第四天
查看>>
spring junit
查看>>
projecteuler Problem 8 Largest product in a series
查看>>
挑逗 Java 程序员的那些 Scala 绝技
查看>>
Ubuntu 16.04.5下FFmpeg编译与开发环境搭建
查看>>