7

Cuando guardo datos en una tabla, se agregan espacios adicionales al valor en la cola. Observé que como la longitud de la columna es 5, si estoy insertando un valor de 3 caracteres, se agregan 2 espacios adicionales. ¿Alguien puede cómo resolver este problema?Se agregaron espacios adicionales en la cola en la columna

+0

Proporcione una declaración de inserción y una definición de tabla. –

Respuesta

21

¿Es el tipo de columna CHAR(5) en lugar de VARCHAR(5)?

  • CHAR(x) crea una columna que siempre almacena x caracteres y rellena los datos con espacios.
  • VARCHAR(x) crea una columna que varía la longitud de las cadenas para que coincida con los datos insertados.
+2

+1 varchar aún puede tener espacios finales wth SET ANSI_PADDING ON a través de – gbn

+0

@gbn Nunca he buscado lo que esa configuración realmente hace; Gracias por hacerme investigarlo. Si entiendo la documentación correctamente, incluso con ANSI_PADDING ON, la columna VARCHAR (x) solo contendrá espacios finales si los coloca explícitamente allí. –

+0

Correcto, pero puede causar [confusión] (http://stackoverflow.com/search?q=user%3A27535+ansi_padding) Especialmente cuando estará activado en versiones posteriores. – gbn

4

Esto es una propiedad del tipo de datos CHAR. Si no quiere espacios adicionales, necesita usar VARCHAR aunque para un campo pequeño hay una sobrecarga mínima en comparación con el estándar CHAR. Dicho esto, se cree que VARCHAR en la actualidad es tan bueno como CHAR.

0

Las variables CHAR almacenarán este relleno adicional, ¿tal vez usted necesita usar variables VARCHAR2 en su lugar?

+0

No VARCHAR2 en SQL Server ... – gbn

Cuestiones relacionadas