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

Problema con Literales y espacios

Estas en el tema de Problema con Literales y espacios en el foro de Oracle en Foros del Web. Hola, Cuando hago la consulta: Código: Select Campo1, Campo2, 'PALABRA' as user_mod from Tabla1 where.... realizo esta consulta desde JAVA, y cuando recupero del ResultSet ...
  #1 (permalink)  
Antiguo 19/01/2009, 05:48
Avatar de ChiramMFM  
Fecha de Ingreso: enero-2008
Mensajes: 19
Antigüedad: 16 años, 3 meses
Puntos: 0
Problema con Literales y espacios

Hola,

Cuando hago la consulta:

Código:
Select Campo1, Campo2, 'PALABRA' as user_mod from Tabla1 where....
realizo esta consulta desde JAVA, y cuando recupero del ResultSet el campo user_mod la respuesta es 'PALABRA ', que hacen 32 caracteres. Deduzco que esto es debido al Blank-padded. Se puede desactivar, o usar otro metodo de comparación?

Muchas Gracias por la ayuda.
  #2 (permalink)  
Antiguo 19/01/2009, 06:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema con Literales y espacios

hazle un trim al campo palabra de la siguente forma:

Select Campo1, Campo2, trim('PALABRA') as user_mod from Tabla1 where....

trim quita los espacios en blanco dejando solo los caracteres
bye espero que se eso lo que necesitabas
intenta cambiarle el tipo de dato a varchar2 ya que eso te sucede seguramente porque el campo es char

Última edición por bertolita; 19/01/2009 a las 06:09
  #3 (permalink)  
Antiguo 20/01/2009, 01:00
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Problema con Literales y espacios

Cita:
Iniciado por bertolita Ver Mensaje
intenta cambiarle el tipo de dato a varchar2 ya que eso te sucede seguramente porque el campo es char
oracle para ese campo siempre regresaria un string de 7 caracteres

Código:
SQL> select length('palabra') as alias_campo from dual;

ALIAS_CAMPO
-----------
          7
igual mas bien va por como java esta interpretando ese campo no?

al no venir de un campo nada que ver el cambiar char a varchar2
__________________
Blogzote.com :-) Mi blog
  #4 (permalink)  
Antiguo 22/01/2009, 02:25
Avatar de ChiramMFM  
Fecha de Ingreso: enero-2008
Mensajes: 19
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema con Literales y espacios

1º gracias por contestar

La consulta que si la hago en BD todo bien, el problema es cuando hago la sentencia desde java, que cuando recupero alias_campo la longitud del string es de 32, que sabe dios pq pasa esto, pero bueno, lo importante es que ya esta arreglado con el TRIM de java.

Muchas gracias por la ayuda!!
  #5 (permalink)  
Antiguo 22/01/2009, 19:41
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Problema con Literales y espacios

en mi opinion hacer eso es totalmente inecesario, siempre le mandas a oracle

'PALABRA' as user_mod

no seria lo mismo meterle 'PALABRA' a tu variable java, no entiendo la necesidad de mandarsela a oracle si siempre es lo mismo
__________________
Blogzote.com :-) Mi blog
  #6 (permalink)  
Antiguo 27/01/2009, 02:25
Avatar de ChiramMFM  
Fecha de Ingreso: enero-2008
Mensajes: 19
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema con Literales y espacios

Cita:
Iniciado por kikolice Ver Mensaje
en mi opinion hacer eso es totalmente inecesario, siempre le mandas a oracle

'PALABRA' as user_mod

no seria lo mismo meterle 'PALABRA' a tu variable java, no entiendo la necesidad de mandarsela a oracle si siempre es lo mismo
Esta consulta es una consulta de ejemplo, la verdadera es mucho mas larga, se baraja mucha información y es mejor tenerlo todo en el mismo resultset y no ir buscando cada campo en un sitio diferente. De todas formas, yo no diseñé nada de esto, por lo que tampoco te lo puedo argumentar mejor. Si que he visto esto muchas veces en 'select into', pero al devolverlo a Java es solo una cuestión de organización.

Saludos!
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 12:10.