oracle 将vchar 类型的column改为clob

hellobbboy 2014-01-14 04:13:27
其实知道了两种方法,只是有点疑惑,本人oracle小白,请指教:

方法一:
alter table t add c_copy clob;
update t set c_copy = c;
commit;
alter table t drop column c;
alter table t rename column c_copy to c;

方法二:
alter table t add c_copy varchar2(4000);
update t set c_copy = c;
update t set c = null;
commit;
alter table t modify c long;
alter table t modify c clob;
update t set c = c_copy;
commit;
alter table t drop column c_copy;

这两句我都试过了,都可以,但不知道那个更好?
还有,方法二中加粗的语句不懂,为什么显转long,再转clob呢?
...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenlele088 2014-01-16
  • 打赏
  • 举报
回复
第二种做了多次转换呀
hellobbboy 2014-01-16
  • 打赏
  • 举报
回复
引用 1 楼 z_shousi 的回复:
楼主从varchar是不能直接alter table t modify c clob;的。会报错:ORA-22858: 数据类型的变更无效 所以通过long类型过度。 推荐使用第一种吧。
为什么推荐第一种勒?
hellobbboy 2014-01-15
  • 打赏
  • 举报
回复
引用 1 楼 z_shousi 的回复:
楼主从varchar是不能直接alter table t modify c clob;的。会报错:ORA-22858: 数据类型的变更无效 所以通过long类型过度。 推荐使用第一种吧。
为什么啊?
  • 打赏
  • 举报
回复
楼主从varchar是不能直接alter table t modify c clob;的。会报错:ORA-22858: 数据类型的变更无效 所以通过long类型过度。 推荐使用第一种吧。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧