Maison  >  Article  >  base de données  >  Quelle est l’utilité des transactions dans les procédures stockées Oracle ?

Quelle est l’utilité des transactions dans les procédures stockées Oracle ?

青灯夜游
青灯夜游original
2022-01-25 17:30:191797parcourir

Dans les procédures stockées Oracle, les transactions sont utilisées pour garantir la cohérence des données et consistent en un ensemble d'instructions DML associées. Les opérations effectuées par cet ensemble d'instructions DML sont toutes confirmées ou toutes annulées. Lorsqu'une opération de transaction est effectuée, des verrous sont placés sur les tables et les lignes concernées pour empêcher d'autres utilisateurs de modifier la structure de la table ou d'autres transactions d'effectuer des opérations DML sur les lignes correspondantes.

Quelle est l’utilité des transactions dans les procédures stockées Oracle ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Traitement des transactions de procédure stockée Oracle

1. La transaction est utilisée pour garantir la cohérence des données. Elle consiste en un groupe d'instructions DML associées. Les opérations effectuées par le groupe d'instructions DML sont soit toutes confirmées, soit toutes. annulé.

2. Lors de l'exécution d'une opération de transaction (DML), Oracle verrouillera la table affectée pour empêcher les autres utilisateurs de modifier la structure de la table. Il ajoutera également des verrous de ligne aux lignes affectées pour empêcher d'autres transactions de modifier la structure de la table. Opérations DML sur les lignes correspondantes.

3. Lors de l'exécution d'une validation de transaction ou d'une annulation de transaction, Oracle confirmera les modifications de la transaction ou annulera la transaction, mettra fin à la transaction, supprimera le point de sauvegarde et libérera le verrou.

4. Validez la transaction (COMMIT) pour confirmer les modifications de la transaction, terminez la transaction en cours, supprimez le point de sauvegarde et libérez le verrou, ce qui modifie définitivement toutes les données en attente dans la transaction en cours.

5. Point de sauvegarde (SAVEPOINT) Dans la transaction en cours, marquez le point de sauvegarde de la transaction.

6. La transaction d'annulation (ROLLBACK) annule l'intégralité de la transaction, supprime tous les points de sauvegarde définis par la transaction, libère le verrou et ignore toutes les modifications de données en attente.

7. Restaurez la transaction jusqu'au point de sauvegarde spécifié (ROLLBACK TO SAVEPOINT). Restaurez la transaction en cours jusqu'au point de sauvegarde spécifié, annulez toutes les modifications après la création du point de sauvegarde et relâchez le verrou.

8. Lors de l'exécution d'instructions DDL, DCL ou de la sortie de SQL*PLUS, la transaction sera automatiquement soumise ;

9 L'interaction avec les utilisateurs doit être évitée pendant la transaction ;

10. la transaction ;

11. Rendre la transaction la plus courte possible ;

12. Accédez au plus petit nombre de données possible dans la transaction

Cas :

create or replace procedure stu_proc
(
  v_id in number,
  v_name in varchar2,
  v_age in number,
  v_msg out varchar2
) as
begin
  insert into student(id, sname, age) values (v_id, v_name, v_age);
  commit;
  v_msg:='添加成功';
exception
  when others then
    rollback;
    v_msg:='失败成功';
    RAISE_APPLICATION_ERROR(-20010, 'ERROR:违反唯一索引约束!');
end;

Tutoriel recommandé : "Tutoriel Oracle "

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn