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*


Responder a