|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() |
Bonjour,
J'ai un soucis avec la gestion des erreurs. Lors de l'exécution de mon PLSQL j'ai les erreurs suivantes : Citation:
LE CODE : Code :
Et j'ai les message "système" sans les dbms dans la log. Merci d'avance pour votre aide. |
|||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 313 ![]() |
On peut voir un exemple très simplifié mais complet de ce que vous faite: déclarations des variable, traitement, exceptions…
|
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() |
Bonjour et merci d'essayer de m'aideR.
Voici le code très simplifié. J'ai bien l'impression que le problème vient du fait que l'erreur se produit sur la partie déclaration de variable et que du coup, la gestion des erreurs n’étant pas encore initialisée, le PL renvoie une erreur brut de pomme. En fait l'erreur est générée sur le curseur tapant sur la base distante (db_link). Y a-t-il un moyen de contourner ? y a-t-il une gestion spéciale ? Un grand merci d'avance pour l'aide ! Code :
|
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 313 ![]() |
Oui c’est ça : les exceptions qui sont levées dans les déclarations d’un block PL/SQL se propagent toute suite au block ou l’environnement appelant et ne peuvent pas être interceptées par la section de traitement des exceptions du ce même block. Par contre un block appelant pourrait les intercepter.
|
|
|
10
|
|
|
#5 |
|
Invité de passage
![]() |
Vous pouvez developper un peu ou par un exemple si possible ...
Merci d'avance. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Arnaud Inscription : octobre 2002 Messages : 56 ![]() |
Bonsoir,
Si j'ai bien compris ce que veut dire mnitu: L'exception est levée dans la partie DECLARE de ton bloc. Le problème et que la gestion des exceptions ne gère que les exceptions levées entre le BEGIN et le END du bloc correspondant. Par contre, si tu encapsulais cela dans un autre bloc, alors tu pourrais récupérer l'exception. Par exemple, créer une procédure P1, qui gère la fameuse exception, et qui appelle une procédure P2 qui exécute ton code.
__________________
Tuning and optimization are not a fix to a bad design. A good design is a fix to a bad design. |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 313 ![]() |
Oui, c'est ça
Code :
|
||
|
|
10
|
|
|
#8 |
|
Invité de passage
![]() |
Super merci !!
Je savais pas que j'avais le droit de faire ca !!! C'est une super astuce qui va résoudre mon problème !!! Encore merci Bonne journée Annie |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() |
Malheureusement,
Après modification du script, j'ai toujours le même problème comme si les 3 erreurs que j'essai de détecter était hors du champ du PRAGMA UNIT !! Je sèche !!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com