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

22001

PostgreSQL 22001 en base de datos: texto más largo que la columna

Verificada con fuentes2 fuentesRevisada 4 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

Seguro

Puedes actuar sin peligro siguiendo las comprobaciones seguras.

Urgencia

Media — atiéndelo hoy

Respuesta rápida

PostgreSQL ha rechazado guardar un texto porque supera la longitud de la columna varchar(n) o char(n). Comprueba la longitud declarada y la del dato antes de recortar o ampliar la columna.

Seguridad primero

Antes de continuar

  • No uses un cast explícito a varchar(n) para que el error desaparezca: PostgreSQL recortará el texto en silencio y perderás información.

Puedes hacerlo con seguridad

  • Sentencia y mensaje
  • Longitud declarada de la columna
  • Longitud real del dato

Deja estas tareas a un profesional cualificado

  • No intentes esta tarea profesional: Validación en la aplicación
  • No intentes esta tarea profesional: Cambio de longitud de la columna

Lo que un técnico debe poder justificar

Viene un técnico

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. Validación en la aplicación

    Qué haceEl desarrollador limita la longitud del campo en la aplicación o avisa al usuario antes de guardar.

    Te tiene que enseñarla validación y el caso que fallaba.

    Por escritoel cambio y la prueba con un texto en el límite.

  2. Cambio de longitud de la columna

    Qué haceEl DBA valora ampliar la columna o usar text si no hay un límite de negocio real, con acuerdo del responsable del dato.

    Te tiene que enseñarla definición actual y la propuesta.

    Por escritoel cambio de esquema aprobado y la fecha.

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. Sentencia y mensaje

    Sin herramientas especiales

    Quién:
    tú, como desarrollador.
    Cómo:
    recoge del log el SQLSTATE, el mensaje y la sentencia INSERT o UPDATE que falló.
    Resultado que importa:
    qué tipo y longitud cita el mensaje.
    Si el SQLSTATE es 22001:
    confirma un texto más largo que la columna.
    Si es otro:
    descarta esta ficha.
    Evidencia a conservar:
    línea del log con hora y sentencia.

    Evidencia: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL error and notice fields

  2. Longitud declarada de la columna

    Sin herramientas especiales

    Quién:
    tú, con acceso de solo lectura.
    Cómo:
    consulta information_schema.columns para la tabla y revisa character_maximum_length de las columnas de texto implicadas.
    Resultado que importa:
    la n de cada columna.
    Si una columna tiene una n menor que el dato:
    confirma cuál es la columna afectada.
    Si todas admiten el dato:
    revisa si el valor pasa por otra columna o función.
    Evidencia a conservar:
    resultado de la consulta.

    Evidencia: PostgreSQL 18 information_schema columns view

  3. Longitud real del dato

    Sin herramientas especiales

    Quién:
    tú, con el dato de prueba.
    Cómo:
    mide la longitud en caracteres del valor que envía la aplicación, sin contar bytes.
    Resultado que importa:
    si supera la n de la columna.
    Si la supera:
    indica que hay que validar en la aplicación o revisar el diseño.
    Si no la supera:
    revisa espacios o conversiones previas en la aplicación.
    Evidencia a conservar:
    valor de prueba anonimizado y su longitud.

    Evidencia: PostgreSQL 18 character 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 22001 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

  • PostgreSQL 22001
  • SQLSTATE 22001
  • string_data_right_truncation

Qué significa

22001 es string_data_right_truncation, de la clase 22 (excepción de datos). La documentación de tipos de carácter dice que guardar una cadena más larga que n en character varying(n) o character(n) da error, salvo que los caracteres sobrantes sean espacios. En cambio, un cast explícito a varchar(n) recorta sin error. La longitud se cuenta en caracteres, no en bytes. El código no dice qué columna ni qué fila: lo indican el mensaje y la sentencia.

Advertencias y condiciones de parada

  • Seguroverificada con fuente

    No uses un cast explícito a varchar(n) para que el error desaparezca: PostgreSQL recortará el texto en silencio y perderás información.

    Evidencia: PostgreSQL 18 character types

Síntomas y causas

Causas probables · en orden

  • Dato más largo que la columnaFrecuente

    La aplicación envía un texto que supera la n declarada; se confirma comparando la longitud del dato con character_maximum_length.

    Evidencia: PostgreSQL 18 information_schema columns view · PostgreSQL 18 character types

  • Columna definida demasiado cortaPosible

    La longitud elegida no cubre los datos reales; se distingue porque el fallo se repite con datos válidos para el negocio.

    Evidencia: PostgreSQL 18 character 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-04 · verificado

¿Te ha resultado útil esta ficha?