Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 21/02/2011, 18h26   #1
Invité régulier
 
Inscription : octobre 2003
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 22
Points : 8
Points : 8
Par défaut Trigger et raise_application_error

Bonjour,

Je ne connais pas encore toutes les ficelles d'Oracle...

J'ai un problème dans un trigger (before insert or update) avec l'instruction raise_application_error.

J'aimerai effectuer un certain nombre d'opérations SQL (notamment des insert) avant de lever une erreur et sortir du bloc.
Le problème c'est qu'en utilisant raise_application_error, toutes les opérations effectuées avant (qui doivent absolument être faites) sont annulées.

L'autre problème c'est que si je ne lève pas l'erreur, l'instruction update ou insert va s'exécuter, ce que je ne veux pas.

Comment faire pour intercepter l'erreur tout en garantissant l'exécution des opérations ?

Merci d'avance pour votre aide!
Hotchotte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 09h25   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Postez un example de ce que vous faite.
Probablement que vous avez besoin d'utiliser une transaction autonome pour vos inserts qui doivent persiter après l'anomalie.
mnitu 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 13h04.


 
 
 
 
Partenaires

Hébergement Web