Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/07/2010, 09:10
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 4 meses
Puntos: 43
Respuesta: Cambiar tipo de dato a una columna en BD en produccion.

Jodio, eso no lo has dicho.

Si tienes una tabla que la columna que tienes que cambiar es PK, vas a tener un problema, no solamente tienes que cambiar el tipo de dato del campo de la PK, sino que también de todas las FK que tiren de esa PK, porque la PK de la tabla padre es varchar2 , los hijos de esa tabla tienen que ser tambien varchar2. Y si esas FK's forman a su vez parte de la PK, tienes que hacer lo mismo con sus hijos y así hasta el final

Ah, y NI SE TE OCURRA hacer lo de cascade bla, bla, bla, porque dejas las tablas niqueladas.

Así que agrosso modo tendrías que hacer esto :

0-) Borra todas las PK de las tablas implicadas y las FK's que tiren de ellas
1-) Create un campo " Dummy " tipo varchar2 en la tabla.
2-) Haz un update de ese campo con el contenido del campo numeric que quieres cambiar a varchar
3-) Updatea el campo numeric y ponlo a null
4-) Cambia el campo numeric a varchar2
5-) Updatea el campo varchar2 ( antes numeric ) con el contenido del campo " Dummy "
6-) Dropea el campo " dummy " .
7-) Crea de nuevo las PK's y las FK's.

Como sean muchas tablas lo llevas jodido.