Agora deu certo aqui!! A Função ficou assim:

http://pastebin.com/pKetM3dk
<https://mailtrack.io/trace/link/8f7a66406b5c6d7ab3c9f627c56e6c84ce7a91f7?url=http%3A%2F%2Fpastebin.com%2FpKetM3dk&signature=3db645165c47ab6c>





Enviado com MailTrack
<https://mailtrack.io/install?source=signature&lang=pt&[email protected]&idSignature=24>

2016-02-18 11:06 GMT-02:00 Fabrízio de Royes Mello <[email protected]>
:

> On 18-02-2016 11:04, Bruno Felipe wrote:
> >
> >
> >
> > Foi mal pelo *top-posting*....
> >
>
> E de novo?!
>
>
> >
> > E continua
> >
> >
> > CREATE OR REPLACE FUNCTION  AtualizaMargemVenda() RETURNS record
> > LANGUAGE plpgsql AS $$
> > DECLARE
> > x numeric(14,4);
> > margem numeric(14,4);
> >         calc CURSOR IS SELECT "Codigo","PrecoCusto", "PrecoVenda" From
> > "Produtos";
> > i RECORD;
> > BEGIN
> >         FOR i IN calc LOOP
> > BEGIN
> > x := (100 * i."PrecoVenda" ) / i."PrecoCusto";
> > EXCEPTION WHEN division_by_zero THEN
> > RAISE NOTICE 'Capiturei divisao por zero no Produto %',i."Codigo";
> > RETURN i"Codigo";
> > END;
> > END;
> > margem := x;
> > UPDATE "Produtos" SET "MargemVenda" = margem WHERE "Codigo" = i."Codigo";
> > RAISE NOTICE 'Produto % Atualizado para margem % ', i."Codigo", margem;
> > END LOOP;
> > END;
> > $$
> >
> >
>
> Vc olhou o exemplo anterior que mandei? Veja como vc escreveu o seu
> RETURN... tem que ser apenas "RETURN i;"
>
> Att,
>
> --
>    Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
>    PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
>
>


-- 
*Bruno da Cunha Felipe*
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a