Bonjour je suis avec Oracle 10G.

Je veux créer une procédure générique pour l'ensemble de tables afin de faire des comparaisons de données.

J'ai plusieurs tables et je ne veux pas faire une procédure pour chaque table.
Ma procédure générique aura en paramètre le nom d'une table et un ou plusieurs clé selon la table.
Donc je dois faire appel au Dictionnaire Oracle afin de sortir toute mon information pour les noms de colonnes et ensuite les données.
Je vais utiliser des vecteurs pour les noms de colonnes et un autre vecteur pour les données. Sure que je vais faire une boucle pour avoir toutes les lignes de la table.

Je pense avoir trouvé la façon de mettre les noms de colonnes dans un vecteur.

Mais c'est une autre histoire pour les données...
Est-ce que je vais devoir créer le vecteur pour les données et faire un curseur dynamique pour remplir ce dernier???
Est-ce que je peux comme les nom de colonnes faire un 'EXTEND' pour avoir les valeurs?
Mon premier vecteur est-il correct?
J'aurais besoin d'un bon coup de main là-dessus ;-)

Merci!

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
 
declare 
 
CURSOR lname_cur IS
   SELECT column_name
           FROM all_tab_columns
          WHERE owner = 'DEV'
            AND table_name = 'I_CARDINAL' ;
 
type lastname_type is varray(10) of ALL_TAB_COLUMNS.COLUMN_NAME%type;
last_name_varray lastname_type := lastname_type();
 
v_counter integer :=0;
 
begin
for name_rec in lname_cur loop
   v_counter := v_counter + 1;
   last_name_varray.EXTEND;
   last_name_varray(v_counter) := name_rec.column_name;
   DBMS_OUTPUT.PUT_LINE(last_name_varray(v_counter));
   end loop;
   end;