EXES
EL MODELO RELACIONAL
EL LENGUAJE SQL
FUNCIONES SQL
FUNCIONES DE GRUPO
JOIN
SUBCONSULTAS
D.M.L.
D.D.L.
VISTAS
ENTORNO SQL PLUS
PL/SQL
GENERALIDADES PL/SQL
CURSORES
EXCEPCIONES
FUNCIONES
CRÉDITOS
LA COMPAÑÍA
 
Área de Base de datos
  Manual de Iniciación a Oracle
www.exes.es
Tel: 902 360 417
   Principal
 Exes   Contactar 
Tema 13: Cursores | Manual de Iniciación a Oracle

TEMA 13
CURSORES

PL/SQL
Definición de Cursor

  • Ú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.

PL/SQL
Control de Cursores

  • 1º. Crear un área SQL específica DECLARE
  • 2º. Identificar el juego activo OPEN
  • 3º. Cargar la fila actual en variables FETCH
  • 4º. Si todavía existen filas sin leer, volver a 3º.
  • 5º. Si no existen más filas a leer CLOSE

PL/SQL
Declaración del Cursor

  • Sintaxis:
Sintaxis de declaración del Cursor
  • No incluya la cláusula INTO en la declaración del cursor.
  • Si es necesario procesar filas en algún orden, incluya la cláusula ORDER BY.

PL/SQL
Ejemplo de Declaración

Ejemplo de declaración

PL/SQL
Apertura del Cursor

  • Sintaxis:
Sintaxis de apertura del Cursor
  • Si la consulta no devuelve ninguna fila, no se producirá ninguna excepción al abrir el cursor.
  • Para los cursores declarados con la cláusula FOR UPDATE, la sentencia OPEN bloquea estas filas.

PL/SQL
Recuperación de Datos

  • Sintaxis:
Sintaxis de recuperación de datos
  • Incluya, en el FETCH, el mismo número de variables que las definidas en el cursor, y en el mismo orden.
  • Compruebe si el cursor tiene filas.

PL/SQL
Cierre del Cursor

  • Sintaxis:
Sintaxis de cierre del Cursor
  • Cierre el cursor una vez completado el procesamiento de las filas.
  • Si es necesario, vuelva a abrir el cursor.
  • No intente recuperar los datos de un cursor una vez que ha sido cerrado (INVALID_CURSOR).

PL/SQL
Atributos de Cursores

  • Proporcionan información de estado del cursor:
Atributos de Cursores

PL/SQL
El Atributo %ISOPEN

  • Utilice el atributo de cursor %ISOPEN antes de ejecutar una recuperación para comprobar si el cursor está abierto.
  • Ejemplo:
Ejemplo del atributo %ISOPEN

PL/SQL
Atributos %NOTFOUND, %ROWCOUNT

  • Utilice %ROWCOUNT para recuperar un número exacto de filas.
  • Utilice %NOTFOUND para determinar cuándo salir del bucle de lectura del cursor.
  • Antes de la primera recuperación, %NOTFOUND es NULL, así que si FETCH no se ejecuta nunca satisfactoriamente, no se saldría nunca del bucle de lectura.

PL/SQL
Ejemplo %NOTFOUND, %ROWCOUNT

  • Ejemplo:
Ejemplo de %NOTFOUND, %ROWCOUNT

PL/SQL
Bucles FOR de Cursor

  • Sintaxis:
Sintaxis de bucles FOR de Cursor
  • Apertura, recuperación y cierre implícitos.
  • No declare el registro, está declarado implícitamente.

PL/SQL
Cursores con Parámetros

  • Sintaxis:
Sintaxis de cursores con parámetros
  • Permite abrir un cursor varias veces con un juego activo distinto cada vez.

PL/SQL
Cursores con Parámetros

  • Cada parámetro formal de la declaración del cursor debe tener un parámetro real correspondiente en la sentencia OPEN.
  • La sintaxis de los parámetros es:
Sintaxis de los cursores con parámetros

PL/SQL
Cursores con Parámetros

  • Transfiera el número de departamento y el cargo a la cláusula WHERE:
Ejemplo de cursores con parámetros

PL/SQL
Cláusula FOR UPDATE

  • Sintaxis:
Sintaxis de la cláusula FOR UPDATE
  • El bloqueo explícito le permite denegar el acceso mientras dura una transacción.
  • Bloquee las filas antes de la actualización o supresión.
  • La cláusula FOR UPDATE es la última cláusula de una sentencia SELECT, incluso después del ORDER BY.
  • NOWAIT devuelve un error de Oracle si las filas han sido bloqueadas por otra sesión, de lo contrario se espera.

PL/SQL
Cláusula WHERE CURRENT OF

  • Sintaxis:
Sintaxis de la cláusula WHERE CURRENT OF
  • Incluya la cláusula FOR UPDATE en la definición del cursor para bloquear las filas.
  • Especifique WHERE CURRENT OF en la sentencia UPDATE o DELETE para referirse a la fila actual del cursor.

S.Q.L.
Ejercicios Cursores

Ejercicios
  • Incrementar la comisión, en función del salario, de los empleados de Bostón y Nueva York según su antigüedad y cargo¸según la siguiente tabla:
Ejercicios de cursores
··> Ver todos los cursos
··> Si necesitas más información, contáctanos aquí
 
 
 
Sello de Calidad   Sello de Calidad
  EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es