Hola .. ya se aclaró el escenario.. Se estaba usando en el desarrollo una antigua librería hecha para procesar SPs con sólo un cursor como salida ... por eso no les resultaba este nuevo SP en esa librería. Se modificará esa librería para esos proyectos (más antiguos)... para los más nuevos usarán Laravel que por lo que me indicaron es más fácil dicho manejo.
Gracias Anthony por la orientación. Slds. AP. El 24 de septiembre de 2015, 18:46, Andrés P.P. <solopostg...@gmail.com> escribió: > > 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. >>> >>> >> >