【需求】
???? 某表原采用nvarchar2(2000)字段记录log,但随着时间增长2000长度不够用了,于是决定将其修改为clob字段。
【注意点】
原有数据不能一删了之,必须原封不动带入新字段。
【思路】
首先将原字段重命名成,再创建新字段,再将原有内容更新进去。
【SQL】
--增加临时新字段
ALTER table 表名 ADD 新字段名 clob;
--复制内容
Update 表名 Set 新字段名 = 旧字段名;
--删除原有字段
ALTER table 表名 drop column 旧字段名;
--修改回原字段名
ALTER table 表名 rename column 新字段名 to 旧字段名;
例子:
SQL> alter table emp518 rename column log to oldlog;
表已更改。
SQL> alter table emp518 add(log clob);
表已更改。
SQL> update emp518 set log=oldlog where 1=1;
已更新3行。
SQL> commit;
提交完成。
SQL> alter table emp518 drop column oldlog;
表已更改。
参考:https://www.cnblogs.com/heyang78/p/16286023.html
Oracle批量修改字段类型varchar2(2000)转clob_oracle varchar2(2000)-CSDN博客