crea tu segunda funcion de esta manera


create or replace function llama () returns boolean as $$
declare
salida boolean;

begin
select * into salida from fun1();
return true;
end;
$$
language plpgsql;

----- Mensaje original -----

De: "Rusel Fichi" <[email protected]>
Para: "pgsql-es-ayuda" <[email protected]>
Enviados: Jueves, 23 de Mayo 2013 9:15:46
Asunto: [pgsql-es-ayuda] Se puede hacer llamado a una funcion desde otra funcion


Buenos días compañeros, tengo necesidad de realizar una funcion que realice 
ciertas acciones en mis tablas pero me gustaria hacer un llamado de una funcion 
al ejecutar otra... este seria un ejemplo sencillo:


Esta seria la funcion que pienso llamar desde otra:



create or replace function fun1 () returns boolean as $$
declare a integer;
begin
a=(select id from producto order by id desc limit 1);
insert into producto (nombre,precio) values ('nevera',1500);
insert into inventario (cantidad,id_producto) values (500,a);
return true;
end;
$$
language plpgsql;


Esta funcion llama a otra funcion:



create or replace function llama () returns boolean as $$
begin
select fun1();
return true;
end;
$$
language plpgsql;


Al ejecutar la funcion "llama" usando select llama () me arroja el siguiente 
error :



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 «llama» en la línea 3 en sentencia SQL




Gracias por cualquier ayuda estimados!

http://www.uci.cu

Responder a