Gracias Anthony.. Yo en forma manual (psql) me funciona... pero al parecer en PHP no les ha funcionado...Voy a insistirle al desarrollador en que valide bien la estructura begin-end al momento de hacer los fetch..
Te cuento los resultados. Slds. AP. El 24 de septiembre de 2015, 18:33, anthony <asotolo...@gmail.com> escribió: > Hola Andrés, para poder acceder a los cursores que retorna una función > debe ser dentro de la misma transacción, por eso como dice la doc > http://www.postgresql.org/docs/9.4/interactive/plpgsql-cursors.html#PLPGSQL-CURSOR-USING > debes ejecutar la llamada a la función y la extracción de los datos de los > cursores dentro de una transaccion, asegurate que tu desarrollador esta > ejecutando BEGIN; > -- llamada a la función > --obtención de datos del cursor1....cursorn > COMMIT; > > > por ejemplo: > CREATE OR REPLACE FUNCTION devolver ( INOUT rc1 refcursor,INOUT rc2 > refcursor) RETURNS record AS $body$ > DECLARE > BEGIN > OPEN RC1 FOR > SELECT * > FROM pg_class; > OPEN RC2 FOR > SELECT * > FROM pg_language; > END; > $body$ > LANGUAGE PLPGSQL; > > > BEGIN; > > SELECT * FROM devolver('c1', 'c2'); > > FETCH ALL FROM c1; > FETCH ALL FROM c2; > COMMIT; > > > saludos > > El 24/09/15 a las 13:34, Andrés P.P. escribió: > > >> Estimados >> >> Tengo un Stored Procedure que es mas menos lo siguiente en cuanto a >> definición... >> >> mi_procedimiento(param1 .. >> param2... >> cursor1 refcursor, >> cursor2 refcursor, >> ..... >> cursor5 refcursor) as $$ >> ...bla bla.. >> >> donde cursor1, cursor2....cursor5 son 5 cursores de salida que tienen >> distinta estructura y distintas fuentes de datos.....y dentro del SP se >> alimentan de la forma: >> >> open cursor1 for select...bla bla...; >> >> open cursor2 for select...bla bla... >> >> Este SP lo debe ejecutar php y rescatar la salida de cursor1, >> cursor2....cursor5... >> >> El desarrollador PHP me indica que NO ha podido encontrar la forma de >> rescatar simultáneamente la data de los 5 cursores... por lo que se ve >> obligado a ejecutar 5 veces el SP para ir rescatando la data cursor por >> cursor.... lo que significaría que en vez de ejecutar sólo 5 consulta se >> ejecutarían 25 en las 5 pasadas...... >> >> Alguien podría indicarme la forma o derivarme a un link en donde se >> explique claramente como solucionar esto a nivel de php?...(o del SP)..... >> o no hay solución??.. y lo que debo hacer es descomponer el SP principal en >> 5 SPs distintos??.. >> >> Slds. >> AP. >> >> >