Вопрос

Таблица: клиенты

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))

Они обычно работают, если дата не является клобом, но я получаю 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