Bom dia Mateus, essa stored procedure posso até melhorar ela, é a primeira que faço no PostgreSQL, no entanto realmente necessito que seja procedure no banco de dados, porque há modificações frequentes, no cálculo de valores, e não dá pra ficar modificando no fonte, e outra coisa é que vou utilizar esta ai em outras procedures. Está meio confusa mas é só um esboço, to convertendo de uma pronta no firebird, ai depois verei outras questões como performance.
Em 26 de abril de 2013 09:05, Marcelo da Silva <[email protected]> escreveu: > Sobre o TopPost, no IG (email), ele sempre abre a resposta abaixo to > conteudo, mas ao enviar ele mostra acima. > Como voces fazem editam o conteudo existente abrindo linhas a cada > sub-tópico ? > Qual cliente de email voces usam ? > > > Em 26 de abril de 2013 08:02, izaque Maciel <[email protected]>escreveu: > > Bem, eu não irei retornar o valor somente de uma variável, mas de todo um >> select, no caso o último select da procedure, que há campos varchar e >> numerics. A partir do retorno desta procedure atual, criarei outra que >> receberá os valores desta. Como que fica, o "SETOF" e "return next" como já >> mencionado anteriormente pelo colega Jean? >> Obrigado. >> >> >> Em 25 de abril de 2013 22:52, Danilo Silva >> <[email protected]>escreveu: >> >>> 2013/4/25 izaque Maciel <[email protected]> >>> >>>> Certo, mas pode me dar um exemplo, de como ficaria isso? >>>> >>> >>> Pessoal cuidado com o top-posting. >>> >>> Respondendo a pergunta, se você irá retornar apenas o valor de uma >>> variável, na assinatura da função utilize apenas "RETURNS numeric", ou >>> seja, retire o "SETOF". Mas lembre-se o tipo da variável deve ser do mesmo >>> tipo do RETURNS. >>> >>> []s >>> Danilo >>> >>>> >>>> >>>> Em 25 de abril de 2013 08:54, Jean Domingues >>>> <[email protected]>escreveu: >>>> >>>> Mas vc esta retornando um record onde deveria retornar numeric. E, se >>>>> for set of, retorne com return next (varios registros), senao, nao use >>>>> setof, use apenas numeric no tipo do retorno. >>>>> >>>>> ------------------------------ >>>>> *De:* izaque Maciel <[email protected]> >>>>> *Para:* Comunidade PostgreSQL Brasileira < >>>>> [email protected]> >>>>> *Enviadas:* Quinta-feira, 25 de Abril de 2013 8:11 >>>>> *Assunto:* [pgbr-geral] Stored Procedure. >>>>> >>>>> Bom dia pessoal, não consegui concluir esta procedure pela questão do >>>>> retorno, que tem que me retornar todos os campos do "último select" >>>>> abaixo, >>>>> e com o retorno deste último select, criarei outra stored procedure para >>>>> pegar o retorno dessa e trabalharei alguns cálculos. Peço a ajuda de >>>>> vocês, >>>>> obrigado. >>>>> >>>>> >>>>> CREATE OR REPLACE FUNCTION public.retorna_valores_go ( >>>>> id_emolumento numeric(12,2), >>>>> dt_calculo_emol date, >>>>> valor_documento numeric(12,2) >>>>> ) >>>>> RETURNS SETOF numeric AS >>>>> $body$ >>>>> DECLARE >>>>> >>>>> vidEmolumento numeric(12,2); >>>>> vidVigencia numeric(12,2); >>>>> vidEmolItens numeric(12,2); >>>>> regEmolItens record; >>>>> BEGIN >>>>> >>>>> -- Verifica se existe o emolumento >>>>> select e.id into vidEmolumento >>>>> from emolumentos e >>>>> where e.id = id_emolumento; >>>>> >>>>> -- Se encontrado, localiza a vigência >>>>> if (videmolumento is not null) then >>>>> begin >>>>> select v.id into vidvigencia >>>>> from vigencia v >>>>> where dt_calculo_emol between v.dt_inicial and v.dt_final; >>>>> >>>>> -- Se econtrada a vigência, localiza o emolumento pelo valor >>>>> if (vidvigencia is not null) then >>>>> select e.id into videmolitens >>>>> from emolumentos_itens e >>>>> where valor_documento between e.fx_valor_final and >>>>> e.fx_valor_final; >>>>> end if; >>>>> >>>>> -- Se foi localizado o emolumento >>>>> if (videmolitens is not null) then >>>>> select e.id into videmolitens >>>>> from emolumentos_itens e >>>>> where e.id_emolumentos = videmolumento and >>>>> e.id_vigencia = vidvigencia and >>>>> e.fx_valor_inicial = 0 and >>>>> e.fx_valor_final = 0; >>>>> end if; >>>>> >>>>> if (videmolitens is not null) then >>>>> begin >>>>> select e.id, >>>>> e.id_emolumentos, >>>>> e.fx_valor_inicial, >>>>> e.fx_valor_final, >>>>> e.valor_emolumento, >>>>> e.tx_jud, >>>>> e.fundesp, >>>>> e.valor2, >>>>> e.valor3, >>>>> e.valor4, >>>>> e.valor5, >>>>> e.outras_despesas, >>>>> e.pag_extra_inicio, >>>>> e.valor_pag_extra, >>>>> e.fundo_pag_extra, >>>>> e.tx_jud_pag_extra, >>>>> e.cod_tab_correg, >>>>> e.cod_interno, >>>>> e.calc_txjud, >>>>> e.calc_fundesp, >>>>> e.calc_valor2, >>>>> e.calc_valor3, >>>>> e.calc_valor4, >>>>> e.calc_valor5, >>>>> e.calc_pagina_extra into regEmolItens >>>>> from emolumentos_itens e >>>>> where valor_documento between e.fx_valor_final and >>>>> e.fx_valor_final; >>>>> >>>>> return regEmolItens; >>>>> end; >>>>> end if; >>>>> end; >>>>> end if; >>>>> >>>>> >>>>> END >>>>> $body$ >>>>> LANGUAGE 'plpgsql' >>>>> VOLATILE >>>>> CALLED ON NULL INPUT >>>>> SECURITY INVOKER >>>>> COST 100; >>>>> >>>>> _______________________________________________ >>>>> 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 >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> 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 >>> >>> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > > -- > Marcelo Silva > ---------------------------------------------------------------- > Desenvolvedor Delphi / PHP > My Postgres database > Cel.: (11) 99693-4251 > > _______________________________________________ > 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
