Alle Data-Sets in einer Bibliothek ansprechen

Hallo,

zurzeit hänge ich an einem kleinen Problem, das sich bestimmt einfach beheben lässt. Leider wurde ich aber weder durch die Google-Methode noch durch die SAS-Dokumentation wesentlich schlauer.

Folgender Code wird ausgeführt (symbolische Namen):

data work.eigentum;
set work.haus work.auto work.yacht;
run;

In der Praxis werden über 40 Dateien (steigend) in der SET-Anweisung angegeben. Es ist kein bestimmtes Muster wie eine laufende Nummer im Dateinamen vorhanden. Gibt es nicht dennoch eine einfacherere und schöne Möglichkeit, alle Data-Sets in einer Bibliothek anzusprechen?

Ich bin über jede Hilfe dankbar.

SASHelp.Vtable

Hallo Mario,

es gibt in SAS sogenannte dynamische Views. Diese stehen in der Bibliothek SASHelp. Einer dieser Views heisst VTable und enthält Informationen über alle Tabellen in den zur Zeit angelegten Bibliotheken. Mit einem Filter auf den Namen der Bibliothek lassen sich dann die passenden Tabellennamen herausfinden.

In PROC SQL kannn man die Views auch verwenden. Den View SASSHelp.VTable kann man auch als Dictionary.Tables ansprechen. Auch die anderen Views können über Dictionary angesprochen werden.

Ich hoffe das hilft weiter.

Gruß
Klaus Landwich

Alle Data-Sets in einer Bibliothek ansprechen

Vielen Dank, der Hinweis hat mir auf jeden Fall weitergeholfen. Mit der Bibliothek SASHelp hatte ich mich bislang nie beschäftigt.

Meine Lösung (ohne Fehlerabfrage) sieht nun wie folgt aus:

data work.tables (keep = filename2); set sashelp.vtable (where = (libname = upcase('MS')));
filename2 = catt(libname,'.',memname);
run;

data work.tables (keep = filename); set work.tables;
retain filename;

if _n_ = 1 then do;
filename = filename2;
end;
else do;
filename = catx(' ',filename,filename2);
end;

call symput ("filelist",filename);
run;

data work.eigentum;
set &filelist;
run;

oder auch so

proc sql noprint;
select catt(libname,'.',memname)
into :filelist
separated by ' '
from sashelp.vtable
where libname='MS';
quit;

data work.eigentum;
set &filelist;
run;

Kürzer geht es nicht mehr

Super, vielen Dank. Damit erspare ich mir den Umweg über eine temporäre Datei. Ich merke, in SAS gibt es für mich noch sehr sehr viel zu erkunden.