Sunday, June 15, 2008

Re: [pgsql-es-ayuda] Rendimiento sin COMMIT

On Sun, Jun 15, 2008 at 12:46 PM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:
> Jaime Casanova escribió:
>> On Fri, Jun 13, 2008 at 10:28 AM, Alvaro Herrera
>> <alvherre@commandprompt.com> wrote:
>
>> > No puedes usar cursores directamente.
>> >
>> ?? porque?? me estoy perdiendo algo??
>
> Hmm, ¿cambiaron esto hace poco? Que yo recuerde, no se podía.
>

Desde el 8.3 se puede hacer WHERE CURRENT OF de un cursor en plpgsql,
o te referias a otra cosa?
http://www.postgresql.org/docs/8.3/static/plpgsql-cursors.html#PLPGSQL-CURSOR-USING

CREATE OR REPLACE FUNCTION prueba_1(dw01 integer) RETURNS smallint AS
$BODY$
DECLARE
jcb cursor for select *
from test1
where col1 = dw01
for update;
dw21 record;
BEGIN
OPEN jcb;
LOOP
FETCH jcb INTO dw21;
EXIT WHEN NOT FOUND;
update test1 set col2 = 0
where CURRENT OF jcb;
END LOOP;
CLOSE jcb;
RETURN 1;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

No comments: