Boa tarde Colegas!

Como estou iniciando com o PG e mesmo já tendo verificado na documentação 
não vi nenhum exemplo que pudesse me dar um norte. Tenho algumas Stored 
Procedures que retornam valores que é o caso das Functions do PG. Vou 
colocar um exemplo abaixo e peço aos colegas que me digam como posso 
replicar isto no PG.

No Firebird fica assim:

Create or alter procedure FFinanceira (
    mat integer,
    ano integer)
returns (
    matricula integer,
    nome varchar(50),
    cargo varchar(50),
    out_mes integer,
    out_ano integer,
    evento numeric(12,2),
    nome_evento varchar(50),
    referencia numeric(6,2),
    valor numeric(12,2),
    vencimentos numeric(12,2),
    descontos numeric(12,2),
    liquido numeric(12,2))
as
begin
    for select v.matricula,
                    v.mes,
                    v.ano,
                    v.cod_evento,
                    e.nome
                    v.referencia,
                    v.valor
         from variavel v
            join evento e on (e.codigo = v.cod_evento)
         where v.ano = :ano
             and v.matricula = :mat
    into  :matricula, :out_mes, :out_ano, :evento, :nome_evento, 
:referencia, :valor do
    begin
        select sum(v.valor)
        from variavel v
           join evento e on (e.codigo = v.cod_evento and e.provento_desconto 
= 'P')
        where v.mes = :out_mes
             and v.ano = :out_ano
             and v.matricula = :matricula into :vencimentos
        .........
        suspend;
    end
end;

....... para não ficar muito grande o exemplo, apenas para ilustrar pois 
dentro do begin/end do for select efetuarei varias operações.
Vejam que as variaveis (retuns()) serão o meu retorno e isto irá me retornar 
um dataset... sei que no PG podemos utilizar o tipo Query só não sei como 
processar essas operações.

Como ficaria esta SP no PG?

[ ]'s,
Hélio Oliveira 


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

Responder a