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