2013/4/26 izaque Maciel <[email protected]>

> Tudo bem pessoal, como disse anteriormente, é minha primeira stored
> procedure no postgresql e é uma conversão do firebird para postgresql, do
> jeito que está lá estava convertendo. Se tiverem e poderem, por favor, me
> passem uma stored procedure que retorna registros. Obrigado!
>
>
>
Cara, pode tentar, por obséquio, evitar o "top-posting"?

Indenpendente de ser PostgreSQL ou Firebird, o que estamos te informando é
que essa procedure está mal escrita, não que não deveria usá-la como tal.

Mas, como disses que está convertendo do Firebird para o PostgreSQL,
acredito que a forma mais "parecida" é usando o "RETURNS TABLE". Exemplo:

CREATE OR REPLACE FUNCTION nome(params ...)
RETURNS TABLE (col1 tipo1, col2 tipo2, ... )
LANGUAGE PLPGSQL AS $$
DECLARE
    ...
BEGIN
    ...
    FOR ... LOOP
        ...
        col1 = foo;
        col2 = bar;
        ...
        RETURN NEXT; -- seria como o SUSPEND do Firebird
    END LOOP;
END
$$;

Se você otimizar em um único SELECT, poderá fazer assim no retorno (sem
LOOP):

...
RETURN QUERY SELECT ...;
...



> Em 26 de abril de 2013 10:22, Osvaldo Kussama 
> <[email protected]>escreveu:
>
> Em 26/04/13, izaque Maciel<[email protected]> escreveu:
>> > 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.
>> >
>>
>>
>> Mas então, como já foi dito, coloque uma junção dentro de sua stored
>> procedure.
>> Seu código está extremamente confuso. Pense no SQL como uma linguagem
>> declarativa e não uma linguagem procedimental na qual ocê precisa
>> ficar fazendo loops dentro de loops.
>>
>> Osvaldo
>> _______________________________________________
>> 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
>
>


-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a