IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Rollback d'une suite d'instruction en cas d'erreur sans PL/SQL


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Rollback d'une suite d'instruction en cas d'erreur sans PL/SQL
    Bonjour,

    Avant tout je m'excuse si ma question a déjà réponse sur google ou ce forum, j'air cherché un petit moment sur ce sujet mais les résultats renvoyés sont malheureusement pollués par les sujets concernant les exceptions PL/SQL et les rollback segment.

    Je me demandait s'il était possible de rollback une succession d'instruction SQL dans le cas ou l'une d'elle échoue SANS utiliser de pl/sql (WHEN OTHERS THEN rollback . Je suis en auto-commit off et je voudrais commit dans le cas ou tout se passe bien

    Exemple:
    delete from table where id = 1; -- OK
    delete from table where id = 2; -- Violation contrainte
    delete from table where id = 3; -- OK
    commit;

    dans cet exemple même si la seconde ligne échoue les deux autres sont bien validées.

    Y-a-il une solution ?

    Par avance merci.

  2. #2
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    avant de passer les instructions sql, l'instruction "whenever sqlerror exit rollback" peut être utilisée (par exemple).

    La doc sur whenever sqlerror

    Les instructions de delete peuvent aussi être positionnées dans un block PL qui gèrera les erreurs.

    Un exemple didactique

Discussions similaires

  1. [Débutant] Stopper une suite d'instruction
    Par labib23dz dans le forum C#
    Réponses: 2
    Dernier message: 03/07/2012, 11h59
  2. [DOS] suite d'instructions en dos dans une condition if
    Par hbendali dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 06/03/2006, 16h45
  3. [VB6]Fermer une page de propriétés en cas d'erreur
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 03/01/2006, 11h31
  4. [Système] Suite d'instructions non interrompue
    Par hyperion dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 19/07/2004, 11h24
  5. ROLLBACK sur une seul enregistrement
    Par toctoc80 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/04/2004, 20h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo