Bonsoir la team,
j'ai parcouru le forum mais je n'ai pas trouvé de réponse à mon problème.
Le lien que j'ai trouvé s'y rapprochant le plus est ici.
Voici mon problème:
je souhaiterais utiliser des nom de variables dynamique pour initialiser une table de type.
Voici la déclaration de ma table de type:
Voici ce qui me bloque:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TYPE TABLE_TYPE IS TABLE OF nom_table%ROWTYPE ; RECORD_LIGNES TABLE_TYPE ;
je voudrais initialiser ma structure de 100 colonnes ainsi:
Par rapport au lien plus haut, pourriez-vous m'indiquer comment affecter le nom de mes variables dynamiques à ma structure?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 pour i de 1 à 100 colonnes RECORD_LIGNES(1).col1 = .. RECORD_LIGNES(1).col2 = .. fin pour
voici le code utile dans le lien:
- v_val_col doit être déclaré en varchar2(n)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 id_cur := dbms_sql.open_cursor; dbms_sql.parse (id_cur, v_requete, dbms_sql.native); FOR i = 1 TO nb_colonnes_table loop dbms_sql.define_column (id_cur, i, v_val_col, n); end loop; v_nblig := dbms_sql.execute (id_cur); v_nblig := dbms_sql.fetch_rows (id_cur); FOR i = 1 TO nb_colonnes_table loop dbms_sql.column_value (id_cur_mov, 1, v_val_col); v_lig := v_lig || v_val_col; end loop;
- n est la longueur maxi de tes colonnes (si tu ne souhaites pas prendre de risque, mets 4000)
- nb_colonnes_table est le nombre de colonnes dans ta table
- dans ta variable v_requete, tu dois indiquer les colonnes dans l'ordre souhaité.
Merci de votre aide,
berni.
Partager