----- Mensaje original ----
> De: Alvaro Herrera <[email protected]>
> Para: Gabriel Ferro <[email protected]>
> CC: [email protected]
> Enviado: viernes 30 de enero de 2009, 13:30:32
> Asunto: Re: [pgsql-es-ayuda] error al usar variable text
> 
> Por favor crea un mensaje nuevo para hacer una nueva pregunta, en lugar
> de responder a un mensaje existente.
> 
> Gabriel Ferro escribió:
> > Consulta: ¿existe alguna funcion que "arregle" un text de modo que cuando 
> > lo 
> uso no de errores por culpa de los caracteres especiales?.
> > por ejemplo si hago
> > select 'hola:quetal'::tsvector
> 
> Usa plainto_tsquery()
> 
> El : es un caracter reservado en el tipo tsvector.
> 
> -- 
> Alvaro Herrera                http://www.amazon.com/gp/registry/CTMLCN8V17R4
> "Ni aun el genio muy grande llegaría muy lejos
> si tuviera que sacarlo todo de su propio interior" (Goethe)
> --

Alvaro, lo de hacer un nuevo mensaje no te entiendo, creo que el asunto es 
correcto.
Segundo, plainto_tsquery no me sirve ya que no me da lo mismo
ejemplo
select 'hola coco'::tsvector;
            Rta: 'coco' 'hola'
select plainto_tsquery('hola:coco');
            Rta: 'hol' & 'coc'

la funcion que me da el error es 
SELECT clave,datos,vectordatos
   FROM personas,
   to_tsquery('FERRO&GABRIEL') AS q
   WHERE vectordatos @@ q and
   ('Ocupa:Empleado':: tsquery @@ datos::tsvector)
   ORDER BY ts_rank_cd(vectordatos,q) DESC;

al intentar hacer datos::tsvector y encontrar un : cargado en datos


pense en reemplazar datos::tsvector por 
regexp_replace( datos, E'[\\s\'|:&()!]+',' ','g')::tsvector;


pero que haga esto por cada fila que compara me parece que hara la consulta mas 
lenta. ¿considere todos los caracteres raros?. ¿que les parece?


      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a