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.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.