Je scinde une chaine '531.2/514.2' en fonction d'un separateur et j'affiche le resultat dans un élement liste
p_sep
voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
For Cur In c_split('531.2/514.2',p_sep) Loop
       :global.compte := Cur.token;
       ch := 'select alj_cp_code||'' - ''|| alj_cp_lib,alj_cp_code from alj_compte where alj_cp_code=:global.compte'; 
       if ( i = 0 ) then
           alj_compte where alj_cp_code=:global.compte'; 
           v_result := ch; 
       else
         alj_compte where alj_cp_code=:global.compte1'; 
           v_result := v_result||' union all '||ch; 
       end if;
       i := i+1;
    End Loop ;
    POPULATE_LIST_WITH_QUERY(ch_compte,v_result) ;
il m'affiche la derniere valeur c'est à dire '514.2' deux fois
alors que quand je separe les variables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
For Cur In c_split('476.12.04/531.2/514.2',p_sep) Loop
       if ( i = 0 ) then
           :global.compte := Cur.token;
           ch := 'select alj_cp_code||'' - ''|| alj_cp_lib,alj_cp_code from alj_compte where alj_cp_code=:global.compte'; 
           v_result := ch; 
       else
           :global.compte1 := Cur.token;
           ch := 'select alj_cp_code||'' - ''|| alj_cp_lib,alj_cp_code from alj_compte where alj_cp_code=:global.compte1'; 
           v_result := v_result||' union all '||ch; 
       end if;
       i := i+1;
    End Loop ;
    POPULATE_LIST_WITH_QUERY(ch_compte,v_result) ;
là ça marche correctement.
mon souci c'est que je ne voudrais pas declarer autant de variable que de compte dans ma chaine c'est à dire
Cur In c_split('A/B/C/D/E/F',p_sep) EQUIVAUT a declarer 6 variable.