Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como verificar se o cursor retorna algum registro no oracle?


Não é possível verificar se o cursor retorna registros sem abri-lo.
(veja aqui)
Então você pode ter alguma consulta rápida apenas para ver se há registros (usando count por exemplo),

Ou, você pode fazer assim:
CREATE OR REPLACE PROCEDURE SP_EMPLOYEE_LOOKUP_BY_EMP_ID
(
      IN_USER_ID IN NUMBER, 
      IN_EMPLOYEE_ID NUMBER,
      IN_HC_AS_ON_DATE VARCHAR2,
      emp_cursor OUT SYS_REFCURSOR
) 
IS 

 is_found_rec boolean := false;    

 CURSOR employees IS 
    SELECT  * FROM EMPLOYEE e; 

BEGIN    

 FOR employee IN employees
  LOOP  

    is_found_rec := true;

        // do something  

  END LOOP; 

 if not is_found_rec then 
     // do something else 
 end if;

END;