L3 Info : SGBD
 
◃  Ch. 11 Oracle PL/SQL  ▹
 

Mise à jour des données avec un curseur

  • La clause CURRENT-OF permet d'accéder directement en écriture à la ligne en cours de lecture
  • La déclaration du curseur doit être associé à la pose d'un verrou d'intention (FOR UPDATE OF)
  • Exemple :
    DECLARE
       CURSOR cursLivre 
       IS SELECT liv_num, liv_titre FROM livre ORDER BY liv_num
       FOR UPDATE OF liv_num;
    BEGIN
       FOR monLivre IN cursLivre LOOP 
         UPDATE livre SET liv_num = liv_num+200
         WHERE CURRENT OF cursLivre;
       END LOOP;
       COMMIT; -- valide les modifications et lève le verrou
    END;