表:客户

ID      NAME             DATATYPE
NUMBER  VARCHAR2(100)    CLOB

我想改变 DATACLOB 到`varchar2(1000)

我尝试了 ALTER TABLE customers MODIFY DATA VARCHAR2 (1000)

ALTER TABLE customers MODIFY (DATA VARCHAR2 (1000))

alter table customers  modify
(data VARCHAR2(4000))

如果数据类型不是clob,则通常会起作用,但是我得到了 ORA-22859 因为我正在使用Oracle Toad/Apex。

有帮助吗?

解决方案

您可以尝试一下:

  1. 添加一个新列作为varchar2

    alter table my_table add (new_column varchar2(1000));

  2. 将clob名称更新为varchar2列;

    update my_table set new_column=dbms_lob.substr(old_column,1000,1);

测试您的数据:

  1. 删除clob列

    alter table my_table drop column old_column

  2. 重命名varchar2列到clob列名称

    alter table my_table rename column new_column to old_column

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top