Bonjour à tous,

alors tout d'abord mon environnement de travail :
* bd Oracle 8i,
* toad 9.0.1.8 pour attaquer la bd.

J'ai une procédure PL/SQL dans laquelle j'ai déclaré le curseur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CURSOR c1 IS
SELECT code,day1,day2,day3,day4,day5,day6,day7,
FROM t1
GROUP BY code,day1,day2,day3,day4,day5,day6,day7;
Je veux ensuite boucler sur le curseur + boucler sur chaque champ day du curseur:

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
    for d in 1..7
        loop
            v_a_Day := 'c1.day' || to_char(d);
            if (v_a_day is not null) then
                for i in 1..length(v_a_Day)
    		    loop
    			    if (upper(substr(v_a_Day,i,3))='XXX') then
    				   v_compteur_XXX:=v_compteur_XXX+1;
    			    end if;
    			    if (upper(substr(v_a_Day,i,3))='YYY') then
    				   v_compteur_YYY:=v_compteur_YYY+1;
    			    end if;
    		    end loop;
            end if;
        end loop;
Cela ne fonctionne bien sûr pas car Oracle n'interprète pas la valeur de ma variable v_a_day comme moncurseur.monchamp mais comme une chaine de caractères. Quelqu'un saurait il comment dire à Oracle de prendre le contenu de v_a_day comme une variable et non comme une chaine de caractères?

Merci