Подтвердить что ты не робот

Как изменить столбца varchar на clob в oracle

У меня есть данные столбца, разработанные как varchar в Oracle, эта БД теперь используется для клиентов, а некоторые строки уже хранятся.

Теперь я хочу изменить данные столбца в столбце Clob. Что такое умный способ сделать это?

4b9b3361

Ответ 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;

Это то, как вы сохраните данные и положение своего столбца без изменений даже после изменения типа данных. Подробную информацию см. Здесь: http://www.oraclebin.com/2012/12/how-to-change-varchar2-to-clob-datatype.html