Re: Funcion en PostgreSQL

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)

In response to

Responses

Browse pgsql-es-ayuda by date

  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 ...