Oracle
 sql >> Database >  >> RDS >> Oracle

Come verificare se il cursore restituisce dei record in Oracle?

Non è possibile controllare se il cursore restituisce i record senza aprirlo.
(vedi qui)
Quindi puoi avere una query veloce solo per vedere se ci sono record (usando il conteggio per esempio),

Oppure puoi farlo in questo modo:

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;