Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment vérifier si le curseur renvoie des enregistrements dans Oracle ?

Il n'est pas possible de vérifier si le curseur renvoie des enregistrements sans l'ouvrir.
(voir ici)
Vous pouvez donc soit avoir une requête rapide juste pour voir s'il y a des enregistrements (en utilisant count par exemple),

Ou, vous pouvez le faire comme ceci :

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;