Oracle更改字段类型Blob错误ora-22858
2008-09-12 15:06
471 查看
近日工作中发现有一张表的字段类型建错了,本应是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步就可以了。
如果表中或该字段中还没有数据,那就更简单了,把那个字段删除再以正确的数据类型新建一个即可。
正面是本错误的官方解释:
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.
经查看相关资料才了解,是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步就可以了。
如果表中或该字段中还没有数据,那就更简单了,把那个字段删除再以正确的数据类型新建一个即可。
正面是本错误的官方解释:
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.
相关文章推荐
- Oracle将某varchar2类型的字段改为blob类型时,报错:ORA-22858: 数据类型的变更无效
- Oracle 有long类型字段的表 使用insert into select 语句 ,出现:ORA-00997 错误
- blob与string类型的相互转换——把stringlexington的数据存进oracle的blob字段中
- mybatis oracle BLOB类型字段保存与读取
- JDBC Thin连接ORACLE,错误类型ORA-12505
- oracle中使用impdp数据泵导入数据提示“ORA-31684:对象类型已经存在”错误的解决
- 往Blob类型字段插入图片,使用与MySql或者Oracle
- Oracle中,将VARchar2类型的字符串写入BLOB类型的字段中
- oracle修改字段类型时报"要更改的列必须为空"处理方法
- Oracle开发应用中报以ORA类型的9个错误汇总
- oracle修改字段类型时报"要更改的列必须为空"处理方法
- 通过JDBC 操作 ORACLE BLOB,CLOB字段类型
- oracle修改字段类型时报"要更改的列必须为空"处理方法
- 图片转二进制存入oracle字段类型为Blob(取出二进制转图片并显示),图片带路径
- 修改oracle数据库字段类型,处理ORA-01439错误
- Oracle中,将VARCHAR2类型的字符串写入BLOB类型的字段中。
- Oracle中的BLOB和CLOB字段类型的区别
- 把System.byte[]类型数据写入Oracle的blob类型字段中
- oracle--导出、导入blob类型的字段
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字段中