BookmarkSubscribeRSS Feed
chirumalla
Calcite | Level 5

Hi I'm using Proc datasets moving option to moving data from one library to another if datasets not available I need to capture Warning/error from code. Same&syserr macro working in data step but not working in proc datasets. pls advise me how to capture error.

/*1-WORKING*/

data NULL;

set doesnotexist;

run;

%put &syserr;

/*2-NOT WORKING*/

PROC DATASETS;

COPY IN=Source OUT=Target MOVE MEMTYPE=DATA;

RUN;

%put &syserr;

2 REPLIES 2
mbuchecker
Quartz | Level 8

Hi Chirumalla,

PROC DATASETS is part of run group processing, which means that the step doesn't actually finish until it encounters a QUIT statement or the start of a new step. A plain old run statement just executes your COPY statement but does not terminate PROC DATASETS and SYSERR only gets updated correctly when the step has terminated. Simply add a quit statement before checking the value of SYSERR. 

 

/*1-WORKING*/
data NULL;
set doesnotexist;
run;
%put error is &syserr;
/*2-ALSO WORKING*/
PROC DATASETS;
COPY IN=Source OUT=Target MOVE MEMTYPE=DATA;
RUN;
quit;
%put error is &syserr;

Michelle
ChoudharyM
Fluorite | Level 6

Hello Michel,

 

Thanks... It worked for me by doing suggested changes.

 

 

 

Manoj

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1316 views
  • 1 like
  • 3 in conversation