Oracle/PLSQL: mensaje de error ORA-01727

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).