Atributos de cursor (PL/SQL)

Cada cursor tiene un conjunto de atributos que permiten a un programa de aplicación probar el estado del cursor.

Estos atributos son %ISOPEN, %FOUND, %NOTFOUND y %ROWCOUNT.
%ESOPEN
Este atributo se utiliza para determinar si un cursor está en estado abierto. Cuando se pasa un cursor como parámetro a una función o procedimiento, es útil saber (antes de intentar abrir el cursor) si el cursor ya está abierto.
%ENCONTRADO
Este atributo se utiliza para determinar si un cursor contiene filas después de la ejecución de una sentencia FETCH. Si la ejecución de la sentencia FETCH ha sido satisfactoria, el atributo %FOUND tiene un valor de true. Si la ejecución de la sentencia FETCH no ha sido satisfactoria, el atributo %FOUND tiene un valor de false. El resultado se desconoce si:
  • El valor de nombre-variable-cursor es nulo
  • El cursor subyacente de nombre-variable-cursor no está abierto
  • El atributo %FOUND se evalúa antes de que se ejecutara la primera sentencia FETCH contra el cursor subyacente
  • La ejecución de la sentencia FETCH devuelve un error

El atributo %FOUND proporciona una alternativa eficaz a la utilización de un manejador de condiciones que comprueba el error que se devuelve cuando no quedan más filas por captar.

%NOENCONTRADO
Este atributo es el opuesto lógico del atributo %FOUND.
%ROWCOUNT
Este atributo se utiliza para determinar el número de filas que se han captado desde que se abrió un cursor.

La Tabla 1 resume los valores de atributo asociados a determinados sucesos de cursor.

Tabla 1. Resumen de valores de atributo de cursor
atributo Cursor %ESOPEN %ENCONTRADO %NOENCONTRADO %ROWCOUNT
Antes de OPEN No No definido No definido Excepción El cursor no está abierto
Después de OPEN y antes de 1st FETCH No definido No definido 0
Después de 1st FETCH satisfactorio No 1
Después de nº FETCH satisfactorio (última fila) No n
Después de n+ 1er FETCH (después de la última fila) No n
Después de CLOSE No No definido No definido Excepción El cursor no está abierto