11

表:客户

ID      NAME             DATATYPE
NUMBER  VARCHAR2(100)    CLOB

我想将DATA列从CLOB`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。

4

1 回答 1

23

你可以试试这个:

  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

于 2013-11-07T17:01:31.123 回答