Functions and CALL Routines |
Reads the next non-deleted observation from a SAS data set into
the Data Set Data Vector (DDV).
FETCH(data-set-id
<,'NOSET'>)
|
-
data-set-id
-
is a numeric variable that specifies the
data set identifier that is returned by the OPEN function.
-
'NOSET'
-
prevents the automatic passing of SAS data
set variable values to macro or DATA step variables even if the SET routine
has been called.
FETCH returns a 0 if the operation is
successful,
0 if it is not successful, and - 1 if the end of the
data set is reached. FETCH skips observations marked for deletion.
If the SET routine has been called previously, the values
for any data set variables are automatically passed from the DDV to the corresponding
DATA step or macro variables. To override this behavior temporarily so that
fetched values are not automatically copied to the DATA step or macro variables,
use the NOSET option.
This example fetches the next observation from the SAS
data set MYDATA. If the end of the data set is reached or if an error occurs,
SYSMSG retrieves the appropriate message and writes it to the SAS log. Note
that in a macro statement you do not enclose character strings in quotation
marks.
%let dsid=%sysfunc(open(mydata,i));
%let rc=%sysfunc(fetch(&dsid));
%if &rc ne 0 %then
%put %sysfunc(sysmsg());
%else
%do;
...more macro statements...
%end;
%let rc=%sysfunc(close(&dsid));
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.