Professional Documents
Culture Documents
Cursores en MySQL
Un cursor es una variable que nos permite recorrer un conjunto de resultados obtenidos a travez
de una sentencia SELECT fila por fila.
Estos nos ayudaran a obtener los valores de nuestras tablas de una forma facil y ordenada. Se
soportan cursores simples dentro de procedimientos y funciones almacenadas. La sintaxis es la de
SQL empotrado. Los cursores no son sensibles, son de solo lectura, y no permiten scrolling.
Los cursores deben declararse antes de declarar los handlers, y las variables y condiciones deben
declararse antes de declarar cursores o handlers.
Uso:
El uso de los cursores es una tcnica que permite tratar fila por fila el resultado de una consulta,
contrariamente al SELECT SQL que trata un conjunto de fila. Los cursores pueden ser
implementador por instrucciones TRANSACT-SQL (cursores ANSI-SQL) o por la API OLE-DB.
Se utilizaran los cursores ANSI cuando sea necesario tratar las filas de manera individual en un
conjunto o cuando SQL no pueda actuar nicamente sobre las filas afectadas. Los cursores API
sern utilizados por las aplicaciones cliente para tratar volmenes importantes o para gestionar
varios conjuntos de resultados.
Cuando trabajemos con cursores, debemos seguir los siguientes pasos:
Sintaxis
Ventajas
Desventajas:
Recuperar una fila del cursor puede resultar un retraso, se le debe de dar el tiempo
necesario para enviar la peticin al SGBD y esperar los datos.
Utiliza mucho mas ancho de banda de la red de lo que se necesitara por norma general
para ejecutar una sola sentencia SQL como DELETE.
Reservar recursos en el servidor, como por ejemplo locks, packages, procesos,
almacenamiento temporal, etc.
Ejemplos:
Conclusin: Los cursores son muy tiles sobre todo cuando no podemos tener todas las columnas
que necesitamos en un solo SELECT. Si podemos tener a todas las columnas en un solo SELECT
puede ser ms prctico usar el comando SELECT INTO
Como el Firebird nos permite tener abiertos dos, tres, o ms cursores al mismo tiempo entonces
podemos extraer de cada uno de ellos las columnas que necesitamos para procesarlas.
Muchas veces, en lugar de estar escribiendo un SELECT complicado, lleno de JOINs o de UNIONs es
mucho ms fcil, rpido y sencillo, usar varios cursores, se nos simplifica la vida de esta manera.