|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 9 ![]() |
Sur AIX/Oracle 9.2, j'ai réussi à utiliser les procédures externes avec PL/SQL. J'ai notamment suivi cette démarche (http://www.idevelopment.info/data/Or.../PLSQL_1.shtml), en utilisant une librairie externe (.so)
Je suis également parvenu à utiliser un trigger sur une table afin de lancer une procédure à chaque insertion dans cette table (avec sqlplus). Cependant lorsque l'on fait une insertion à partir d'une application J2EE, il y a systématiquement une erreur et la procédure n'est pas lancée. Est-ce que ma requête est impossible du point de vue de l'architecture général ou y'a-t-il un moyen de faire ce que je désire ? |
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 533 ![]() |
Citation:
Le trigger ne se déclenche pas (et donc la procédure non plus) car vous avez un erreur dans votre insertion. Corrigez d'abord cette erreur d'insertion dans votre code Java.
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 9 ![]() |
L'insertion marche parfaitement :
- quand on supprime le trigger, l'insertion est réalisée avec l'application J2EE - quand on ajoute un trigger qui fait simplement une insertion dans une autre table, cela marche (toujours avec le J2EE) - quand on ajoute un trigger qui lance une procédure externe, cela marche avec une insertion manuelle (sqlplus), mais pas avec l'application J2EE |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Philippe CHIRCOPChef de projet Inscription : juin 2007 Messages : 1 109 ![]() |
Citation:
![]() Sérieusement, peut-être qu'un petit message d'erreur aiderait, non ?
__________________
Garuda गरूड Brahmâ la Guerre et Vishnu la Paix Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010 |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 9 ![]() |
Voici les erreurs données par Oracle (je vais m'abstenir de donner la pile d'erreur java, surtout que comme je l'ai précisé l'insertion fonctionne dans une table sans trigger) :
ORA-06512: a "OPS$USER720.SHELL", ligne 0 ORA-06512: a "OPS$USER720.MY_TRIGGER", ligne 1 ORA-04088: erreur lors d'execution du declencheur 'OPS$USER720.MY_TRIGGER' |
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 178 ![]() |
Citation:
Y-a-t-il plus dans le fichier alert_SID.log ? (accessible par le DBA si vous en avez un rbaraer |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 9 ![]() |
Je suis dans une entreprise
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 9 ![]() |
Bonjour,
Je n'ai toujours pas de nouvelles du listing de logs DBA. Cependant, je tiens à préciser que j'avais oublier une ligne dans les erreurs oracle : ORA-03001: cette option n'est pas prise en charge ORA-06512: a "OPS$USER720.SHELL", ligne 0 ORA-06512: a "OPS$USER720.MY_TRIGGER", ligne 1 ORA-04088: erreur lors d'execution du declencheur 'OPS$USER720.MY_TRIGGER' Voilà je ne sais pas si cette ORA-03001 apporte quelque chose en plus, je n'ai rien trouvé de précis sur google. Je pense que le problème vient de la librairie externe (.so) qui est utilisée. Car jai constaté que les triggers avec des procédures simples fonctionnaient avec l'application J2EE. Pourtant, cette librairie est accessible en lecture et exécution CHMOD (ainsi que ses répertoires parents). Et le fichier "listener.ora" est configuré de telle façon à autoriser les librairies qui ne sont pas dans $ORACLE_HOME/lib : http://www.idevelopment.info/data/Or...PLSQL_17.shtml |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com