Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3086 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  getWarnings() PLSQL/java - comment recupérer les warnings?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

getWarnings() PLSQL/java - comment recupérer les warnings?

n°1832505
goofy35
Posté le 30-12-2008 à 14:31:52  profilanswer
 

Bonjour,
 
J'ai une fonction pl/sql qui envoi des warnings suivant certain cas.
J'aimerais lorsque je lance cette fonction sur mon programme java récupérer ces warnings.  
Par exemple, j'ai une fonction PL/SQL:
CREATE OR REPLACE FUNCTION f_essai()
  RETURNS void AS
$BODY$
DECLARE  
BEGIN    
  RAISE WARNING '04;KO0;civilite;civilite;';
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;

 
et mon programme java:
 
Class.forName("org.postgresql.Driver" );
    Properties props = new Properties();
    props.setProperty("user", config.getUser());
    props.setProperty("password", config.getPassword());
    connexion = DriverManager.getConnection(config.getUrl(), props);
    connexion.setAutoCommit(false);
    String sql = "{ call  f_essai()}";
    CallableStatement call = connexion.prepareCall(sql);
    call.registerOutParameter(1, java.sql.Types.VARCHAR);
    call.execute();
    SQLWarning warning = call.getWarnings();

 
Mon getWarnings est toujours vide, comment faire ? Est ce que j'ai mal codé?
Je suis bloqué :(
 
D'avance merci
 
PS: je travaille sous postgresql, mais je ne pense pas que ça change quoi que ce soit pour récupérer en java les warnings pl/sql


Message édité par goofy35 le 30-12-2008 à 14:37:00
mood
Publicité
Posté le 30-12-2008 à 14:31:52  profilanswer
 

n°1832528
goofy35
Posté le 30-12-2008 à 15:18:07  profilanswer
 

En fait, pour préciser, j'ai plusieurs messages que j'aimerais renvoyer à mon programme java, j'ai pensé à remplir une variable varchar et faire un return, mais je ne connais pas la taille exact de la variable car elle peut faire 5 caractéres ou 10000caractéres suivant les cas .
Exemple de cas dans ma fonction PL/SQL:
if resultat_demande!='OK' and resultat_demande!='NOK' then
   RAISE WARNING 'La valeur de resultat demandée pour cette demande n est pas valide. (ID=%)', t_demande.id;
   CONTINUE;
  end if;

 
Donc si quelqu'un a une soluce autres que des warnings je suis preneur.
Genre je retourne une liste, mais je sais pas si ça existe les liste en PL


Message édité par goofy35 le 30-12-2008 à 15:19:11
n°1832668
casimimir
Posté le 30-12-2008 à 19:58:10  profilanswer
 

une des soluces que je ferai:
 
1) ne pas coder les textes de tes warnings directement dans le code mais dans une table, meilleur pour la maintenance, et plus pratique si jamais tu devais faire du multilanguage.
je verrais plus une table warningblabla ou tu as un code warning et son explication.
 
2) je remballerai le/les codes warnings dans un varchar2 séparé par quelque chose dans une variable OUT de ta procédure stockée, et je le traiterai en java via un stringtokenizer, et aller rechoper le texte du warning ou le loader a l'init de ton appli.
 
ps: si jamais tu trouves un truc pour renvoyer une collection/array ce que tu veux je suis preneur :)

n°1832867
goofy35
Posté le 31-12-2008 à 14:47:21  profilanswer
 

Hey, merci, justement j'ai opté pour la solution 1, stockage dans la base.
 
Mais par contre non je n'ai rien trouvé pour un retour en collection/array, pour le moment


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  getWarnings() PLSQL/java - comment recupérer les warnings?

 

Sujets relatifs
débutant javaAppel a un script depuis c# puis recuperer une var
foreach en java[Résolu] [VB.NET] Récupérer le code de sortie d'un service Windows
Récupérer texte Textbox dynamique en VBA[c++] Récupérer une mac adresse (error au link)
tscroll javaProblème transfo XSL avec API Java 1.5 + SAX + XML avec namespace
Thread JAVARécupérer données UTF8
Plus de sujets relatifs à : getWarnings() PLSQL/java - comment recupérer les warnings?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR