Bonjour,

Je sais le titre est pas très clair mais c'est dure à résumé en quelques mots.

Bon voila, j'ai 1 Package a l'intérieur duquel j'ai 3 Procédure stockées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
 
Proc A appele Proc B et Proc C
 
Proc B renvoi un curseur 
Proc C renvoi un curseur 
 
Et Proc A devrait renvoyer un curseur qui devrait plus ou moins etre une concaténation des deux curseurs.
Voici mon code actuel :
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
 
create or replace package PA_COURRIER is
 
  -- Public type declarations
  type CourrierCurType is REF CURSOR;
 
  PROCEDURE PR_ADRESSE_CLIENT (cur_courrier OUT CourrierCurType
                                  , pClient NUMBER
                                  , pEtab NUMBER
                                  , pAffaires NUMBER
                                  , pBenef VARCHAR2
                                  , pActivite VARCHAR2
                                  , pAssocie NUMBER
                                  , pTypeRequete NUMBER);
end PA_COURRIER;
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
17
18
19
20
21
22
23
24
25
26
27
28
29
 
create or replace package body PA_COURRIER is
 
    PROCEDURE PR_ADRESSE_CLIENT (cur_courrier OUT CourrierCurType
                                    , pClient NUMBER
                                    , pEtab NUMBER
                                    , pAffaires NUMBER
                                    , pBenef VARCHAR2
                                    , pActivite VARCHAR2
                                    , pAssocie NUMBER
                                    , pTypeRequete NUMBER)
    As                                
    Begin
          Open cur_courrier for
          select civ.lib_civ, civ.lib_civ2, cli.lib_prenomcli, cli.lib_nom
           , cli.lib_numvoi, typvoi.lib_typvoi,  cli.lib_voi
           , cli.lib_adr2, cli.lib_adr3
           , cli.cod_pst, cli.lib_vilcli, pay.lib_pay
          from op.t_clients cli
          , op.tr_type_voie typvoi
          , op.tr_pays pay
          , op.tr_civilite civ
          where num_cli = pClient
          and cli.cod_typvoi = typvoi.cod_typvoi (+)
          and cli.cod_pay = pay.cod_pay (+)
          and civ.cod_civ (+) = cli.cod_civ ;
    End PR_ADRESSE_CLIENT;
 
end PA_COURRIER;
Mon probleme principale est que je ne vois pas comment réutilisé mon curseur dans la proc A?

N'hésitez pas à poser des questions si je suis pas clair, ah oui encore une info Oracle8i, VB6.

Merci[/code]