oracle修改字段类型由varchar2修改为clob类型

oracle修改字段类型由varchar2修改为clob类型,第1张

发现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

1、通过图形界面 *** 作,在左侧依次选择objects-tables,右键单击要修改的表名,选中‘Edit’-column,可以直接修改;

2、使用DDL语句:alter table 表名 modify 字段名(字符类型(长度))

例如:

alter table emp modify ename(varchar2(32))

1。从视图all_tab_columns中查询待修改的表字段信息,拼装成标准语句。

select 'alter table '||a.TABLE_NAME||' modify '||a.COLUMN_NAME||' VARCHAR2(n)' --n为修改的值

from all_tab_columns a

where a.DATA_TYPE='VARCHAR2' --指定字段类型

and a.TABLE_NAME=upper('tableA') --指定待修改的表名

and a.OWNER=upper('user_01') --指定待修改表所属的用户

2. 新开一个窗口,执行上述查询结果即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6759113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存