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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
