Bonjour à tous,
Après des heures à regarder le forum, je me résous à vous solliciter car j'ai séché sur une macro sous 9.4.
En synthèse :
- Je travaille dans le swork, table "TOTO"
- J'ai une table avec 8 colonnes fixes et X colonnes variables après les fixes, en fonction de mon extraction le nombre de colonnes n'est jamais le même.
- Pour ces colonnes variables je souhaite ajouter un préfixe type "DATA_"+nom d'origine.
Donc j'essaye de faire ça dans une macro mais rien ne va, j'ai trouvé un bon de macro que j'essaye d'adapter :
Et en fait, rien ne se passe... je m'attendais à ce que ma table TOTO soit réécrite avec les nouveaux noms de colonnes, mais non. C'est comme si la macro ne s'exécutait pas du tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 %macro prefix_all (lib=swork, DS=TOTO, Prefix=DATA_, VarExclure=Var1 var2 var3 var4 var5 var6 var7 var8); /*j'essaye d'exclure les 8premières variables*/ proc contents data=%cmpres(&lib..&ds) out=_contents %if &VarExclure ne %then (where=(upcase(name) not in (%upcase (&VarExclure)))) ; noprint ; run ; data _null_ ; set _contents (keep=name) ; call execute (PROC DATASETS lib=&lib NODETAILS NOLIST; MODIFY &ds ; RENAME !! name !! compress(=&prefix !! name) !! ;quit;); run ; %mend ;
Je pense que j'ai raté quelque chose ?
Si jamais une âme charitable pouvait me montrer la lumière.
Merci,
Partager