[PL/SQL][Oracle 8i] Variable de nom dynamique
Bonjour.
Voici mon souci.
J'ai un tableau contenant les noms des colonnes d'une table, ordonnés comme il faut. J'ai également un curseur sur la table.
A partir de ce curseur, je dois concaténer les valeurs des colonnes de la table (ligne par ligne).
Voici le squelette de la procédure:
Code:
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 30 31 32 33 34 35 36 37 38 39
| PROCEDURE maprocedure IS
CURSOR cur_matable IS
SELECT * FROM matable;
rec_matable matable%ROWTYPE;
CURSOR cur_montableau IS
SELECT nom_colonne
FROM matableref
WHERE nom_table = matable
ORDER BY ordre_colonne;
TYPE T_REC_tableau IS RECORD (
nom_colonne ....
long_colonne ...
typ_colonne...
TYPE TYP_TABLEAU IS TABLE OF T_REC_tableau INDEX BY BINARY_INTEGER ;
tab_montableau TYP_TABLEAU;
Begin
-- remplissage de tab_montableau à partir de cur_montableau: OK
OPEN cur_matable ;
LOOP
FETCH cur_matable INTO rec_matable ;
EXIT WHEN cur_matable %NOTFOUND;
ls_ligne := '';
-- on crée la ligne en concaténant les valeurs des colonnes dans le bon ordre
FOR i IN 1..longueur_montableau
LOOP
ls_ligne := ls_ligne || rec_matable.tab_montableau(i).nom_colonne;
END LOOP;
END LOOP;
END; |
mon pb est ici: rec_matable.tab_montableau(i).nom_colonne
je voudrais que tab_montableau(i).nom_colonne donne le nom de la colonne, qui ensuite, me donne la valeur de cette colonne à travers le curseur rec_matable.
en gros, le principe des pointeurs de pointeurs, ou $$nomvariable=$mavariable=mavaleur en php
comment contourner cela? :roll:
merci ;)