oracle如何修改字段类型

2026-04-02 19:17:40

1、把原字段换个名字,此条的sql是把C_009700010003换成C_0097000100031:

alter table 表名 rename column  当前字段 to 备用字段;

oracle如何修改字段类型

2、在表中添加一个原字段名字C_009700010003 ,并把类型定义自己想改变的类型, 此条是定义VARCHAR2类型:

alter table 表名 add 新增字段名称 字段类型;

oracle如何修改字段类型

3、养成良好的习惯,将字段名称进行备注,以免以后忘记字段名称。

oracle如何修改字段类型

4、这条语句是把备份的C_0097000100031字段内容 添加到新建字段C_009700010003 中来,这条语句就是把CLOB类型的数据转换成varchar2类型在插入到新定义的C_009700010003:

update 表名 set 新增字段名称 = dbms_lob.substr(备用字段,4000);

oracle如何修改字段类型

5、把备份字段C_0097000100031去掉

oracle如何修改字段类型

6、第四步的dbms_lob的用法,整理了下:

第四步中是截取前4000.

CLOB里存的是2进制

判定长度   DBMS_LOB.GETLENGTH(col1)


获取文本   DBMS_LOB.SUBSTR(col1,n,pos)
DBMS_LOB.SUBSTR(col1,10,1)表示从第1个字节开始取出10个字节

DBMS_LOB.SUBSTR(CLOB_VAR,32767)表示截取CLOB变量保存的全部数据

DBMS_LOB.FILECLOSE(IMG_BFILE)关闭文件;

clob转化为字符串,SELECT   UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(col1,10,1))   FROM   tab1;

如果clob中包含空格则不能使用。

将clob类型转化成字符串;

oracle如何修改字段类型

7、当然了,还有一个更简单的方法。

利用第三方工具软件PL/sql把数据导出来,而后修改数据结构,即修改数据类型,最后就重新往新的表插入数据。

alter table filename


modify 字段名 varchar2(4000)

猜你喜欢