Pregunta

Tabla: clientes

ID      NAME             DATATYPE
NUMBER  VARCHAR2(100)    CLOB

Quiero cambiar el DATA columna de CLOB a `varchar2 (1000)

Lo he intentado ALTER TABLE customers MODIFY DATA VARCHAR2 (1000) además

ALTER TABLE customers MODIFY (DATA VARCHAR2 (1000))

además

alter table customers  modify
(data VARCHAR2(4000))

Esos normalmente funcionan si el tipo de datos no es un CLOB, pero estoy obteniendo un ORA-22859 Porque estoy usando Oracle Toad/Apex.

¿Fue útil?

Solución

Puedes probar esto:

  1. Agregue una nueva columna como Varchar2

    alter table my_table add (new_column varchar2(1000));

  2. Actualizar el nombre de CLOB a la columna VARCHAR2;

    update my_table set new_column=dbms_lob.substr(old_column,1000,1);

Después Probar sus datos:

  1. Columna de clob de caída

    alter table my_table drop column old_column

  2. Cambiar la columna VARCHAR2 al nombre de la columna CLOB

    alter table my_table rename column new_column to old_column

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top