Cursores
Un cursor se utiliza en un programa de aplicación para seleccionar un conjunto de filas y, a continuación, procesar los datos devueltos una fila a la vez. Cuando una sentencia SELECT en una aplicación de SQL incorporado devuelve varias filas de datos, necesita un mecanismo que haga que estos datos devueltos o conjunto de resultados estén disponibles para el programa de aplicación, una fila tras otra.
Un cursor es como un nombre que está asociado con una consulta. Se crea un cursor utilizando la sentencia DECLARE CURSOR que define el nombre del cursor y especifica su consulta asociada. Tres sentencias SQL adicionales operan en cursores.
- OPEN
- Realiza la consulta que crea el conjunto de resultados y prepara el cursor para la recuperación de la primera fila.
- FETCH
- Recupera una fila del conjunto de resultados y asigna los valores de esa fila a las variables de destino. Las captaciones se suelen ejecutar repetidamente hasta que se han recuperado todas las filas del conjunto de resultados.
- CLOSE
- Termina el cursor y libera los recursos que estaba utilizando. Si es necesario de nuevo, se puede volver a abrir el cursor.
Puede declarar cursores como retenidos o no retenidos, retornables o no retornables y desplazables o no desplazables.
- posibilidad de mantenimiento
- Un cursor retenido no se cierra después de una operación de confirmación. Un cursor no retenido se cierra después de una operación de confirmación.
- posibilidad de retorno
- Un cursor retornable devuelve el conjunto de resultados al llamante del procedimiento o aplicación cliente.
- capacidad de desplazamiento
- Un cursor no desplazable se mueve secuencialmente hacia adelante a través de un conjunto de resultados y sólo se puede acceder a cada fila una vez. Un cursor desplazable se puede mover aleatoriamente a través del conjunto de resultados utilizando la sentencia FETCH. Tenga en cuenta que los cursores desplazables solo están soportados en las aplicaciones CLI, JDBCy SQLJ.