Hi...I am trying to run the proc contents procedure on a number of datasets. The list of names for the datasets are selected from List2. I only want to run the proc contents for each dataset name that is stored in the tablelist. I have attached part of the log output at the end of the code. Any suggestion why I am getting the error. Thanks.
proc sql noprint; select distinct count(tbl) into : countlist separated by ' ' from work.List2 where List2.ct > 0; quit; %put &countlist; proc sql noprint; select distinct tbl into : tablelist separated by ' ' from work.List2 where List2.ct > 0; quit; %put &tablelist; %macro list1; %local i; %do i=1 %to &countlist; %let Dn=%scan(&tablelist,&i); LTable="&Dn"; proc contents data=sqldb.<able varnum details; run; %end; %mend; %list1; Log output: 1 %list1; NOTE: Line generated by the invoked macro "LIST1". 71 LTable="&Dn"; ______ 180 ERROR 180-322: Statement is not valid or it is used out of proper order. WARNING: Apparent symbolic reference LTABLE not resolved. <able WARNING: Apparent symbolic reference LTABLE not resolved. NOTE 137-205: Line generated by the invoked macro "LIST1". 71 proc contents data=sqldb.<able varnum details; run; _ 22 ERROR 22-322: Syntax error, expecting one of the following: ;, (, CENTILES, DATA, DETAILS, DIR, DIRECTORY, FMTLEN, LIB, MEMTYPE, MT, MTYPE, NODETAILS, NODS, NOPRINT, ORDER, OUT, OUT2, SHORT, VARNUM.
1. You should use PROC DATASETS or SASHELP.VTABLE instead to process all instead of one at a time.
For your current code, you forgot the %LET in front of the line with the error.
1. You should use PROC DATASETS or SASHELP.VTABLE instead to process all instead of one at a time.
For your current code, you forgot the %LET in front of the line with the error.
Hi Reeza.....thanks for the quick response. The missing %let was the problem...thanks once again.
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.
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.