i used the below code PROC CONTENTS DATA=work._ALL_ OUT=work.contents NOPRINT; RUN; /*Sorting the contents dataset by memname*/ proc sort data=work.contents nodupkey; by memname; run; /*Deleting datasets based on period and storing details in the work library*/ DATA work.deleted; length libname $15.; format deletion_time datetime20.; RETAIN libname memname deletion_time; SET work.contents(KEEP=LIBNAME MEMNAME) end=eof; by memname; where length(scan(memname, -1, '_')) = 6; deletion_time = datetime(); if find(memname,'data','i') ge 1 then do; if first.memname; if _n_ = 1 then call execute('proc sql;'); call execute(catx(' ', 'drop table', catx('.', libname, memname), ';')); call execute (catx(' ', 'where', 'input(scan(memname, -1, '_'),? yymmn6.) < intnx('year', today(), -7, 'b');')); if eof then do; call execute('quit;'); end; end; else do; if first.memname; if _n_ = 1 then call execute('proc sql;'); call execute(catx(' ', 'drop table', catx('.', libname, memname), ';')); call execute (catx(' ', 'where', 'input(scan(memname, -1, '_'),? yymmn6.) < intnx('year', today(), -4, 'b');')); if eof then do; call execute('quit;'); end; end; RUN; and the log has the below errors 228 PROC CONTENTS DATA=work._ALL_ OUT=work.contents NOPRINT; 229 RUN; NOTE: The data set WORK.CONTENTS has 128 observations and 41 variables. NOTE: Compressing data set WORK.CONTENTS decreased size by 0.00 percent. Compressed is 2 pages; un-compressed would require 2 pages. NOTE: PROCEDURE CONTENTS used (Total process time): real time 0.06 seconds cpu time 0.06 seconds 230 231 /*Sorting the contents dataset by memname*/ 232 proc sort data=work.contents nodupkey; 233 by memname; 234 run; NOTE: There were 128 observations read from the data set WORK.CONTENTS. NOTE: SAS sort was used. NOTE: 107 observations with duplicate key values were deleted. NOTE: The data set WORK.CONTENTS has 21 observations and 41 variables. NOTE: Compressing data set WORK.CONTENTS increased size by 100.00 percent. Compressed is 2 pages; un-compressed would require 1 pages. NOTE: PROCEDURE SORT used (Total process time): real time 0.02 seconds cpu time 0.03 seconds 235 236 /*Deleting datasets based on period and storing details in the work library*/ 237 238 DATA work.deleted; 239 length libname $15.; 240 format deletion_time datetime20.; 241 RETAIN libname memname deletion_time; 242 SET work.contents(KEEP=LIBNAME MEMNAME) end=eof; 243 by memname; 244 where length(scan(memname, -1, '_')) = 6; 245 deletion_time = datetime(); 246 if find(memname,'data','i') ge 1 then do; 247 if first.memname; 248 if _n_ = 1 then call execute('proc sql;'); 249 call execute(catx(' ', 'drop table', catx('.', libname, memname), ';')); 250 call execute (catx(' ', 'where', 'input(scan(memname, -1, '_'),? yymmn6.) < intnx('year', -------------------------- ----------------------- 49 49 - 388 - 76 250 ! today(), -7, 'b');')); NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS release. Inserting white space between a quoted string and the succeeding identifier is recommended. ERROR 388-185: Expecting an arithmetic operator. ERROR 76-322: Syntax error, statement will be ignored. 251 if eof then do; 252 call execute('quit;'); 253 end; 254 end; 255 else do; 256 if first.memname; 257 if _n_ = 1 then call execute('proc sql;'); 258 call execute(catx(' ', 'drop table', catx('.', libname, memname), ';')); 259 call execute (catx(' ', 'where', 'input(scan(memname, -1, '_'),? yymmn6.) < intnx('year', -------------------------- ----------------------- 49 49 - 388 - 76 259 ! today(), -4, 'b');')); NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS release. Inserting white space between a quoted string and the succeeding identifier is recommended. ERROR 388-185: Expecting an arithmetic operator. ERROR 76-322: Syntax error, statement will be ignored. 260 if eof then do; 261 call execute('quit;'); 262 end; 263 end; 264 265 RUN; NOTE: The SAS System stopped processing this step because of errors. WARNING: The data set WORK.DELETED may be incomplete. When this step was stopped there were 0 observations and 3 variables. WARNING: Data set WORK.DELETED was not replaced because this step was stopped. NOTE: DATA statement used (Total process time): real time 0.08 seconds cpu time 0.09 seconds
... View more