Previous Page | Next Page

Functions and CALL Routines

FETCH Function

Reads the next non-deleted observation from a SAS data set into the Data Set Data Vector (DDV).
Category: SAS File I/O

See Also


FETCH(data-set-id <,'NOSET'>)



is a numeric variable that specifies the data set identifier that is returned by the OPEN function.


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, [ne]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());
      ...more macro statements...
%let rc=%sysfunc(close(&dsid));

See Also

CALL Routine:

CALL SET Routine



GETVARC Function

GETVARN Function

Previous Page | Next Page | Top of Page