Bom dia Galera,

Estou rodando a seguinte função (Abaixo) e dentro do bloco EXCEPTION está
falando que o RETURN i."Codigo" não é uma variavel do tipo record, mais
pelo que eu to vendo aqui ele é?
o que poderia estar errado?


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";
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;
$$

O Objetivo da função é achar a margem de venda dos produtos e atualizar
produto a produto com a margem achada.

-- 
*Bruno da Cunha Felipe*





Enviado com MailTrack
<https://mailtrack.io/install?source=signature&lang=pt&[email protected]&idSignature=24>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a