微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle:将VARCHAR2列更改为CLOB

我遇到一个问题,我试图存储在我的varchar2(4000)列中的数据太大,所以我希望将该列更改为更适合存储大量的文本数据。具体来说,一个序列化的数组。

>首先,CLOB是我用于此目的的最佳数据类型吗?是否有更合适的数据类型?
>其次,当我尝试使用通常的snyntax更改列:

ALTER TABLE table MODIFY column CLOB

我收到以下错误:ORA-22858:数据类型的无效更改

在不丢失任何数据的情况下更改此表格最简单的方法是什么?

最简单的方法是,由于不允许从varchar列移动到CLOB的操作,将创建一个新列并将数据从旧列移动到新列:
ALTER TABLE some_table ADD (foo CLOB);
UPDATE some_table SET foo = old_column;
ALTER TABLE some_table DROP COLUMN old_column;
ALTER TABLE some_table RENAME COLUMN foo TO old_column;

原文地址:https://www.jb51.cc/oracle/205998.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐