Re: ERROR: la consulta no tiene un destino para los datos de resultado

From: Álvaro Hernández Tortosa <aht(at)nosys(dot)es>
To: Diana Lilia Rodríguez Cruz <lilia_tecisc(at)yahoo(dot)com(dot)mx>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ERROR: la consulta no tiene un destino para los datos de resultado
Date: 2011-08-21 13:57:39
Message-ID: 4E510ED3.4000304@nosys.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, Diana.

El mensaje de error es claro: no estás guardando los resultados del
select en ningún lado. Debes guardarlos en una variable y usar "SELECT
INTO". Mira ejemplos de código. En tu caso, tendrás que declarar una
variable de tipo record y guardar ahí los resultados que luego quieres
usar en el insert. Por cierto, revisa el valor que devuelves, no sé si
tiene mucho sentido...

Saludos,

Álvaro

--
Álvaro Hernández Tortosa

-----------
NOSYS
Networked Open SYStems

El 18/08/11 20:41, Diana Lilia Rodríguez Cruz escribió:
>
> Hola a todos, acudo a ustedes para ver si alguien puede ayudarme,
> tengo la siguiente funcion y como resultado obtengo un error que no
> tengo idea de que pueda ser.......la funcion es la siguiente:
>
> CREATE OR REPLACE FUNCTION nipcaredb.agvalserial(varchar, varchar,
> varchar)
> RETURNS boolean AS $BODY$
> DECLARE
> serial ALIAS FOR $1;
> hd ALIAS FOR $2;
> OS ALIAS FOR $3;
> resultado_BOL BOOLEAN DEFAULT '0';
> BEGIN
>
> SELECT b.idctrl AS idctrl,b.idcliente AS idcliente,b.idserial AS
> idserial,
> b.idproducto AS idproducto
> FROM nipcaredb.seriales as a ,nipcaredb.ctrlproductos as
> b,nipcaredb.clientes as c
> where a.serial=serial and a.idserial=b.idserial and
> c.idcliente=b.idcliente;
>
> INSERT INTO nipcaredb.dispositivos(idctrl, idcliente, idserial,
> idproducto, dispositivo, so)
> VALUES (idctrl, idcliente,idserial ,idproducto , hd,OS);
>
> RETURN resultado_BOL;
> END;
> $BODY$
> LANGUAGE plpgsql VOLATILE;
> COST 100;
>
>
> ejecuto esto en pgadmin
>
> SELECT * FROM
> nipcaredb.agvalserial('7104L-9P4FK-S4CUP-J4P39-RTQWE-W3CKY-U','123','win');
>
> y me regresa lo siguiente:
>
> ERROR: la consulta no tiene un destino para los datos de resultado
> SUGERENCIA: Si quiere descartar los resultados de un SELECT, utilice
> PERFORM.
> CONTEXTO: función PL/pgSQL «agvalserial» en la línea 7 en sentencia SQL
>
> ********** Error **********
>
> ERROR: la consulta no tiene un destino para los datos de resultado
> SQL state: 42601
> Hint: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
> Context: función PL/pgSQL «agvalserial» en la línea 7 en sentencia SQL
>
>
> Espero alguien pueda ayudarme y comentarme que me falta......
> ------------------------------------------------------------------------
> *Diana Lilia Rodríguez Cruz*

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message David Ventura 2011-08-21 15:02:07 Pregunta sobre bloqueos en postgress
Previous Message Alvaro Herrera 2011-08-21 01:10:29 Re: Sistema de Juntas Municipales en POstgres