Actualmente tengo una columna que se declara como NÚMERO. Quiero cambiar la precisión de la columna a NÚMERO (14,2).Cambiar la precisión de la columna numérica en Oracle
SO, me encontré con el comando
alter table EVAPP_FEES modify AMOUNT NUMBER(14,2)'
para lo cual, me dio un error:
column to be modified must be empty to decrease precision or scale
conjeturo que quiere que la columna esté vacío mientras cambia la precisión y Don No sé por qué dice que queremos disminuirlo mientras lo estamos aumentando, los datos en las columnas no se pueden perder. ¿Hay una breve solución para esto? No quiero copiarlo en otra tabla y soltarlo después, ni cambiar el nombre de una columna y copiar entre columnas, porque existe el riesgo de perder datos entre las transferencias y las caídas.
¿cuál es la diferencia entre estas soluciones? – BrownFurSeal
@BrownFurSeal: la primera solución moverá la columna modificada, de modo que se convierta en la última columna de la tabla. La segunda solución conservará el orden original de las columnas. – Allan
El primer método destruye la columna (lo que puede causar problemas si la columna se utiliza en algún lugar). El segundo método no es destructivo, pero requiere que la columna sea nulable. Si no admite nulos, deberá agregar comandos para que se pueda agregar un valor nulo, y luego restaurarlo para que no acepte nulos después del cambio. – ADTC