Curseur inopiné
La clause facultative AS CURSOR crée un curseur nommé qui peut être référencé (en utilisant la clause WHERE CURRENT OF) dans l’instruction composée qui suit la clause DO afin de supprimer ou de modifier la ligne courante.
Il est permis d’utiliser le nom du curseur comme une variable de type enregistrement (similaire à OLD et NEW dans les triggers) qui permet d’accéder aux colonnes du jeu résultant (i.e. cursor_name . columnname). L’utilisation de la clause AS CURSOR rend la clause INTO facultative.
-
Pour résoudre l’ambiguïté lors de l’accès à une variable curseur, un préfixe deux-points est requis avant le nom du curseur ;
-
La variable curseur peut être accédée sans le préfixe deux-points, mais dans ce cas, selon la portée des contextes existants dans la requête, le nom peut être résolu comme un contexte de requête au lieu du curseur ;
-
Les variables du curseur sont en lecture seule ;
-
Dans une instruction
FOR SELECTsans la clauseAS CURSOR, la clauseINTOdoit être utilisée. Si la clauseAS CURSORest spécifiée, la clauseINTOn’est pas requise mais autorisée ; -
La lecture d’une variable curseur renvoie les valeurs actuelles des champs. Cela signifie que l’Instruction
UPDATE(avec la clauseWHERE CURRENT OF) mettra également à jour les valeurs des champs dans la variable curseur pour les lectures suivantes. L’exécution de l’instructionDELETE(avec la suggestionWHERE CURRENT OF) mettra NULL pour les valeurs des champs de la variable curseur pour les lectures suivantes.
|
Note
|
|