Bonjour;
j'ai besoin de lister toutes les variables de toutes les tables existantes dans la librairie SASHALP.
mon idée est de :
1- Créer une tables list_Table par dictionary.tables qui liste toute les tables de SASHELP.
2- Créer une macro variable qui permet de lire le nombre de ligne dans la table list_Table.
3- créer une table qui liste les variables de la table qui correspond au compteur i.
4- Fussionner toutes les tables.
j'ai écrit le script suivant:
mais ce script ne marche pas
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 /*Lister toute les tables du reprtoire*/ proc sql; create table List_Table AS select * /*libname, memname, nvar, objname*/ from dictionary.tables where upcase(libname)= 'SASHELP' and upcase(memtype)='DATA'; quit; %macro Lister_var; /*Lire le nom des table et le nbre de ligne de la base List_ table*/ DATA liste /*_null_*/; SET List_Table; call symput('Table'||left(trim(_n_)),memname); call symput('nb_Table',_n_); run; /*Récupérer le non de la table entre deux quotes*/ %Let Table_Quote =%sysfunc(tranwrd(%nrstr(%')&Table.%nrstr(%'),%str( ),%str(' '))) ; /*lancer le compteur*/ %do i =1 %TO &nb_Table ; /*lister les variables de la table qui correspond au ciompteur i proc sql; create table &Table AS select * from dictionary.columns where upcase(libname)= 'SASHELP' and upcase(memname)in (&Table_Quote) ; quit; %end;*/ %mend; %Lister_var;
pouvez vous m'aider?
Partager