BookmarkSubscribeRSS Feed
Babloo
Rhodochrosite | Level 12

In my site we've multiple libraries and multiple datasets. If I want to find the library for some particular dataset, I manually looking at each of library to find if the dataset which I'm looking for is available. Is there any way to find the library of some particular dataset programmatically?

 

6 REPLIES 6
tomrvincent
Rhodochrosite | Level 12

Depends on the OS.  You're more likely to find it by searching withing Windows Explorer, grep (linux/unix) or something like those.  You certainly can use proc datasets to see all the datasets in a particular library, though.

utrocketeng
Quartz | Level 8

a long time ago, i find table sizes for each table in each predefined library.  i found a bit of starter code that i then modified.  this is what i am currently using:

 

proc sql;
create table VATableSize as
select libname, memname as TableName, nobs, filesize, obslen, nobs*obslen as Bytes, crdate, modate
from dictionary.tables
where NOT(libname IN ('MAPS','MAPSGFK','MAPSSAS','SAMPSIO','SASHELP', 'STPSAMP', 'WORK'))
ORDER BY FileSize Desc;
quit;

 

 

NOTE:  i run this in a program a few times a day, and dump the output to SAS Visual Analytics so that i can kinda keep tabs on various users data storage tendencies.

andreas_lds
Jade | Level 19

You can query sashelp.vtable:

 

proc sql;
   select LibName, MemName
      from sashelp.vtable
         where MemName = 'CLASS'
   ;
quit;

The name of the Dataset must be in upcase.

Kurt_Bremser
Super User

If you want to find the directory where dataset MYDATA is located, do this on UNIX:

find / -name mydata.sas7bdat

It's best to run this command as the superuser, because you'll get lots of messages about directories where you lack permissions otherwise.

Now, if you have a defined base directory for all your libraries, you can start there:

find /sasbase -name mydata.sas7bdat

And you'll only need a userid that has read/execute permissions on all the subdirectories there.

Kurt_Bremser
Super User

The problem with the dictionary.tables ( @utrocketeng) and sashelp.vtable ( @andreas_lds) approaches is that they only work on currently assigned libraries. They won't find any .sas7bdat files in directories where you do not have an active libname on.

tomrvincent
Rhodochrosite | Level 12

The OP did say 'libraries' and not 'directories', so I think the solutions offered will work.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 3487 views
  • 4 likes
  • 5 in conversation