Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: mensaje de error ORA-01727
Aprenda por qué y cómo resolver los mensajes de error ORA-01727 en Oracle.
describir
Cuando encuentra un error ORA-01727, aparece el siguiente mensaje de error:
- ORA-01727: especificador de precisión numérica fuera del rango de 1 a 38
razón
Intentó especificar un tipo de datos NUMERIC sin especificar un valor de precisión entre 1 y 38.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Intente modificar su tipo de datos NUMERIC para tener una precisión entre 1 y 38. Si no especifica una precisión, Oracle asume una precisión de 22.
Por ejemplo, si intenta crear la siguiente tabla:
CREATE TABLE supplier ( supplier_id numeric(39) not null, supplier_name varchar2(50) not null );
Recibirá el siguiente mensaje de error:
Puede corregir este error definiendo la columna id_proveedor como una columna NUMÉRICA con una precisión entre 1 y 38. En este ejemplo, definimos la precisión como 8.
CREATE TABLE supplier ( supplier_id numeric(8) not null, supplier_name varchar2(50) not null );
o
Puede omitir la precisión. Oracle entonces asumirá una precisión de 22.
CREATE TABLE supplier ( supplier_id numeric not null, supplier_name varchar2(50) not null );
En este ejemplo, NUMERIC es lo mismo que NUMERIC(22).