Referencia técnica independienteSitio oficial
  • Software y sistemas
  • Base de datos

22003

PostgreSQL 22003 en base de datos: valor numérico fuera de rango

Verificada con fuentes2 fuentesRevisada 3 oct 2026
¿Viene un técnico? Mira los 2 pasos que debe enseñarte
Trace

Evidencia vinculada a esta decisión

Ver fuente: PostgreSQL 18 Appendix A: Error Codes

Nivel de riesgo

Precaución

Actúa con cuidado; puede requerir técnico si persiste.

Urgencia

Media — atiéndelo hoy

Respuesta rápida

Un número no cabe en el tipo de la columna o del cálculo. Revisa el dato que introdujiste; si eres desarrollador, compara el valor con el rango del tipo y no lo recortes en silencio para que pase.

Seguridad primero

Antes de continuar

  • No recortes ni redondees el dato en la aplicación solo para que entre: guardarías un valor distinto del real sin aviso. Si la cifra es correcta, detente y avisa al soporte.

Puedes hacerlo con seguridad

  • Dato introducido en la aplicación
  • Columna y tipo afectados
  • Rango frente al dato real

Deja estas tareas a un profesional cualificado

  • No intentes esta tarea profesional: Cambio de tipo revisado por el DBA
  • No intentes esta tarea profesional: Corrección del cálculo en la aplicación

Lo que un técnico debe poder justificar

Viene un técnico a casa

Estos son los pasos que tiene que hacer y enseñarte. Márcalos mientras trabaja: si se salta pasos, no aceptes el cambio de pieza.

No son instrucciones para que abras o manipules el equipo. Son las comprobaciones que deben sostener una conclusión técnica.

  1. Cambio de tipo revisado por el DBA

    Qué haceEl DBA evalúa cambiar el tipo de la columna (por ejemplo, integer a bigint o más precisión en numeric) con una migración probada.

    Te tiene que enseñarel valor máximo actual frente al rango del tipo.

    Por escritola migración aplicada y la prueba con el dato que fallaba.

  2. Corrección del cálculo en la aplicación

    Qué haceEl desarrollador ajusta la expresión que desborda, por ejemplo calculando en un tipo más amplio.

    Te tiene que enseñarla sentencia antes y después.

    Por escritoel cambio y su prueba.

Antes de aceptar una pieza o reparación

Aún no ha demostrado nada. No aceptes un cambio de pieza solo por el código.

Sigue estos pasos

Aviso: Sigue el orden documentado. Un código identifica el sistema afectado, pero por sí solo no demuestra qué pieza está averiada.

  1. Dato introducido en la aplicación

    Sin herramientas especiales

    Quién:
    tú, quien usa la aplicación.
    Cómo:
    revisa la cifra que escribiste: ceros de más, separador decimal o unidades.
    Resultado que importa:
    si el número es razonable para ese campo.
    Si había un error de tecleo:
    confírmalo corrigiendo el dato; el error desaparece.
    Si la cifra es correcta:
    indica un límite de la base; avisa al soporte.
    Evidencia a conservar:
    captura del formulario y del mensaje, con hora.

    Evidencia: PostgreSQL 18 Appendix A: Error Codes

  2. Columna y tipo afectados

    Sin herramientas especiales

    Quién:
    tú, como desarrollador.
    Cómo:
    lee los campos del error (Message, Detail, Where, Column si viene) y localiza la columna o la expresión.
    Resultado que importa:
    el tipo declarado y el valor que se intentó guardar.
    Si el valor supera el rango del tipo:
    confirma la causa; el diseño del tipo debe revisarse.
    Si el valor cabe en la columna:
    apunta a un cálculo intermedio; revisa la expresión.
    Evidencia a conservar:
    sentencia, valor y tipo de la columna.

    Evidencia: PostgreSQL error and notice fields · PostgreSQL 18 numeric types

  3. Rango frente al dato real

    Sin herramientas especiales

    Quién:
    tú, como desarrollador.
    Cómo:
    compara el valor con el rango de la tabla de tipos enteros o con la precisión y escala de numeric.
    Resultado que importa:
    cuánto margen falta.
    Si es un entero que se acerca al máximo de integer:
    indica que bigint es la alternativa documentada.
    Si es numeric:
    indica que la precisión declarada no basta para ese dato.
    Evidencia a conservar:
    rango del tipo y valor máximo observado.

    Evidencia: PostgreSQL 18 numeric types

Situación no resuelta

Si el error persiste, no sigas probando por tu cuenta. Mira qué tiene que hacer y enseñarte el técnico.

Técnico virtual

¿Sigue apareciendo 22003 tras comprobarlo?

Este recorrido usa el código exacto y tus respuestas para elegir una prueba, su resultado esperado y la siguiente bifurcación.

Dónde se aplica este código

Un código solo tiene significado dentro del producto y la versión correctos.

Ámbito principal

Sistema
Software y sistemas
Marca
PostgreSQL
Tipo de producto
Base de datos

Variantes conocidas del código

  • numeric_value_out_of_range
  • PostgreSQL 22003
  • SQLSTATE 22003

Qué significa

El apéndice A asigna 22003 a numeric_value_out_of_range, en la clase 22 Data Exception. Según la documentación de tipos numéricos, guardar un valor fuera del rango permitido produce un error: smallint admite de -32768 a +32767, integer de -2147483648 a +2147483647 y bigint su propio rango; en numeric(precisión, escala) falla si sobran dígitos a la izquierda de la coma; en real y double precision los valores demasiado grandes o pequeños dan error. El código señala el valor y el tipo, no un fallo del servidor.

Advertencias y condiciones de parada

  • Precauciónadvertencia editorial

    No recortes ni redondees el dato en la aplicación solo para que entre: guardarías un valor distinto del real sin aviso. Si la cifra es correcta, detente y avisa al soporte.

    Evidencia: PostgreSQL 18 numeric types

Síntomas y causas

Causas probables · en orden

  • Valor mayor que el rango del tipo enteroFrecuente

    Un identificador o contador supera el máximo de integer o smallint. Se confirma comparando el valor con el rango del tipo de la columna.

    Evidencia: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL 18 numeric types

  • Precisión de numeric insuficientePosible

    La columna numeric(p, s) no admite tantos dígitos a la izquierda de la coma. Pasa con importes o medidas más grandes de lo previsto.

    Evidencia: PostgreSQL 18 numeric types

  • Resultado de un cálculo intermedio que desbordaPosible

    Una suma o multiplicación supera el tipo aunque los datos de entrada quepan. El campo Where o Position señala la expresión.

    Evidencia: PostgreSQL error and notice fields · PostgreSQL 18 numeric types

Fuentes y referencias técnicas

  1. 1

    PostgreSQL 18 Appendix A: Error Codes

    PostgreSQL Global Development Group · 2026 · official_doc

  2. 2

    PostgreSQL error and notice fields

    PostgreSQL Global Development Group · 2026 · official_doc

Fuentes: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL error and notice fieldsrevisado 2026-10-03 · verificado

¿Te ha resultado útil esta ficha?