- Software y sistemas
- Base de datos
22001
PostgreSQL 22001 en base de datos: texto más largo que la columna
Evidencia vinculada a esta decisión
Ver fuente: PostgreSQL 18 Appendix A: Error CodesNivel 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.
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.
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.
Sentencia y mensaje
- 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
Longitud declarada de la columna
- 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
Longitud real del dato
- 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
PostgreSQL 18 Appendix A: Error Codes
PostgreSQL Global Development Group · 2026 · official_doc
- 2
PostgreSQL error and notice fields
PostgreSQL Global Development Group · 2026 · official_doc
¿Te ha resultado útil esta ficha?