Comment vérifier si le curseur retourne tous les enregistrements dans oracle?
J'ai une procédure stockée suivante dans laquelle j'ai utilisé un curseur. Selon que le curseur de retour des dossiers ou pas j'ai besoin de faire un peu de traitement.
Mais je ne suis pas sûr de la façon de vérifier si le curseur renvoie tous les enregistrements.
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
CURSOR employees IS
SELECT * FROM EMPLOYEE e;
BEGIN
if(record exist ) then
FOR employee IN employees
LOOP
// do something
END LOOP;
else if employees is empty then
// do something else
END;
OriginalL'auteur ashishjmeshram | 2012-05-30
Vous devez vous connecter pour publier un commentaire.
Il n'est pas possible de vérifier si le curseur retourne des enregistrements sans l'ouvrir.
(voir ici)
Ainsi, vous pouvez avoir quelques requêtes rapide juste pour voir si il y a des disques (à l'aide de compter par exemple),
Ou, vous pouvez le faire comme ceci:
OriginalL'auteur A.B.Cade
Je pense qu'il est possible qu'avec
FETCH
. Essayez d'utiliserMais si quelqu'un connais un autre moyen afin de me corriger.
FETCH
, ils sont inutiles. Les attributs de curseur a expliqué: docs.oracle.com/cd/E11882_01/appdev.112/e25519/...OriginalL'auteur Simon Dorociak
J'aime cette façon:
De sortie lorsque le curseur est 1=1 (non vide):
De sortie lorsque le curseur est 1=0 (vide):
OriginalL'auteur guritaburongo