From: Sebastian Webber 
Sent: Friday, June 03, 2016 12:14 PM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral]Função com retorno de vários dados



Em 3 de junho de 2016 11:49, Ricardo <[email protected]> escreveu:

  Bom dia pessoal.

      Sempre trabalhei com a variável tipo record para retorno uma tabela em 
uma função usando esse procedimento.
      
  FOR VARIABLE IN SELECT * FROM TABELA
  LOOP

  ....

      Porém agora preciso criar uma função onde vai ter o número inicio e o 
número fim que vai me determinar o número de registros no retorno, ou seja, não 
vou mais utilizar um select. Alguém pode me dar uma orientação de como fazer 
isso ?



Sugiro que vc verifique as clausulas LIMIT[1] e OFFSET.

[1] https://www.postgresql.org/docs/current/static/queries-limit.html


-- 

Sebastian Webber 
http://swebber.me

Já resolvi pessoal,
ficou assim

CREATE OR REPLACE FUNCTION public."_Tabela_Consulta" (
  "Par_Inicio" integer,
  "Par_Fim" integer,
  out "Par_Consumo" numeric,
  out "Par_Valor" numeric
)
RETURNS SETOF record AS
$body$
DECLARE
    Contador_Inicio INTEGER;

    Faixa_Inicio INTEGER;
    Faixa_Fim INTEGER;
    Faixa_Valor NUMERIC( 10, 2 );
    Faixa_Fixa BOOLEAN;
    
    Faixa_Calculo INTEGER;
    Consumo_Calculo NUMERIC( 10,2 );
    Valor_Calculo NUMERIC( 10, 2 );

BEGIN

    Contador_Inicio := "Par_Inicio";

    WHILE Contador_Inicio < "Par_Fim" 
    LOOP

................      

        "Par_Consumo" := Contador_Inicio;
        "Par_Valor" := Valor_Calculo;
            
        Contador_Inicio := Contador_Inicio + 1;
            
        RETURN NEXT;
        
    END LOOP;
    
    RETURN;

END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100 ROWS 1000;


--------------------------------------------------------------------------------
_______________________________________________
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