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 lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.