2009-09-02 8 views
0

Quelqu'un peut-il s'il vous plaît dites-moi quelle est l'utilisation de l'opérateur% NOTFOUND?Besoin de% NOTFOUND dans le curseur

Nous pouvons également utiliser "NOT% FOUND" dans le curseur. Il va effectuer la même fonctionnalité.

Répondre

1

Parfois, il y a juste plusieurs façons de faire quelque chose. La plupart des développeurs ont tendance à utiliser %NOTFOUND (au moins dans mon expérience).

Modifier

Je ne sais pas pourquoi les devisers de la langue PL/SQL nous ont donné %NOTFOUND. Je vais essayer de me souvenir de demander à Bryn Llewellyn la prochaine fois que je le verrai. Mais je suppose qu'ils ont juste pensé que cela serait utile. Dans le codage, comme dans d'autres formes d'écriture, nous devrions toujours essayer de nous exprimer positivement, car la positivité exprime plus clairement notre intention. C'est,

exit when c1%notfound; 

est plus claire alors

exit when not c1%found; 

Mais il est peut-être juste une question de goût.

Cependant, la situation avec %ISOPEN est beaucoup plus facile de répondre. Nous n'avons aucune utilité pour un opérateur %ISNOTOPEN. Il y a deux fois où nous voudrions utiliser %ISOPEN. La première est avant que nous ouvrions un curseur quand il y a une possibilité que le curseur soit déjà ouvert (ceci devrait être une circonstance très rare). L'autre est quand nous pouvons avoir besoin de fermer un curseur ouvert, disons dans un bloc EXCEPTIONS. Dans les deux cas, nous sommes intéressés à savoir que le curseur est ouvert. Il n'y a aucune valeur à tester si le curseur n'est PAS OUVERT.

+0

Merci pour vos années. Cependant, pourquoi est-ce seulement pour% FOUND et non pour% ISOPEN? Je veux savoir s'il y a une autre raison derrière cela –

1

PL/SQL, comme des langues apparentées Ada et SQL, tend à favoriser une structure un peu l'anglais comme (par exemple, saviez-vous que la commande COMMIT a un paramètre « travail » en option, ce qui ne fait absolument rien?)

Etre capable de lire le code à voix haute d'une manière naturelle n'est pas une mauvaise fonctionnalité - dire "Quitter quand le curseur c1 n'est pas trouvé" sonne un peu plus naturellement que "Quitter quand le curseur n'est pas trouvé" ...

+0

Très intéressant sur le paramètre "WORK". J'ai trouvé la structure de type anglais très utile lors de l'examen du code avec des types Business Analysis qui ne fonctionnent pas avec du code toute la journée. – caddis

Questions connexes