Salut à tous,
Je travail actuellement sur un projet en PL/SQL.
J'ai crée une procédure en PL/SQL sous oracle qui m'affiche des informations grâce à la fonction DBMS_OUTPUT.PUT_LINE(...)
Ensuite j'ai interfacé le tout avec un logiciel en java (JDBC) Jusque là il n'y a pas de problème.
Ce que je n'arrive pas à faire c'est que, lorsque je fais appelle dans mon programme JAVA à une procédure PL/SQL par l'intermédire d'un CallableStatement, je n'arrive pas à récupérer les affichages produit par ma procédure PL/SQL sur la console de mon programme JAVA.
Ya t-il une méthode pour les récuperer qque part ? (ou bien qque chose qui permet de rediriger la sortie standard de Oracle vers l'entree standard du programme Java ?)
Merci d'avance !!
Jon301
Publicité
Posté le 08-03-2005 à 19:03:28
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-03-2005 à 19:35:23
Pourquoi tu mets pas tes affichages dans une string, que tu retourne ensuite en parapètre output de ta procédure ?
Ca me semble plus propre, et ça au moins, ça marchera dans tous les cas, quelque soit le SGBD et le langague utilisé (ça commence par la la portabilité, la plateforme n'en est qu'un élément)
Message édité par Arjuna le 08-03-2005 à 19:35:31
jon301
Posté le 08-03-2005 à 19:52:48
en fait mes affichages sont effectués dans une boucle (avec un curseur)
cela voudrai dire que je concatènerais les chaines des affichages à chaque bouclage, dans une et unique variable ?
je suis débutant en PL/SQL donc je connai pas les meilleures techniques, mais je vais quand meme tenter ta solution
merci !
Jon301
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-03-2005 à 20:08:55
Tu peux faire ça, ou créer une table temporaire, et insérer les lignes dedans. Ensuite, tu retournes le résultat d'un select dans cette table, c'est pas mal non plus, comme ça t'as en plus la possibilité de filtrer les messages (en ajoutant une colonne type, pour indiquer si c'est une info, un warning ou une erreur par exemple )
jon301
Posté le 08-03-2005 à 20:18:04
merci beaucoup pour ton aide Arjuna A bientot !!
jon301
Posté le 08-03-2005 à 23:27:25
Me revoila (avec une question de débutant )
J'ai donc essayé la concaténation de chaine et ça a l'air de fonctionner.
Seulement, ca concatène tout a la suite et je n'arrive pas a inclure de saut de ligne dans la chaine.. l'affichage n'est pas formaté et le \n ne marche pas tu n'aurais pas une idée ?
Arjuna
Aircraft Ident.: F-MBSD
Posté le 09-03-2005 à 10:11:35
C'est goret mais ça marche : (bon, c'est la syntaxe SQL Server, avec Oracle, je sais plus comment on préfixe les variables)
Code :
Set @maVar = @maVar + '
et hop, j''ai sauté une ligne :)';
Y'a peut-être plus propre, mais ça ça marche bien
jon301
Posté le 09-03-2005 à 20:08:33
ouais ca marche !! merci bcp ! hmm sinon.. vu que t'as l'air de bcp t'y connaitre j'ai une question a te poser sur la configuration de Oracle, car j'essaye de faire fonctionner JDBC et ca marche pas
donc j'ai installé la version 9i, j'ai réussi a importer ma base de données etc, jusque la ya pas de problème.
puis j'ai lu que pour l'interfacer avec JDBC il faut configurer un listener.
donc c'est ce que j'ai essayé de faire : dans net configuration assistant j'ajoute un module d'écoute, protocole TCP, port par defaut 1521, et une fois la config terminée et que le listener veut se lancer ca fait carrément planter oracle...
je vois pas ce qui cloche mais bon, a ce qu'il parait oracle est assez chiant a configurer...
sinon j'ai aussi vu qu'on pouvait configurer les listeners directement dans des fichiers .ora ................
ptêt que je m'y prend mal, bref j'aimerai avoir qques indices si tu peux
encore merci !
Arjuna
Aircraft Ident.: F-MBSD
Posté le 09-03-2005 à 20:56:46
alors là, je n'ai aucune idée. si t'as des problèmes de requêtes ou PS, je suis présent, par contre, pour l'administration Oracle, j'en touche pas une bille
désolé
jon301
Posté le 09-03-2005 à 21:14:36
ya aucun souci en tout cas chui content tes réponses m'ont été super utiles !! surtout que jdois rendre ce projet ce vendredi... -_- c pas encore gagné mais bon, j'ai maintenant un programme qui tourne c ça l'essentiel !