Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Eliminar espacios en blanco de un campo tipo text

Estas en el tema de Eliminar espacios en blanco de un campo tipo text en el foro de SQL Server en Foros del Web. Hola y Saludos a todos el dia de hoy vengo con el problema donde tengo almacenados mis registros de usuarios en una columna de tipo ...
  #1 (permalink)  
Antiguo 04/10/2011, 09:01
Avatar de rikakashi  
Fecha de Ingreso: julio-2011
Mensajes: 226
Antigüedad: 12 años, 9 meses
Puntos: 33
Sonrisa Eliminar espacios en blanco de un campo tipo text

Hola y Saludos a todos el dia de hoy vengo con el problema donde tengo almacenados mis registros de usuarios en una columna de tipo de text y cuando trato de usar el replace no acepta este tipo de dato entonces alguien sabe como hacer lo siguiente.

registro de ejemplo
'Ricardo Guevara Martinez '

al final del nombre completo tengo demasiados espacios y quiero eliminarlos espero haberme explicado y puedan ayudarme
__________________
la programación es tan grande como la imaginación (+.+)
  #2 (permalink)  
Antiguo 04/10/2011, 09:12
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Eliminar espacios en blanco de un campo tipo text

si tienen espacios al final de la columna puedes usar un ltrim o rtrim, el replace no funciona? entonces lo que tienes al final no son espacios en blanco, prueba copiar y pegar tu texto en algun editor que te reconozca todos los caracteres algo tipo notepad++ para que veas que es lo que tienes al final de tu columna porque ne lugar de caracteres en blanco puede ser un "\n" ó "\r\n"

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 04/10/2011, 10:06
Avatar de rikakashi  
Fecha de Ingreso: julio-2011
Mensajes: 226
Antigüedad: 12 años, 9 meses
Puntos: 33
Respuesta: Eliminar espacios en blanco de un campo tipo text

ya lo eh comprobado, son espacios en blanco y el raplace me devuelve que no es una función compatible con los campos de tipo text el Ltrim y Rtrim me devolvieron todo unido en una sola cadena de esta manera RicardoGuevaraMartinez.
__________________
la programación es tan grande como la imaginación (+.+)
  #4 (permalink)  
Antiguo 04/10/2011, 10:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Eliminar espacios en blanco de un campo tipo text

que version de base de datos estas usando?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 04/10/2011, 11:02
Avatar de rikakashi  
Fecha de Ingreso: julio-2011
Mensajes: 226
Antigüedad: 12 años, 9 meses
Puntos: 33
Respuesta: Eliminar espacios en blanco de un campo tipo text

es sql server 2000 enterprise
__________________
la programación es tan grande como la imaginación (+.+)
  #6 (permalink)  
Antiguo 04/10/2011, 11:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Eliminar espacios en blanco de un campo tipo text

http://blog.sqlauthority.com/2007/04...tion-udf-trim/

Probaste asi?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 04/10/2011, 12:01
Avatar de rikakashi  
Fecha de Ingreso: julio-2011
Mensajes: 226
Antigüedad: 12 años, 9 meses
Puntos: 33
Respuesta: Eliminar espacios en blanco de un campo tipo text

asi es y el mensaje de error el el mismo me dice que no puedo comparar ni editar con el tipo de dato text
__________________
la programación es tan grande como la imaginación (+.+)
  #8 (permalink)  
Antiguo 04/10/2011, 12:47
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Eliminar espacios en blanco de un campo tipo text

aunque no he probado el código el ejemplo del compañero libras siempre que tengo ese problema lo solvento por ejemplo con :

Código SQL:
Ver original
  1. LTRIM(RTRIM(CONVERT(nvarchar(MAX),t0.CustomValue)))
  #9 (permalink)  
Antiguo 05/10/2011, 18:44
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Eliminar espacios en blanco de un campo tipo text

Los tipos varchar(max) y nvarchar(max) no están en SQL Server 2000, son de la versión 2005 en adelante y es una pena porque son muy útiles.

Para modificar datos tipo text necesitas las funciones writetext, updatetext y readtext, puedes ver un ejemplo en http://www.sqlteam.com/article/searc...-a-text-column

Las funciones replace, rtrim y ltrim no las puedes utilizar con tipos text, en este caso, tienes que leer por tramos (llamados porción o chunk de datos) dentro de un loop avanzando desde una posición dada más un offset, asignar el chunk a una variable varchar para modificar el valor según sea necesario y actualizar la tabla con la función updatetext, por ejemplo:

Código:
create table t100 (id numeric(8) not null identity, datos text)
Go
insert into t100 values ('xyxyxyxyxyxyxyxyxyxyxyxyxyxyxy')
Go

BEGIN
 DECLARE @StringActual varchar(10)
 SET @StringActual = 'init'

 DECLARE @StringNuevo varchar(10)
 DECLARE @Posicion int
 DECLARE @Cantidad int
 DECLARE @StringLen int
 
 DECLARE @ptr varbinary(16)

 SET @Posicion = 1 --posición inicial
 SET @Cantidad = 5 --offset de lectura

 SELECT @ptr = TEXTPTR(datos) FROM t100 WHERE id = 1

 WHILE (@StringActual != '')
  BEGIN
   SELECT @StringActual = SUBSTRING(datos, @Posicion, @Cantidad) 
    FROM t100 WHERE id = 1
   
   SET @StringNuevo = replace(@StringActual,'texto1','texto2') --código que modifica datos
   
   SET @StringLen = len(@StringActual) --solo es útil en caso de @Cantidad variable
   UPDATETEXT t100.datos @ptr @Posicion @StringLen @StringNuevo
   
   SET @Posicion = @Posicion + @Cantidad                                
  END                                                             

END
Go
Saludos

Etiquetas: blanco, espacios, registros, tipo, txt, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:05.