Em 4 de janeiro de 2011 11:07, Jairo <[email protected]> escreveu:
>
> <corte>
>
>
>
> *A QUESTÃO É: COMO FAZER neste exemplo acima PARA O ‘FETCH ALL IN a’
> RETORNAR ‘123’ E ‘FETCH ALL IN b’ RETORNAR ‘456’*
>
>
>
> Agradeço desde já e desejo um bom ano a todos!
>
>
>
>
>
Tente:
CREATE OR REPLACE FUNCTION funcao1(refcursor) RETURNS refcursor AS $$
BEGIN
OPEN $1 FOR SELECT * FROM table_1;
RETURN $1;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION funcao2(refcursor) RETURNS refcursor AS $$
BEGIN
OPEN $1 FOR SELECT * FROM table_2;
RETURN $1;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION myfunc(refcursor, refcursor) RETURNS void AS $$
BEGIN
perform * FROM funcao1($1);
perform * FROM funcao2($2);
return;
END;
$$ LANGUAGE plpgsql;
BEGIN;
SELECT myfunc('a', 'b');
FETCH ALL IN a;
FETCH ALL IN b;
ROLLBACK;
A única mudança que fiz foi na "myfunc".
--
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral