Como puedo hacer para hacer cambios en el tipo de dato de una tabla con información?

Nd
07 de Julio del 2004
Hola,
Podria alguien darme un tip. Exporte algunas tablas desde Access hacia Oracle, sin embargo una vez que las tablas ya estan en Oracle, el tipo de datos de todas las columnas es varchar2 y necesito redefinir algunas de ellas a tipo númerico. Trate de hacer lo siguiente:
SQL> ALTER TABLE EDO MODIFY ID_EDO NUMBER(2);
ALTER TABLE EDO MODIFY ID_EDO NUMBER(2)
*
ERROR at line 1:
column to be modified must be empty to change datatype

Lo cual entendi, la tabla debe estar vacia para realizar cambios de tipo.

Existe alguna otra forma de mantener la información???

Gracias

Enrique
07 de Julio del 2004
Puedes crear la nueva tabla con columnas number y, mediante una instruccion cargar los datos convirtiendolos en la nueva tabla con la instruccion NVL(TO_NUMBER(CAMPO_VARCHAR2),0) de una vez para cargar con cero los campos nulos (si es necesario)

Angel
07 de Julio del 2004
Prueba con esto:

ALTER TABLE EDO ADD ID_EDO_2 NUMBER(2);
UPDATE EDO
SET ID_EDO_2=TO_NUMBER(ID_EDO);
ALTER TABLE EDO DROP COLUMN ID_EDO;
ALTER TABLE EDO ADD ID_EDO NUMBER(2);
UPDATE EDO
SET ID_EDO=ID_EDO2;
ALTER TABLE EDO DROP COLUMN ID_EDO2;

La opción DROP COLUMN sólo funciona a partir de la versión 8i

Nd
07 de Julio del 2004
Gracias!