У меня есть данные столбца, разработанные как varchar в Oracle, эта БД теперь используется для клиентов, а некоторые строки уже хранятся.
Теперь я хочу изменить данные столбца в столбце Clob. Что такое умный способ сделать это?
Ответ 1
(как и предыдущий ответ) и здесь код:
ALTER TABLE atable
ADD (tmpdetails CLOB);
UPDATE atable SET tmpdetails=details;
COMMIT;
ALTER TABLE atable DROP COLUMN details;
ALTER TABLE atable
RENAME COLUMN tmpdetails TO details;
Ответ 2
Добавить столбец clob в таблицу
обновить столбец clob со значениями из столбца varchar
drop varchar column
переименовать столбцы clob в имена столбцов varchar
Ответ 3
Но это не будет поддерживать позицию вашей колонки. Он переместит вашу колонку в конец таблицы. Поэтому, если вы хотите сохранить позицию своей колонки, выполните следующие шаги.
alter table atable add (tempdetails varchar2(4000));
update atable set tempdetails = details;
update atable set details = null; -- this is necessary to change data type
alter table atable modify details long; -- this is required because you can not change directly to clob.
alter table atable modify details clob;
update atable set details=tempdetails;
alter table atable drop column tempdetails;