Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/05/2015, 10:39
eduar2083
 
Fecha de Ingreso: octubre-2014
Ubicación: Lima
Mensajes: 74
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Cómo determinar si un cursor tiene registros?

Cita:
Iniciado por jc3000 Ver Mensaje
un cursor solo se abre si tiene algo que devolver
Agradezco tu repuesta, pero si ejecutas el siguiente bloque anónimo (con un user DBA) observarás en la salida que el cursor se abre a pesar que no tiene registros, por tanto, comprobar si está abierto o no, no me funciona.
Código SQL:
Ver original
  1. DECLARE
  2.    vCursor sys_refcursor;
  3. BEGIN
  4.    OPEN vCursor FOR
  5.    SELECT * FROM sys.all_objects a
  6.    WHERE a.owner = 'OWNER_NO_EXISTENTE';
  7.    
  8.    IF vCursor%isopen THEN
  9.       dbms_output.put_line('El cursor está abierto, se procede a cerrarlo.');
  10.       close vCursor;
  11.    ELSE
  12.       dbms_output.put_line('El cursor NO está abierto.');
  13.    END IF;
  14. exception
  15.    WHEN others THEN
  16.       dbms_output.put_line(sqlerrm);
  17. END;

Saludos.