segue o corpo da funcao:

CREATE OR REPLACE FUNCTION "public"."funcalcliqmerc" (tipo varchar, filial 
bigint, documento bigint, serie varchar, clifor bigint, item bigint) RETURNS 
numeric [] AS
$body$
/* Corpo da nova função */
declare 

   linha record;
   bruto numeric;
   vmerc numeric;
   acres numeric;
   desco numeric;
   arred numeric;
   liqui numeric[];
   
begin
   
    select into linha documento,item,
    quantidade,valorunitario,coeficiente,
    percdescproduto,percdesctotal
    from movimento 
    where movimento.tipo = $1
    and movimento.filial = $2
    and movimento.documento = $3
    and movimento.serie = $4
    and movimento.clifor = $5
    and movimento.item = $6;
    
    if FOUND then
       vmerc := (linha.valorunitario * linha.quantidade);
       bruto := (linha.valorunitario * linha.coeficiente);
       bruto := (bruto * linha.quantidade);
       acres := bruto - vmerc;
       desco := bruto * (linha.percdescproduto / 100);
       arred := (bruto - desco) * (linha.percdesctotal / 100);
    else
       vmerc := 0.00;
       bruto := 0.00;
       acres := 0.00;
       desco := 0.00;
       arred := 0.00;
    end if;   
    
    liqui[1] := round((vmerc - desco - arred + acres),2);    
    liqui[2] := round(desco,2);
    liqui[3] := round(arred,2);
    liqui[4] := round(acres,2);

    return liqui;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

  ----- Original Message ----- 
  From: André Pignata 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Tuesday, May 26, 2009 12:01 PM
  Subject: Re: [pgbr-geral] retorno de funcao em view


  Ao invés de criar um array, você pode utilizar parâmetros OUT, assim cada 
parâmetro pode ser uma coluna da sua view, se eu entendi sua dúvida, acho que 
isto irá funcionar.
  Abçs


  2009/5/26 Jeferson <[email protected]>

    Bom dia a todos,

        Criei uma funcao que retorna valores em um campo array (retorno[]). uso 
esse campo numa view, gostaria de saber se posso criar colunas que apontem para 
cada um dos valores no resultado da funcao em cada linha da consulta. 

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





  -- 
  André Luiz Martins Pignata
  Integral Convênios Odontológicos
  Gerente de TI



------------------------------------------------------------------------------


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

Responder a