Как изменить тип данных CLOB на VARCHAR2 (sql)

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

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, потому что я использую жабу/вершину оракула.


person PHPnoob    schedule 07.11.2013    source источник


Ответы (1)


Вы можете попробовать это:

  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

person Rahul Tripathi    schedule 07.11.2013
comment
лол, я думал о том же, но я не могу этого сделать. Они должны быть в отъезде, чтобы изменить clob тип данных - person PHPnoob; 07.11.2013
comment
They should be away to change clob datatype..Что это значит? - person Rahul Tripathi; 07.11.2013
comment
это означает изменение clob на varachar2 или число так же, как вы можете изменить varachar2 (100) на varchar2 (1000) или vaachar2 на число и т. д. - person PHPnoob; 07.11.2013
comment
@PHPnoob: - Обновил мой ответ. Это помогает? - person Rahul Tripathi; 07.11.2013
comment
вы хотите мне add новый столбец, пока я пытаюсь изменить существующий столбец datatype с clob на varchar2 - person PHPnoob; 07.11.2013
comment
@PHPnoob: - Я это понимаю, но это было бы проще всего. Проверьте эту связанную тему: dba.stackexchange.com/questions/5948/ - person Rahul Tripathi; 07.11.2013