Cambiar precisión de number(20,4)a(20,5) en Oracle
Les hago una consulta, trabajo con la version de Oracle 9.2.0.7 y tengo una tabla que tiene, entre otros campos, 6 campos que son number (20,4), esta tabla esta particionada por un campo fecha, cada día contiene 32 millones de registros y tenemos 3 meses vigentes de información.
El problema que tengo es que quiero llevar los 6 campos que están definidos como number(20,4) a (20,5) porque necesito que tengan 5 números decimales.
Estuve pensando de resolverlo de la siguiente manera:
1. Renombrar las columnas afectadas (number (20,4)) con un nombre nuevo
2. Crear columnas nuevas, con el nombre que tenían las columnas renombradas, con la nueva precisión (number 20,5)
3. Copiar el contenido de las columnas renombradas a las nuevas columnas.
4. Una vez copiados todos los datos, borrar las columnas renombradas
El problema se presenta cuando copiemos los datos viejos a los nuevos campos se va a duplicar la información y calculamos que ocupara aproximadamente 826Gb.
Entonces la consulta es la siguiente, ¿existe alguna otra forma más óptima de cambiar la precisión de un campo numérico definido como (number 20,4) a (number 20,5)? ¿Esta solución debería ser efectuada por un DBA o por un desarrollador?
El problema que tengo es que quiero llevar los 6 campos que están definidos como number(20,4) a (20,5) porque necesito que tengan 5 números decimales.
Estuve pensando de resolverlo de la siguiente manera:
1. Renombrar las columnas afectadas (number (20,4)) con un nombre nuevo
2. Crear columnas nuevas, con el nombre que tenían las columnas renombradas, con la nueva precisión (number 20,5)
3. Copiar el contenido de las columnas renombradas a las nuevas columnas.
4. Una vez copiados todos los datos, borrar las columnas renombradas
El problema se presenta cuando copiemos los datos viejos a los nuevos campos se va a duplicar la información y calculamos que ocupara aproximadamente 826Gb.
Entonces la consulta es la siguiente, ¿existe alguna otra forma más óptima de cambiar la precisión de un campo numérico definido como (number 20,4) a (number 20,5)? ¿Esta solución debería ser efectuada por un DBA o por un desarrollador?
1 respuesta
Respuesta de i42mapur
1