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

Attachment: signature.asc
Description: OpenPGP digital signature

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

Responder a