oracle修改字段类型由varchar2修改为clob类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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字段
前面的回答不对,varchar2字段是无法通过modify 直接修改为clob字段的。原因是因为clob和blob字段在数据库中的存储方式与其他常用字段不同,所以无法直接转化。
如果需要转换,1可以先转换成long 再转换为clob。
2如果字段中有内容,建议先创建新clob字段,update数据后再改名字。 参考技术A 一:没有数据的话,直接修改alter table table_name modify var_col clob;
二:有数据的话,先创建一个表将表中数据备份出来,然后在将此列值类型更改掉,清空列值,然后在插入回来。
以上是关于oracle修改字段类型由varchar2修改为clob类型的主要内容,如果未能解决你的问题,请参考以下文章
oracle修改varchar2或nvarchar2类型的时间字段为DATE