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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PL/SQL] Postgres et JDBC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PL/SQL] Postgres et JDBC

n°1260817
bolomatic
Posté le 07-12-2005 à 11:46:57  profilanswer
 

Bonjour,
 
j'ai un petit soucis.
J'utilise pour la première fois des appels à une procédure stockée de PostgreSQL.
 
Celle-ci retourne un résultat de type Custom; ce dernier étant défini dans PostgreSQL.
 
 
Ma question : Comment je fais pour récupérer les données de retour ???
 
 
 

Code :
  1. CREATE OR REPLACE FUNCTION GET_CONFIG()
  2. RETURNS return_config AS
  3. $BODY$
  4. DECLARE
  5. Res return_config;
  6. BEGIN
  7. Res.RETURN_VALUE = 0;
  8. return  Res;
  9. END;
  10. $BODY$
  11.   LANGUAGE 'plpgsql' VOLATILE;
  12. /**********************************************/
  13. CREATE TYPE return_config AS
  14.    (p_server_port int4,
  15.     p_automatic int4,
  16.     return_value int4);
  17. /************************************************/
  18. // Procedure call.
  19. CallableStatement proc = conn.prepareCall("{ ? = call get_config() }" );
  20. proc.registerOutParameter(1, Types.OTHER);
  21. proc.execute();
  22. ResultSet rset = (ResultSet) proc.getObject(1);


 
 
Le morceau de code JAVA ne me permet pas de récupérer les données.
J'ai une exception ClassCast (normal après tout). Mais je ne sais pas comment récupérer les données...
 
Dois-je implémenter une classe de donnée implémentant SQLData, correspondant à Type de retour PostgreSQL ?
 
 
 
 
Merci pour votre aide.


Message édité par bolomatic le 07-12-2005 à 11:52:58
mood
Publicité
Posté le 07-12-2005 à 11:46:57  profilanswer
 

n°1261259
moi23372
Posté le 07-12-2005 à 19:32:15  profilanswer
 

les procédures stockées et JDBC c'est vraiment pas top! j'ai pu y touché il y a quelques temps, et dés qu'on veut retourner qqch, ça fais chier si ce type n'est pas normaliser :(
 
tu n'as pas trouvé un exemple pour Postgre?
 
juste pour infos, le PL/SQL est un language propriétaire d'oracle... je ne sais pas comment ils l'ont appelé chez PostGre

n°1261265
bolomatic
Posté le 07-12-2005 à 21:02:58  profilanswer
 

Il l'ont appelé plpgsql je crois.
 
Sinon, la solution que j'ai trouvé pour les valeurs de retour c'est de récupérer l'objet et le caster en <PGobject>. De là, je fais une méthode qui "split" le string retourné par la méthode getValue().
 
Heureusement, je n'ai besoin de récupérer que des entiers, donc un petit ParseInt et c'est réglé.
 
 
Bon, c'est bricolage mais bon, j'ai rien trouvé du tout pour l'utilisation des types personnalisés.
 
J'avais une piste avec SQLData, qui permet de définir des types personnalisés pour JDBC, mais je ne sais pas si je les utilise bien; en tout cas, je ne peux pas caster les objets retournés, avec une classe implémentant SQLData.
 
Voilou !


---------------
Feedback (avant 2011)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PL/SQL] Postgres et JDBC

 

Sujets relatifs
Date antérieure à 01/01/1970 avec PHP/SQLDébutant, question sur syntaxe requete SQL
[PL/SQL] Stockage d'un selectSQL Access/Oracle
Standalone pour aller chercher des infos dans une base SQL[PL/SQL] Curseur et boucles FOR imbriquées [Résolu]
[PL/SQL] curseur[SQL] créer une vue avec une procedure stockée ?
différence entre SQL server 7 et sql server 2000Easyphp et MS SQL SERVER
Plus de sujets relatifs à : [PL/SQL] Postgres et JDBC


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