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 : 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
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?

merci