Help using Base SAS procedures

Deleting a SAS Dataset

Reply
Contributor
Posts: 66

Deleting a SAS Dataset

How can i delete a sas dataset from a library other than using SAS Datasets procedure.Any macro or functions are there to delete.
Super Contributor
Posts: 321

Re: Deleting a SAS Dataset

Hi,

How about using proc sql delete from or drop table?

Milton
Super Contributor
Super Contributor
Posts: 3,174

Re: Deleting a SAS Dataset

You also have PROC DELETE.

Scott Barry
SBBWorks, Inc.
Regular Contributor
Posts: 151

Re: Deleting a SAS Dataset

Hello.

You can try this macro to delete SAS datasets or any other files in library.
You can also use Windows commands.

%macro dirclear(dir=d:\test,ext=xls);
%let ext=%upcase(&ext);
%let dlm=\;
%let filrf=;
%let rc=%sysfunc(filename(filrf,"&dir"));
%let did=%sysfunc(dopen(&filrf));
%let lstname=;
%let memcount=%sysfunc(dnum(&did));
%if &memcount > 0 %then %do;
%do i=1 %to &memcount;
%let lstname=%sysfunc(dread(&did,&i));
%let file=&dir&dlm&lstname;
%let ln=%length(&lstname);
data _null_;
c="&lstname"; c1=reverse(c); ln1=index(c1,'.'); ln=&ln-ln1+2; ln3=ln1-1;
ln4=upcase(substr(c,ln,ln3));
call symput('ln2',trim(left(ln4)));
run;
%if &ln2=&ext or &ext= %then %do;
%let rb=%sysfunc(filename(fname,"&file"));
%let rv=%sysfunc(fdelete(&fname));
%end; %end; %end;
%let rc=%sysfunc(dclose(&did));
%mend dirclear;

libname test v9 'd:\work\test';

%let l=%sysfunc(pathname(test));
/* use macro */
%dirclear(dir=&l,ext=sas7bdat);

/* use Windows command */
systask command "del ""&l.\*.sas7bdat""" wait taskname="del";

or use fdelete() function

data _null_;
rc=filename('fname', "&l.\recartis.sas7bdat");
if fexist('fname') then rc=fdelete('fname');
run;


Regards,
Oleg. Message was edited by: Oleg_1976
Ask a Question
Discussion stats
  • 3 replies
  • 137 views
  • 0 likes
  • 4 in conversation