sql - read - Cómo cambiar la columna varchar a clob en oráculo
read hugeclob oracle (4)
Tengo un detalle de columna diseñado como varchar en Oracle DB, este DB se está utilizando ahora para los clientes y algunas filas ya tienen datos almacenados.
Ahora quiero cambiar los detalles de la columna a una columna de Clob. ¿Cuál es una forma inteligente de lograr esto?
- Agregue una columna clob a la mesa
- actualizar la columna de clob con los valores de la columna varchar
- drop varchar column
- cambiar el nombre de la columna de clob al nombre de columnas varchar
(como la respuesta anterior) y aquí está el código:
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;
si necesita que los datos de su tabla estén accesibles durante el proceso ... consulte DBMS_REDEFINITION
vea una pregunta similar en asktom http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1770086700346491686
Pero esto no mantendrá la posición de tu columna. Moverá tu columna al final de la tabla. Entonces, si desea mantener la posición de su columna también, siga estos pasos.
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;
Esta es la forma en que mantendrá los datos y la posición de su columna intactos incluso después de cambiar el tipo de datos. Para obtener información detallada con el ejemplo, consulte aquí: http://www.oraclebin.com/2012/12/how-to-change-varchar2-to-clob-datatype.html