Lists: | pgsql-es-ayuda |
---|
From: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
---|---|
To: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 15:05:40 |
Message-ID: | fa2b6e3a0601190705n7d41e19bi@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola Amigos:
Quiero crear un procedimiento plpgsql que contenga lo siguiente:
1.- Crear un cursor o tabla temporal
2.- Agregar registros a ese cursor
3.- Devolver el cursor.
¿Es posible eso? ¿Pueden darme alguna idea ?
Gracias
--
atte.
Luis Guevara
From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 15:21:16 |
Message-ID: | c2d9e70e0601190721q65346edt1d8895679199d25a@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Hola Amigos:
>
> Quiero crear un procedimiento plpgsql que contenga lo siguiente:
>
> 1.- Crear un cursor o tabla temporal
> 2.- Agregar registros a ese cursor
> 3.- Devolver el cursor.
>
> ¿Es posible eso? ¿Pueden darme alguna idea ?
>
> Gracias
>
>
>
> --
> atte.
> Luis Guevara
si... aqui tienes algunos ejemplos...
http://www.postgresql.org/docs/current/static/plpgsql-cursors.html#PLPGSQL-CURSOR-USING
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 15:29:48 |
Message-ID: | fa2b6e3a0601190729k3f58fb6bq@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Gracias Jaime:
Si había estado revisando el link que me dices, pero:
No entiendo como creo el cursor, ¿Como indico los campos que va a tener ?
¿Como agrego registros ?
y ¿Como llamo desde PHP a esa funcion ?
Deseo hacer algo as, Desde PHP enviar una consulta como esta:
select * from dependencia where depe_id IN (select myfuncion())
¿Es posible ?. Espero puedas darme una idea
Gracias
El día 19/01/06, Jaime Casanova <systemguards(at)gmail(dot)com> escribió:
>
> On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> > Hola Amigos:
> >
> > Quiero crear un procedimiento plpgsql que contenga lo siguiente:
> >
> > 1.- Crear un cursor o tabla temporal
> > 2.- Agregar registros a ese cursor
> > 3.- Devolver el cursor.
> >
> > ¿Es posible eso? ¿Pueden darme alguna idea ?
> >
> > Gracias
> >
> >
> >
> > --
> > atte.
> > Luis Guevara
>
> si... aqui tienes algunos ejemplos...
>
> http://www.postgresql.org/docs/current/static/plpgsql-cursors.html#PLPGSQL-CURSOR-USING
>
> --
> Atentamente,
> Jaime Casanova
> (DBA: DataBase Aniquilator ;)
>
--
atte.
Luis Guevara
From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
Cc: | Jaime Casanova <systemguards(at)gmail(dot)com>, PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 15:58:43 |
Message-ID: | 20060119155843.GA28011@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Luis Guevara escribió:
> Gracias Jaime:
>
> Si había estado revisando el link que me dices, pero:
>
> No entiendo como creo el cursor, ¿Como indico los campos que va a tener ?
> ¿Como agrego registros ?
> y ¿Como llamo desde PHP a esa funcion ?
>
> Deseo hacer algo as, Desde PHP enviar una consulta como esta:
>
> select * from dependencia where depe_id IN (select myfuncion())
>
> ¿Es posible ?. Espero puedas darme una idea
Que se supone que hace myfuncion()?
--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 49' 17.7", W 73º 14' 26.8"
"I personally became interested in Linux while I was dating an English major
who wouldn't know an operating system if it walked up and bit him."
(Val Henson)
From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 16:05:27 |
Message-ID: | c2d9e70e0601190805v34690492jaf6bf679c327c8c8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Gracias Jaime:
>
> Si había estado revisando el link que me dices, pero:
>
> No entiendo como creo el cursor, ¿Como indico los campos que va a tener ?
> ¿Como agrego registros ?
> y ¿Como llamo desde PHP a esa funcion ?
>
> Deseo hacer algo as, Desde PHP enviar una consulta como esta:
>
> select * from dependencia where depe_id IN (select myfuncion())
>
de todas formas la llamada esta mal hecha, deberia ser:
select * from dependencia where depe_id IN (select campo from myfuncion())
> ¿Es posible ?. Espero puedas darme una idea
>
> Gracias
>
>
es posible... pero para que? todo lo que necesitas es, en el peor de
los casos, una funcion que retorne un conjunto de registros...
dinos que tratas de hacer haber si vemos como facilitar las cosas...
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
---|---|
To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>, Jaime Casanova <systemguards(at)gmail(dot)com>, PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 16:05:33 |
Message-ID: | fa2b6e3a0601190805n431f0268x@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
En myfuncion() deseo crear un cursor o tabla temporal y agregar registros a
ese cursor, de tal manera que la funcion me devuelva el cursor creado. ¿Es
posible hacerlo?
Gracias
El día 19/01/06, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
>
> Luis Guevara escribió:
> > Gracias Jaime:
> >
> > Si había estado revisando el link que me dices, pero:
> >
> > No entiendo como creo el cursor, ¿Como indico los campos que va a tener
> ?
> > ¿Como agrego registros ?
> > y ¿Como llamo desde PHP a esa funcion ?
> >
> > Deseo hacer algo as, Desde PHP enviar una consulta como esta:
> >
> > select * from dependencia where depe_id IN (select myfuncion())
> >
> > ¿Es posible ?. Espero puedas darme una idea
>
> Que se supone que hace myfuncion()?
>
> --
> Alvaro Herrera Valdivia, Chile ICBM: S 39º 49' 17.7", W 73º 14'
> 26.8"
> "I personally became interested in Linux while I was dating an English
> major
> who wouldn't know an operating system if it walked up and bit him."
> (Val Henson)
>
--
atte.
Luis Guevara
From: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 16:15:58 |
Message-ID: | fa2b6e3a0601190815s4e68f02eo@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Ok. necesito una funcion que retorne un conjunto de registros (que es un
cursor),
Pero ese conjunto de registros deseo agregarlos con comandos INSERT en base
a consultas de otras tablas.
Es decir algo así:
CREATE FUNCTION myfuncion()
.....
CREATE TABLE mycursor (codigo integer) -----> pero que sea una tabla
temporal o un cursor
INSERT INTO mycursor VALUES(1)
INSERT INTO mycursor VALUES(2)
RETURN mycursor
...
LANGUAGE 'plpgsql'
El día 19/01/06, Jaime Casanova <systemguards(at)gmail(dot)com> escribió:
>
> On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> > Gracias Jaime:
> >
> > Si había estado revisando el link que me dices, pero:
> >
> > No entiendo como creo el cursor, ¿Como indico los campos que va a tener
> ?
> > ¿Como agrego registros ?
> > y ¿Como llamo desde PHP a esa funcion ?
> >
> > Deseo hacer algo as, Desde PHP enviar una consulta como esta:
> >
> > select * from dependencia where depe_id IN (select myfuncion())
> >
>
> de todas formas la llamada esta mal hecha, deberia ser:
>
> select * from dependencia where depe_id IN (select campo from myfuncion())
>
> > ¿Es posible ?. Espero puedas darme una idea
> >
> > Gracias
> >
> >
>
> es posible... pero para que? todo lo que necesitas es, en el peor de
> los casos, una funcion que retorne un conjunto de registros...
>
> dinos que tratas de hacer haber si vemos como facilitar las cosas...
>
> --
> Atentamente,
> Jaime Casanova
> (DBA: DataBase Aniquilator ;)
>
--
atte.
Luis Guevara
From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 16:21:34 |
Message-ID: | c2d9e70e0601190821i663d44d9kb05ee361b901a951@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Ok. necesito una funcion que retorne un conjunto de registros (que es un
> cursor),
> Pero ese conjunto de registros deseo agregarlos con comandos INSERT en base
> a consultas de otras tablas.
>
> Es decir algo así:
>
> CREATE FUNCTION myfuncion()
> .....
> CREATE TABLE mycursor (codigo integer) -----> pero que sea una tabla
> temporal o un cursor
> INSERT INTO mycursor VALUES(1)
> INSERT INTO mycursor VALUES(2)
> RETURN mycursor
> ...
> LANGUAGE 'plpgsql'
>
quiza algo como?
CREATE FUNCTION myfuncion() RETURNS SETOF record as $$
SELECT 1 UNION SELECT 2 [UNION < TODAS LAS CONSULTAS QUE
QUIERAS HACER > ];
END;
$$ LANGUAGE sql;
o si la consulta que vas a hacer es de una sola tabla, entonces seria:
CREATE FUNCTION myfuncion() RETURNS SETOF tabla as $$
SELECT * FROM tabla;
END;
$$ LANGUAGE sql;
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 16:28:06 |
Message-ID: | fa2b6e3a0601190828n4442f607q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Ok. Pero el cursor que deso devolver va a ser llenado en base a comandos
INSERT y no con otras consultas.
Mi problema es como crear el cursor y como insertar registros en el.
Gracias Jaime
El día 19/01/06, Jaime Casanova <systemguards(at)gmail(dot)com> escribió:
>
> On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> > Ok. necesito una funcion que retorne un conjunto de registros (que es un
> > cursor),
> > Pero ese conjunto de registros deseo agregarlos con comandos INSERT en
> base
> > a consultas de otras tablas.
> >
> > Es decir algo así:
> >
> > CREATE FUNCTION myfuncion()
> > .....
> > CREATE TABLE mycursor (codigo integer) -----> pero que sea una
> tabla
> > temporal o un cursor
> > INSERT INTO mycursor VALUES(1)
> > INSERT INTO mycursor VALUES(2)
> > RETURN mycursor
> > ...
> > LANGUAGE 'plpgsql'
> >
>
> quiza algo como?
>
> CREATE FUNCTION myfuncion() RETURNS SETOF record as $$
> SELECT 1 UNION SELECT 2 [UNION < TODAS LAS CONSULTAS QUE
> QUIERAS HACER > ];
> END;
> $$ LANGUAGE sql;
>
> o si la consulta que vas a hacer es de una sola tabla, entonces seria:
>
> CREATE FUNCTION myfuncion() RETURNS SETOF tabla as $$
> SELECT * FROM tabla;
> END;
> $$ LANGUAGE sql;
>
> --
> Atentamente,
> Jaime Casanova
> (DBA: DataBase Aniquilator ;)
>
--
atte.
Luis Guevara
From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 18:15:54 |
Message-ID: | c2d9e70e0601191015v1ddae4fbh4590fda5f070ea6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Ok. Pero el cursor que deso devolver va a ser llenado en base a comandos
> INSERT y no con otras consultas.
>
> Mi problema es como crear el cursor y como insertar registros en el.
>
> Gracias Jaime
>
un cursor se crea en base a una consulta... no ingresas registros en el...
en todo caso una tabla temporal es lo que necesitarias...
pero insisto en que estas manejando esto de forma incorrecta:
por ejemplo: en que se basan los inserts? datos que salen de una
tabla? parametros que envia el usuario?
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cursor en Procedimiento plpgsql |
Date: | 2006-01-19 19:12:36 |
Message-ID: | fa2b6e3a0601191112r5c483708v@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
ok. entiendo, entonces debo trabajar con una tabla temporal, en la cual
pueda efectuar INSERT.
O en todo caso, si tengo la siguiente tabla Dependencia:
depe_id Descipcion Depende
1 AAAAA Null
2 bbbbbb Null
3 xxxxxx Null
4 yyyyyyyy 2
5 zzzzzzz 4
Quiero crear un procedimiento al cual le envíe como parámetro el depe_id y
me devuelva todos los registros que
dependen de ese depe_id. Por ejm si llamo a la función así:
select * from myfuncion(2)
que me devuelva el siguiente cursor:
depe_id Descipcion Depende
2 bbbbbb Null
4 yyyyyyyy 2
5 zzzzzzz 4
Gracias Jaime por tu ayuda
atte.
Luis Guevara
El día 19/01/06, Jaime Casanova <systemguards(at)gmail(dot)com> escribió:
>
> On 1/19/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> > Ok. Pero el cursor que deso devolver va a ser llenado en base a comandos
> > INSERT y no con otras consultas.
> >
> > Mi problema es como crear el cursor y como insertar registros en el.
> >
> > Gracias Jaime
> >
>
> un cursor se crea en base a una consulta... no ingresas registros en el...
> en todo caso una tabla temporal es lo que necesitarias...
>
> pero insisto en que estas manejando esto de forma incorrecta:
> por ejemplo: en que se basan los inserts? datos que salen de una
> tabla? parametros que envia el usuario?
>
> --
> Atentamente,
> Jaime Casanova
> (DBA: DataBase Aniquilator ;)
>
--
atte.
Luis Guevara