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.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda