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