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 14/02/2008, 10h03   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 22
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 22
Points : 0
Points : 0
Par défaut Problème PL/SQL utilisation de RAISE_APPLICATION_ERROR

Bonjour,

Pouvez-vous m'aider s'il vous plaît ?

Je viens d'écrire ce trigger dont le corps correspond à cela :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
Begin      
IF (ora_login_user <> 'SYS' AND ora_login_user <> 'SYSTEM' AND ora_login_user <> 'DBSNMP' AND ora_login_user <> 'SYSMAN' ) then      
 
IF (ora_dict_obj_type <> 'VIEW' OR ora_sysevent <> 'CREATE') then    
 
RAISE_APPLICATION_ERROR(-20998, 'Opération interdite',false);      
 
end IF;     
end IF;      
End;
Il me semble que c'est un trigger très simple. Pourtant j'ai ce retour :

Code :
1
2
3
4
5
6
7
 
Error: ORA-00604: error occurred at recursive SQL level 1
ORA-20998: Opération interdite.
ORA-06512: at line 6
 
SQLState:  60000
ErrorCode: 604
Ce que je souhaite obtenir c'est juste l'erreur 20998 et pas les deux autres. J'ai regardé de mon côté, on parle souvent de traitement de la pile d'erreur. Mais je n'ai pas encore trouvé de solution.

Merci pour votre aide.

Floxone.
floxone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 21h29   #2
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
En fait, le fait qu'un trigger se termine avec une erreur non traitée est en soi une erreur!

L'utilisation du troisième paramètre de raise_application_error n'est pas de grande utilité dans ce cas ...
__________________
Consultant et formateur Oracle
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2008, 09h06   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 22
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 22
Points : 0
Points : 0
Citation:
Envoyé par Michel SALAIS Voir le message
En fait, le fait qu'un trigger se termine avec une erreur non traitée est en soi une erreur!

L'utilisation du troisième paramètre de raise_application_error n'est pas de grande utilité dans ce cas ...
Bonjour,

Merci de votre aide. Je conserve donc obligatoirement cette encapsulation.

A bientôt,

Floxone.
floxone 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 19h09.


 
 
 
 
Partenaires

Hébergement Web