Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/04/2007, 08:50
rusinho
 
Fecha de Ingreso: agosto-2006
Mensajes: 179
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: como devolver el resultado de una funcion

Cita:
Iniciado por mariovargascareaga Ver Mensaje
CREATE OR REPLACE FUNCTION bus_alt_gar(des bpchar, gar bpchar)
RETURNS void AS
$BODY$declare
begin
SELECT gar = descrip FROM garantia WHERE garantia.descrip = des;
IF char_length(gar) <> 0 then
begin
select gar;
end ;
end if;

end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION bus_alt_gar(des bpchar, gar bpchar) OWNER TO postgres;


ERROR: query has no destination for result data
Estado SQL:42601
Sugerencias:If you want to discard the results of a SELECT, use PERFORM instead.
Contexto:PL/pgSQL function "bus_alt_gar" line 3 at SQL statement

no se como devolver el resultado de mi funcion tengo que crear algun tipo de variable para que me retorne el resultado???
La verdad cualquier funcion siempre retorna un valor, pero si le das que retorna VOID entonces esta no retornara nada, lo que puedes hacer es por ejemplo si es una suma le puedes decir RETURN bigint AS

Entonces quedaria algo como lo siguiente:
create function suma(bigint num1, bigint num2) RETURNS bigint AS
$BODY$declare
var suma:=0;
begin
suma:=num1+num2;
RETURN suma;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION suma(bigint num1, bigint num2) OWNER TO postgres;