Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2011, 09h27   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 14
Points : 13
Points : 13
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.
Espadrilles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 09h39   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
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
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h49.


 
 
 
 
Partenaires

Hébergement Web