BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
AnnLyn
Fluorite | Level 6

How can I easy create storage/size in memeory information of all tables in a specific cas lib.

I use this:

proc cas;
table.tabledetails /name="%" caslib="XXXX";

quit;

 

but it fails. it seems that I can not use a wildcards in that manner?

 

Do you have some code which could help me?

1 ACCEPTED SOLUTION

Accepted Solutions
Mazi
Pyrite | Level 9

cas mycas;

libname casuser cas caslib=casuser;

proc casutil;
	load data=sashelp.cars
		 outcaslib="casuser"
		 casOut="cars"
		 replace;

	load data=sashelp.class
		 outcaslib="casuser"
		 casOut="class"
		 replace;

	load data=sashelp.baseball
		 outcaslib="casuser"
		 casOut="baseball"
		 replace;
run;

proc cas;
	table.tableinfo result=rc /caslib="casuser";
	fragment=';';
	do table over rc["TableInfo"][,"Name"];
		table.tabledetails result=result/name=table caslib="casuser";
		saveresult result caslib="casuser" casout=table;
		code="data casuser.allResults"||fragment|| "set casuser."||table||";length Data varchar(100);Data='"||table||"';run;";
		datastep.runcode/code=code;
		fragment='(append=yes);';
	end;
quit;

Give this a try

View solution in original post

6 REPLIES 6
Mazi
Pyrite | Level 9
proc casutil;
	load data=sashelp.cars
		 outcaslib="casuser"
		 casOut="cars"
		 replace;

	load data=sashelp.class
		 outcaslib="casuser"
		 casOut="class"
		 replace;

	load data=sashelp.baseball
		 outcaslib="casuser"
		 casOut="baseball"
		 replace;
run;

proc cas;
	table.tableinfo result=rc /caslib="casuser";
	do table over rc["TableInfo"][,"Name"];
		table.tabledetails /name=table caslib="casuser";
	end;
quit;

Can you try this?

AnnLyn
Fluorite | Level 6

It works perfectly - thanks a lot. Is it possible to output the results in a table? thanks in advance.

Mazi
Pyrite | Level 9
Hi, Yes -

We can use the saveresult statement to do this.

Do you want them appended to one table or a different table for each?
AnnLyn
Fluorite | Level 6

I would prefer one table as it can be used for a report afterwards. Thanks in advance.

Mazi
Pyrite | Level 9

cas mycas;

libname casuser cas caslib=casuser;

proc casutil;
	load data=sashelp.cars
		 outcaslib="casuser"
		 casOut="cars"
		 replace;

	load data=sashelp.class
		 outcaslib="casuser"
		 casOut="class"
		 replace;

	load data=sashelp.baseball
		 outcaslib="casuser"
		 casOut="baseball"
		 replace;
run;

proc cas;
	table.tableinfo result=rc /caslib="casuser";
	fragment=';';
	do table over rc["TableInfo"][,"Name"];
		table.tabledetails result=result/name=table caslib="casuser";
		saveresult result caslib="casuser" casout=table;
		code="data casuser.allResults"||fragment|| "set casuser."||table||";length Data varchar(100);Data='"||table||"';run;";
		datastep.runcode/code=code;
		fragment='(append=yes);';
	end;
quit;

Give this a try

AnnLyn
Fluorite | Level 6

it works great. Thank you so much for your help. I am very happy with your solution.

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 6 replies
  • 1222 views
  • 1 like
  • 2 in conversation