IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Appeler une procedure avec des objets de type row ou table


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Appeler une procedure avec des objets de type row ou table
    Je voudrai appeler cette procedure stocké :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure ma_procedure ( p_a in a_obj,
                                        p_b in b_obj_tab,
                                        p_msgs in out msg_obj_tab,
                                        p_params in out param_obj_tab)
    Avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    - Single row type a_obj as object (aId number(8),
                                                   aName varchar2(105))
     
    - Table type (type b_obj_tab is table of b_obj)
    type b_obj as object ( bId number(8),
                                   bName varchar2(4))
     
    - Table type (type msg_obj_tab is table of msg_obj)
    type msg_obj as object ( msg_id number(8),
                                       msg_desc varchar2(80))
     
    - Table type (type param_obj_tab is table of param_obj)
    type param_obj as object ( msg_id   number(8),
                                         des varchar2(50),
                                         value varchar2(50))
    A votre avis est ce possible d'appeler directement cette procedure avec jdbc ?

    Je me dis qu'en utilisant :
    myCallableStatement.setObject(1,A);
    myCallableStatement.setObject(2,B);

    avec A et Bs (un conteneur de B) des classes java contenant les bon getters/setters, ainsi que les bon types, c'est peut être possible.

    Mais aussi pensez vous qu'avec hibernate c'est faisable ?

    Merci de m'aider !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Points : 167
    Points
    167
    Par défaut
    J'avais tenter de le faire sur oracle. Je me suis un peu casser les dents. Je devais passer une liste de structures contenant 3 éléments. Pour se faire il faut dire au JDBC de quel type de structure il s'agit. Pour se faire il existe une méthode qui permet de le récupérer sur oracle, ensuite on map les données dans la structure, et on envoie le tout.

    Mon instruction de récupération du type de structure n'a jamais voulu fonctionner .

    J'ai finis par passer le tout dans un varchar. (Je n'avais au maximum 5 ligne dans ma liste).

    En gros pour ta dernière structure param_obj, ca se récupere comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    FOR i IN 1..nb_ligne LOOP
        msg_id   :=to_number(trim(substr(tableau,1+((i-1)*108),8)));
        des      :=trim(substr(tableau,9+((i-1)*108),50));
        value    :=trim(substr(tableau,59+((i-1)*108),50));
    END LOOP;
    Mon site : TKT-Web =)

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2012, 11h51
  2. Réponses: 8
    Dernier message: 16/12/2011, 15h53
  3. Peupler une ComboBox avec des objets perso
    Par gallab dans le forum Flex
    Réponses: 2
    Dernier message: 23/06/2010, 07h18
  4. Réponses: 2
    Dernier message: 14/06/2008, 18h03
  5. Réponses: 3
    Dernier message: 09/08/2006, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo