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

Espacio en blanco en registros

Estas en el tema de Espacio en blanco en registros en el foro de PostgreSQL en Foros del Web. Estimados; Tengo espacios vacios al principio de unos campos tipo text en mi BD y necesito quitarlos. El problema que no me reconoce con ltrim ...
  #1 (permalink)  
Antiguo 25/04/2011, 07:10
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Espacio en blanco en registros

Estimados;

Tengo espacios vacios al principio de unos campos tipo text en mi BD y necesito quitarlos.
El problema que no me reconoce con ltrim y rtrim.

Eh ejecutado esta sentencia:

UPDATE tabla SET nombre=ltrim(rtrim(nombre))

Pero el campo sigue quedando con el espacio vacio.

La unica que me funciona es la sgte:

select substr(nombre,0,2) from tabla where rut = '1-9'
En la cual me muestra el caracter en blanco.


Pero cuando ejecuto esta:

select * from tabla where substr(nombre,0,2)=''

Me muestra aquellos registros en donde todo el campo es vacío.
Favor les pido que me ayuden.

Saludos.
  #2 (permalink)  
Antiguo 25/04/2011, 07:30
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Espacio en blanco en registros

ltrim debe funcionar, lo mismo que trim solito.

Código SQL:
Ver original
  1. pruebas=> CREATE TABLE prueba_espacios(val1 TEXT);
  2. CREATE TABLE
  3. pruebas=> INSERT INTO prueba_espacios VALUES(' DANIEL OROZCO  ');
  4. INSERT 0 1
  5. pruebas=> INSERT INTO prueba_espacios VALUES('      GULLERMO ');
  6. INSERT 0 1
  7. pruebas=> INSERT INTO prueba_espacios VALUES(' MANUEL            ');
  8. INSERT 0 1
  9. pruebas=> SELECT *FROM prueba_espacios;
  10.         val1
  11. ---------------------
  12.   DANIEL OROZCO
  13.        GULLERMO
  14.   MANUEL
  15. (3 filas)
  16.  
  17.  
  18. pruebas=> UPDATE prueba_espacios SET val1=TRIM(val1);
  19. UPDATE 3
  20. pruebas=> SELECT *FROM prueba_espacios;
  21.      val1
  22. ---------------
  23.  DANIEL OROZCO
  24.  GULLERMO
  25.  MANUEL
  26. (3 filas)

seguro lo estas aplicando bien?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 25/04/2011, 07:51
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: Espacio en blanco en registros

Muchas gracias huesos52.


Claro, lo estoy aplicando bien.

Lo que pasa es que creo que no es un espacio en blanco, osea; no es un caracter de espacio en blanco.

Ejecuto esto:

select trim(nombre) from tabla where rut = '1-9';

y me arroja esto:

"*Alexis"

Copié y pegé el caracter en un notepad, y al dejar apretado Ctrl-v me arroja saltos de linea.


Intenté con esto:

Select Replace(nombre, chr(13),'-----') from rrhh_personas where rut = '1-9';
pero me sigue arrojando "*Alexis".
  #4 (permalink)  
Antiguo 25/04/2011, 07:52
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: Espacio en blanco en registros

Ahora me aparecio un caracter raro en mi post :D


En mi BD aparece " Alexis"
Pero acá me apareció "*Alexis".
  #5 (permalink)  
Antiguo 25/04/2011, 08:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Espacio en blanco en registros

mmmmm...
raro raro.

si pones esto:

SELECT ascii(nombre) FROM rrhh_personas where rut = '1-9';

que te sale?

debe ser un numero.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 25/04/2011, 08:12
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: Espacio en blanco en registros

Estimado Huesos52:

Ejecuté la sgte query:

UPDATE tabla SET nombre = replace(nombre, '*','');

Y me funcionó a la perfección.

De todas maneras muchas gracias.

Caso cerrado.

Etiquetas: blanco, espacio, registros
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 16:34.