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
