On 03-06-2016 12:53, Ricardo wrote: > > > *From:* Sebastian Webber <mailto:[email protected]> > *Sent:* Friday, June 03, 2016 12:14 PM > *To:* Comunidade PostgreSQL Brasileira > <mailto:[email protected]> > *Subject:* Re: [pgbr-geral]Função com retorno de vários dados > > > > Em 3 de junho de 2016 11:49, Ricardo <[email protected] > <mailto:[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; >
Porque fazer tudo isso se no SQL existe o LIMIT conforme o Sebastian sugeriu??? Além de simplificar vc terá inclusive ganhos de performance. Att, -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
signature.asc
Description: OpenPGP digital signature
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
