Help using Base SAS procedures

library location

Reply
Frequent Contributor
Frequent Contributor
Posts: 79

library location

hello

I have a library which i have defined as test for example libname test "C:\temp";

there are some active libraries like maps for example and i want to know how do i find the location in which the datasets are stored.

I can do that if I just right click and see properties but how do i programatically locate where the datasets are being stored in the  C drive

Thank you

Super User
Posts: 10,552

Re: library location

One way

 

proc sql;

select path

from dictionary.libnames

where libname="WORK";

quit;

This will show in the results window. You can drop the value into a macro variable for use elsewhere in your program using

INTO on the select statement probably with NOPRINT

Respected Advisor
Posts: 3,124

Re: library location

Not sure if I understand 1) What libraries you are talking about, I assume they are those predefined libraries you see out of box? as if you define it, you know where it is. 2) What do you mean "pragmatically"

Anyway, the definition of those predefined libraries (eg. SASHELP, MAPS etc) can be found in either SASv9.cfg (most likely) or autoexec.sas

for instance, you will find statements like this in cfg file:

-SET SASROOT "C:\Program Files\SASHome\x86\SASFoundation\9.3"

-MAPS !SASROOT\maps

meaning library maps is located in 

C:\Program Files\SASHome\x86\SASFoundation\9.3\maps

In autoexec.sas, you will just see those libname statements if there are any.

Regards,

Haikuo

Respected Advisor
Posts: 3,124

Re: library location

Inspired by , I think now I know what you mean by "pragmatically" , here is another one using a SAS function PATHNAME:

data _null_;

path=pathname('work');

put path=;

run;

Regards,

Haikuo

Super User
Posts: 9,691

Re: library location

%let x=%sysfunc(pathname(maps));

%put &x ;

Ask a Question
Discussion stats
  • 4 replies
  • 220 views
  • 0 likes
  • 4 in conversation