From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Sonia Malave <smalave(at)hidrobolivar(dot)com(dot)ve> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Tabla Temporal con error2 |
Date: | 2007-06-28 20:16:44 |
Message-ID: | 20070628201644.GB22200@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Sonia Malave escribió:
> Si me dices que $s$ es equivalente a comillas simples entonces ese debe
> ser el error, ya que toma como una cadena cada variable y en lugar del
> valor trata de meter es el nombre, como solucino eso?.
Efectivamente eso te iba a decir ... una idea seria que cerraras las
comillas antes de cada variable y pusieras el nombre de la variable
entre || para contatenar, asi
execute $s$ select .... $s$ || quote_literal(mi_variable) ||
$s$, $s$ || quote_literal(mi_otra_variable) || $s$,
etc. Pero es bastante incomodo. Una idea mejor: quizas declara una
variable de texto y haz algo asi
select into query $s$ select ... values (%, %, %) where ... $s$,
quote_literal(mi_variable), quote_literal(mi_otra_variable), ...
execute query;
etc. El truco es lograr que los % se expandan a los valores de las
variables.
Ojo, las invocaciones de quote_literal() son importantes para prevenir
problemas de inyeccion de SQL.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Yacatematrix | 2007-06-28 20:19:02 | Re: EMS |
Previous Message | Sonia Malave | 2007-06-28 20:01:08 | Tabla Temporal con error2 |