|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 064 ![]() |
Bonjour,
Je travaille avec un ERP. Je n'ai pas la source du programme, et il ne peut pas être modifié. => Je ne sais donc pas comment il gère les erreurs, et il m'est impossible d'obtenir l'information ou une modification à ce niveau. Il manque un contrôle lors d'une modification dans la base. La garantie que j'ai, c'est que tous les traitements de l'ERP sont transactionnels, et le fait de planter durant une requête provoquera un rollback de l'intégralité du traitement. Voici mon trigger : Code :
En revanche, depuis l'ERP, aucune erreur n'est levée, et l'instruction passe bien. J'ai donc été obligé de rajouter la variable "bidon" afin de faire une division par 0, et planter pour de bon. Ca marche, l'ERP détecte l'erreur, et aucune mise à jour n'est faite. Sauf que plus crade, tu meurs. Avec SQL Server, je sais que selon les numéros d'erreurs et autres paramètres passés au RAISEERROR, on peut produire différents niveaux d'erreur (du simple message informatif à la destruction immédiate de la connexion). Est-ce qu'avec Oracle, je peux reproduire ça ? Lorsque je fait mon raise_application_error, je souhaite que le programme s'arrête immédiatement, exactement comme lorsqu'on fait une division par 0. |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Essayez avec RAISE tout court :
http://docs.oracle.com/cd/B19306_01/..._statement.htm
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#3 | |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 274 ![]() |
Ou essaie avec d'autres numéros d'erreur, peut être que -20001 (le plus classique) est déjà catché par l'ERP.
La section de gestion des erreurs Citation:
|
|
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : février 2012 Messages : 223 ![]() |
Ou déclare ta propre execption dans ton trigger
Puis tu l'appelles Ce serait étonnant que l'ERP puisse l'intercepter |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com