From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | NachXs <nachxs(at)gmail(dot)com>, List Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Funcion en PostgreSQL |
Date: | 2007-06-22 14:23:13 |
Message-ID: | 20070622142313.GE8949@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> On 6/22/07, NachXs <nachxs(at)gmail(dot)com> wrote:
> >
> > Select ruc_in=num_ruc From snt$prin_contrib Where num_ruc=$1;
> >
> [...]
> >
> >SQLSTATE = 42601
> >ERROR: query has no destination for resulta data;
> >
>
> ese error te da porque el query (la consulta) no tiene un detino para los
> datos.
> pero como? diras tu, si claramente se esta asignando el valor de
> num_ruc a ruc_in...
> Pues no, porque eso no es SQL estandar (es una aberracion que algunos
> motores aceptan, pero postgres no), esa consulta esta retornando un
> valor booleano (que dependera de si ruc_in es igual a num_ruc).
> Lo que quieres hacer se hace asi:
>
> Select num_ruc into ruc_in From snt$prin_contrib Where num_ruc=$1;
De hecho, dado que ruc_in no se usa en ninguna parte, tambien puedes
hacer esto:
perform 1 from snt$prin_contrib where num_ruc = $1
y funcionara de la misma forma. Los cambios son
1. usar PERFORM en vez de SELECT. Esto descarta los valores que retorna
la consulta, pero define la variable FOUND
2. devolver una constante (1) en vez de num_ruc. Total, num_ruc ya lo
conoces de antemano, no lo necesitas.
--
Alvaro Herrera http://www.advogato.org/person/alvherre
"Java is clearly an example of money oriented programming" (A. Stepanov)
From | Date | Subject | |
---|---|---|---|
Next Message | Moises Alberto Lindo Gutarra | 2007-06-22 14:26:46 | Re: Ayuda con postgres y asp |
Previous Message | Alvaro Herrera | 2007-06-22 14:19:21 | Re: Error 25P02: transacción abortada ... |