我遇到一个问题,我试图存储在我的varchar2(4000)列中的数据太大,所以我希望将列更改为更适合存储大量文本数据的列.具体来说,是序列化数组.
首先,CLOB是我用于此目的的最佳数据类型吗?有更合适的数据类型吗?
其次,当我尝试使用通常的snyntax改变列时:
ALTER TABLE table MODIFY column CLOB
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:ORA-22858:数据类型的无效更改
在不丢失任何数据的情况下,更改此表的最简单方法是什么?
a_h*_*ame 47
考虑varchar到CLOB不允许从列移动到a的操作,最简单的方法是创建新列并将数据从旧列移动到新列:
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;
Run Code Online (Sandbox Code Playgroud)
小智 9
VARCHAR2 列不能直接转换为 CLOB,但可以分两步完成:
ALTER TABLE table MODIFY column long;
ALTER TABLE table MODIFY column clob;
Run Code Online (Sandbox Code Playgroud)