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:
mon pb est ici: rec_matable.tab_montableau(i).nom_colonne
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;
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![]()
Partager