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*