20/5/2014 Programación .NET en la consola.: Entendiendo cursors (cursores) en PostgreSQL. Compartir 1 Más Siguiente
Views 170 Downloads 0 File size 606KB
20/5/2014
Programación .NET en la consola.: Entendiendo cursors (cursores) en PostgreSQL. Compartir
1
Más
Siguiente blog»
Crear un blog
Programación .NET en la consola. Tutoriales y código acerca de la plataforma .NET,Redes con Cisco y PostgreSQL.
domingo, 27 de enero de 2013
Entendiendo cursors (cursores) en PostgreSQL. Para el manejo de grandes cantidades de datos tanto en PostgreSQL como en otras bases de datos relacionales existe el concepto de cursors (cursores) los cuales representan un resultset (conjunto de datos) que son asociados a una variable, una variable de tipo cursor. Esta variable representa un apuntador hacia una tabla virtual representada por una consulta y su respectivo comando SELECT asociado. La diferencia entre un comando SELECT no asociado a un cursor y uno asociado, es que en el primero la consulta regresará todos los registros a la vez y si queremos limitar la cantidad de registros para procesar debemos correr la consulta nuevamente agregando WHERE, BETWEEN o cualquier otra instrucción para filtrar los resultados. En el caso del comando asociado a un cursor este nos permite desplazarnos y limitar la cantidad de registros para procesar dentro del resultset sin necesidad de un nuevo comando SELECT. Como ejemplo tenemos una tabla Books dentro de una base de datos llamada MyBook s, aqui esta el script para su creación. CREATE TABLE books ( bookid serial NOT NULL, title character varying(512), publishyear smallint, isbn character varying(13), created date DEFAULT ('now'::text)::date, CONSTRAINT books_pkey PRIMARY KEY (bookid) ) Para mostrar la diferencia entre una consulta sin cursor y una consulta asociada a un cursor, ejecutamos la siguiente consulta. SELECT bookid, title, publishyear, isbn, created FROM Books. Esta consulta nos devuelve el siguiente resultado.
Sobre la documentación de este si Todos los documentos del sitio estan protegidos bajo la licencia de documentac libre Free Documentacion License Proyecto GNU, ver
http://www.gnu.org/licenses/fdl.txt
Etiquetas Ingeniería de software (6) Lenguajes .NET (27) Linux (50) Redes (8) Windows (11)
Documentos para descargar ADO .NET con Mono I ADO .NET con Mono II ADO .NET con Mono III Aprendiendo C# con Mono ASP .NET con Mono I ASP .NET con Mono II ASP .NET con Mono III Ensamblados de recursos con MonoDevelop Expresiones Lambda Ahora mostramos los comandos que pueden utilizarse al asociar una consulta a un cursor. Para el trabajo con cursores es necesario que estos se encuentren dentro del ámbito de una transacción. Empezamos con una transacción.
LINQ con Mono y C#
BEGIN;
Web Services con MonoDevelop I
Declaramos el cursor como una variable de tipo cursor y le asociamos una consulta SQL.
Web Services con MonoDevelop II
DECLARE mycursor CURSOR FOR SELECT * FROM Books;
Web Services con MonoDevelop III
Ahora podemos navegar entre los registros del resultset, con el comando FETCH, de este comando la sintaxis es:
XML con MonoDevelop I
FETCH [FORWARD | BACKWARD | ALL | NEXT]
XML con MonoDevelop II
A continuación unos ejemplos de su utilización. Obtenemos un par de registros.
Revistas
FETCH 2 FROM MyCursor;
Atix Begins
http://xomalli.blogspot.com/2013/01/entendiendo-cursors-cursores-en.html
1/4
20/5/2014
Programación .NET en la consola.: Entendiendo cursors (cursores) en PostgreSQL. DotnetMania Tuxinfo
Archivo del blog ► 2014 (11) ▼ 2013 (20) ► septiembre (3) ► agosto (5) ► julio (1) ► junio (1) ► mayo (1) ► abril (2) ► marzo (3) ► febrero (2) ▼ enero (2) Obtenemos los siguientes 4 registros y nos desplazamos: FETCH 4 FROM MyCursor;
Entendiendo cursors (cursores) en PostgreSQL. Trabajando con Binary Large Object (BLOB) en Postg... ► 2012 (17) ► 2011 (22) ► 2010 (21) ► 2009 (10) ► 2008 (1)
Seguidores
Participar en este sitio Google Friend Connect
Miembros (5)
Obtenemos 3 registros hacia atrás a partir del último registro. FETCH BACKWARD 3 FROM MyCursor;
¿Ya eres miembro? Iniciar sesión
Visitantes
Datos personales
Martín A. Márquez Ver todo mi perfil Avanzamos de nuevo y obtenemos los próximos 6 registros: FETCH FORWARD 6 FROM MyCursor;
http://xomalli.blogspot.com/2013/01/entendiendo-cursors-cursores-en.html
2/4
20/5/2014
Programación .NET en la consola.: Entendiendo cursors (cursores) en PostgreSQL.
Obtenemos el próximo registro
FETCH NEXT FROM MyCursor;
También podemos avanzar de forma negativa con FORWARD -[n] lo que es equivalente a BACKWARD [n]. FETCH FORWARD -10 FROM MyCursor;
Obtenemos todos los registros del cursor: FETCH ALL FROM MyCursor;
http://xomalli.blogspot.com/2013/01/entendiendo-cursors-cursores-en.html
3/4
20/5/2014
Programación .NET en la consola.: Entendiendo cursors (cursores) en PostgreSQL.
Por último cerramos el cursor y confirmamos (o abortamos) la transacción. CLOSE MyCursor; COMMIT;
Publicado por Martín A. Márquez en 11:16 Etiquetas: Linux
Entrada más reciente
Página principal
Entrada antigua
Plantilla Awesome Inc.. Con la tecnología de Blogger.
http://xomalli.blogspot.com/2013/01/entendiendo-cursors-cursores-en.html
4/4