Cursores PL/SQL

Definición

Un cursor es el nombre para un área memoria privada que contiene información procedente de la ejecución de una sentencia SELECT. Cada cursor tiene unos atributos que nos devuelven información útil sobre el estado del cursor en la ejecución de la sentencia SQL. Cuando un cursor está abierto y los datos referenciados por la consulta SELECT cambian, estos cambios no son recogidos por el cursor.

PL/SQL crea implícitamente un cursor para todas las sentencias SQL de manipulación de datos sobre un conjunto de filas, incluyendo aquellas que solo devuelven una sola fila.

En PL/SQL no se pueden utilizar sentencias SELECT de sintaxis básica ( SELECT <lista> FROM <tabla> ). PL/SQL utiliza cursores para gestionar las instrucciones SELECT. Un cursor es un conjunto de registros devuelto por una instrucción SQL.

Ventajas

  • Útiles para las consultas que devuelven más de una fila.
  • Son declarados y nombrados por el programador, y manipulados por medio de sentencias específicas en las acciones ejecutables del bloque.

Declaración de un cursor

Se declara el cursor con la etiqueta DECLARE seguido de la palabra clave IS, luego va la sentencia SELECT que es lo que se guardara en el cursor.

Apertura, recuperación de datos y cierre de un cursor

Explicación

Como se dio a entender un cursor sirve para recuperar datos de una base de datos, su uso es casi similar al de la sentencia SELECT.

Antes de acceder a los datos recuperados en un cursor es necesario abrir el cursor de no ser asi el cursor producira un excepcion y no contendra datos.

Para acceder a los datos de un cursor es necesario crear un espacio de memoria donde se guardaran los datos del cursor:

Y para acceder a sus datos:

Cabe señalar que la apertura del cursor así como cualquier operación con los datos, se tiene que hacer dentro del bloque de código "BEGIN ... END;"

Cerrar el cursor es algo importante de hacer ya que haciendo esto se libera la memoria ocupada en el cursor y en caso de excepciones cerrar el cursor puede salvar la integridad de nuestro sistema en el que se esta ejecutando ORACLE.

Ficha bibliográfica