Está usted en Indice > Construcción > Lenguajes > SQL > Lecciones y Paso a Paso > Cursores en SQL
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Cursores en SQL

En algunos SGDB es posible la abertura de cursores de datos desde el propio entorno de trabajo, para ello se utilizan, normalmente procedimientos almacenados. La sintaxis para definir un cursor es la siguiente:

DECLARE
nombre-cursor
FOR
especificacion-consulta
[ORDER BY]

Por ejemplo:

DECLARE
Mi_Cursor
FOR
SELECT num_emp, nombre, puesto, salario
FROM empleados
WHERE num_dept = 'informatica'

Este comando es meramente declarativo, simplemente especifica las filas y columnas que se van a recuperar. La consulta se ejecuta cuando se abre o se activa el cursor. La cláusula [ORDER BY] es opcional y especifica una ordenación para las filas del cursor; si no se especifica, la ordenación de las filas es definida el gestor de SGBD.

Para abrir o activar un cursor se utiliza el comando OPEN del SQL, la sintaxis en la siguiente:

OPEN
nombre-cursor
[USING lista-variables]

Al abrir el cursor se evalúa la consulta que aparece en su definición, utilizando los valores actuales de cualquier parámetro referenciado en la consulta, para producir una colección de filas. El puntero se posiciona delante de la primera fila de datos (registro actual), esta sentencia no recupera ninguna fila.

Una vez abierto el cursos se utiliza la cláusula FETCH para recuperar las filas del cursor, la sintaxis es la siguiente:

FETCH
nombre-cursor
INTO
lista-variables

Lista - variables son las variables que van a contener los datos recuperados de la fila del cursor, en la definición deben ir separadas por comas. En la lista de variables se deben definir tantas variables como columnas tenga la fila a recuperar.

Para cerrar un cursor se utiliza el comando CLOSE, este comando hace desaparecer el puntero sobre el registro actual. La sintaxis es:

CLOSE
nombre-cursor

Por último, y para eliminar el cursor se utiliza el comando DROP CURSOR. Su sintaxis es la siguiente:

DROP CURSOR
nombre-cursor

Ejemplo (sobre SQL-SERVER):

'Abrir un cursor y recorrelo
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM Northwind.dbo.Employees
WHERE LastName like 'B%'
 
OPEN Employee_Cursor
Continúa en la página siguiente

Usuarios que han visto este tema también han visto...

- EXISTS y ALL en SQL
- Funciones de cadena en SQL
- Omitir los Permisos de Ejecución en SQL
- Operadores en la consulta select


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 20-07-2008 a las 19:41:11