Maison > base de données > Oracle > le corps du texte

Y a-t-il une restauration dans Oracle ?

WBOY
Libérer: 2022-06-08 17:10:35
original
4191 Les gens l'ont consulté

Il existe une restauration dans Oracle. La restauration est utilisée pour annuler la transaction en cours ou la transaction problématique. La méthode de restauration peut être utilisée pour terminer la restauration de la transaction. La syntaxe est "ROLLBACK [Mot clé implicite] [TO [SAVEPOINT] savepoint_name | FORCE 'chaîne'};".

Y a-t-il une restauration dans Oracle ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, Oracle version 12c, ordinateur Dell G3.

Y a-t-il un rollback dans Oracle ?

1. Concept

Dans Oracle, l'utilisation du rollback est opposée au commit, qui est utilisé pour annuler la transaction en cours ou la transaction problématique.

1.1 Syntaxe

ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name | FORCE 'string'};
Copier après la connexion

Exemple :

  • work - Facultatif. Les mots-clés implicites peuvent être écrits ou non.

  • to savepoint savepoint_name - Facultatif. L'instruction rollback annule toutes les modifications de la session en cours jusqu'au point de sauvegarde spécifié par savepoint_name. Si cette clause est omise, toutes les modifications seront annulées.

  • forcer 'string - facultatif'. Utilisé pour forcer l'annulation de transactions potentiellement corrompues ou problématiques. À l'aide de cette clause, vous pouvez spécifier l'ID de transaction entre guillemets simples sous forme de chaîne. L'identifiant de transaction nommé dba_2pc_pengding, v$corrupt_xid_list peut être trouvé dans la vue système (la transaction problématique ne peut pas être annulée jusqu'au point de sauvegarde.)

1.1 Préparation des données

DROP TABLE stu; -- if exists
CREATE TABLE stu (
  s_id NUMBER,
  s_xm VARCHAR2(30)
);
ALTER TABLE stu ADD CONSTRAINTS pk_stu_id PRIMARY KEY(s_id);
Copier après la connexion

2. Point de sauvegarde

rollback Aller à les résultats de l'opération pointsql

DECLARE
   
BEGIN
   INSERT INTO stu(s_id, s_xm) VALUES(1, '小游子');
   SAVEPOINT ps1;
   
   INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子');
   SAVEPOINT ps2; -- 若也是 ps1,则回滚至此处(最近)
   
   INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子');
   
   COMMIT;
EXCEPTION 
  WHEN OTHERS THEN
     ROLLBACK TO ps1;
     dbms_output.put_line(SQLCODE ||' : '||SQLERRM);
     dbms_output.put_line(dbms_utility.format_error_backtrace);
END;
Copier après la connexion

les plus proches :

Y a-t-il une restauration dans Oracle ?

Tutoriel recommandé : "Tutoriel vidéo 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal