Hola nuevamente Alberto, como dice los textos y ejemplos del link que te
envié (http://www.postgresql.org/docs/9.5/interactive/plpgsql-cursors.html),
puedes usarlos para:
1- Retornar desde una función  que devuelve muchos registros,
2-Puede ser útil también para devolver más de un cursor, es decir puedes
retornar dos o más resultados y usarlos desde tu APP, este es el ejemplo
que viene en la doc del link que te envié:

CREATE FUNCTION myfunc(refcursor, refcursor) RETURNS SETOF refcursor AS $$
BEGIN
    OPEN $1 FOR SELECT * FROM table_1;
    RETURN NEXT $1;
    OPEN $2 FOR SELECT * FROM table_2;
    RETURN NEXT $2;
END;
$$ LANGUAGE plpgsql;

-- need to be in a transaction to use cursors.
BEGIN;

SELECT * FROM myfunc('a', 'b');

FETCH ALL FROM a;
FETCH ALL FROM b;
COMMIT;


3- También puede usarlo para paginar tus resultados desde PostgreSQL, y
escribes los códigos desde tu APP ejemplo:

BEGIN;-- defines tu cursorDECLARE micursor CURSOR FOR SELECT * FROM
mitabla;-- obtienes 20 tuplas
FETCH 20 FROM micursor ;
-- ...trabajas con elllas

-- obtienes 20 tuplas mas

FETCH 20 FROM micursor;

-- ...trabajas con ellas

-- haces lo que vayas hacer COMMIT;



Al menos estos tres son los conozco y de una forma u otra los he
implementado, puede que hayan varios más, y otros usuarios de aquí los
puedan compartir


saludos


El 28 de abril de 2016, 11:05, Alberto Cuevas <betocuevas....@gmail.com>
escribió:

> Anthony gracias por la respuesta.
>
> Me serviria de mucho algún ejemplo en el cual debo usar un cursor, si no
> es molestia estimados.
>
> Saludos.
>
> El mié., 27 abr. 2016 a las 12:49, Anthony Sotolongo (<
> asotolo...@gmail.com>) escribió:
>
>> Hola Alberto, creo que el primer párrafo del siguiente link de la
>> documentación indica el momento para usar cursores:
>> http://www.postgresql.org/docs/9.5/interactive/plpgsql-cursors.html
>>
>> saludos
>>
>> On 27/04/16 14:21, Alberto Cuevas wrote:
>> > Hola a todos, siempre he leido que se debe evitar usar cursores, que
>> > es una mala practica y pues nunca los he usado en ningun motor de BD
>> > en los que he trabajado (SQL Server, Oracle, PostgreSQL)
>> >
>> > Actualmente trabajo con Oracle y PostgreSQL, he encontrado mucha
>> > similitud y ambas me gustan.
>> >
>> > Mi pregunta es en que momento usar un cursor.
>> >
>> > Disculpen si la pregunta es muy basica.
>> >
>> > Saludos.
>>
>>
>> -
>> 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
>>
>

Responder a