From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Danier Marante Jacas <djacas(at)estudiantes(dot)uci(dot)cu> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Trabajo con cursores |
Date: | 2007-11-05 19:08:35 |
Message-ID: | 20071105190835.GE6511@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Danier Marante Jacas escribió:
>
>
> Yo tengo un cursor con el que recorro algunas tablas en una consulta.
> Pero necesito iterarlo con un siclo y abrirlo con un fecth para
> consultar la data que contiene. MI duda es si se puede cambiar la data
> del cursor o los campos de este.
No. En 8.3 puedes hacer UPDATE WHERE CURRENT OF <cursor>, pero no
existe en las versiones estables. Suponiendo que te refieres a algo
asi:
alvherre=# create table foo (a serial);
NOTICE: CREATE TABLE creará una secuencia implícita «foo_a_seq» para la columna
serial «foo.a»
CREATE TABLE
alvherre=# insert into foo select * from generate_series (1, 10);
INSERT 0 10
alvherre=# begin;
BEGIN
alvherre=# declare test cursor for select * from foo;
DECLARE CURSOR
alvherre=# fetch 3 from test;
a
---
1
2
3
(3 filas)
alvherre=# update foo set a = a + 10 where current of test;
UPDATE 1
alvherre=# commit;
COMMIT
alvherre=# select * from foo;
a
----
1
2
4
5
6
7
8
9
10
13
(10 filas)
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-11-05 19:10:12 | Re: hora del servidor |
Previous Message | Alvaro Herrera | 2007-11-05 18:57:30 | Re: Base de datos corrupta |