oracle varchar2 为啥改不成clob
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle varchar2 为啥改不成clob相关的知识,希望对你有一定的参考价值。
varchar2可以改成clob,但是需要迂回更改,不可以直接更改。
可用如下方法修改:
1、创建一个新字段为clob类型。
alter table test add name1 clob;2、将原来varchar2字段中的数据存放到clob字段中。
update test set name1=to_char(name);commit;
3、删除原有的varchar2字段。
4、将clob的字段名改为原来的varchar2字段名。
alter table test rename column name1 to name;这样就可以实现将varchar2改成clob了。
blob用来存储二进制大对象
可以直接把varchar2改为clob
但表里必须没有数据本回答被提问者采纳
oracle修改字段类型由varchar2修改为clob类型
参考技术A 发现clob类型比较特殊,和其他字段类型不同,不可以从其他字段类型直接转换为clob(blob也一样),可以通过long类型作为中间转换的桥梁,即先将varchar2转换为long,然后再将long转换为clob,即可。SQL> alter table test modify (loc long );
Table altered
SQL> alter table test modify (loc clob );
Table altered
2、假设要修改字段有数据,则可以使用以下两种方法;
方法一:
alter table batchintfloadlog rename column resultinfo to resultinfo_temp;
alter table batchintfloadlog add resultinfo clob;
update batchintfloadlog set resultinfo=trim(resultinfo_temp);
alter table batchintfloadlog drop column resultinfo_temp;
方法二:
create table batchintfloadlog_temp as select * from batchintfloadlog where 1=2;
alter table batchintfloadlog_temp modify (resultinfo long);
alter table batchintfloadlog_temp modify (resultinfo clob);
insert into batchintfloadlog_temp select * from batchintfloadlog;
drop table batchintfloadlog;
rename batchintfloadlog_temp to batchintfloadlog;
以上是关于oracle varchar2 为啥改不成clob的主要内容,如果未能解决你的问题,请参考以下文章