Processing VSAM Data Sets in SAS Programs |
Erasing a record involves both input access (because the record must be read first) and output access. You can erase records from a KSDS or an RRDS. The record must be retrieved before you can erase it, and you must specify the VSAMUPDATE system option. VSAM imposes a restriction that ESDS records cannot be erased.
You must use an INFILE statement and an INPUT statement to read the record and a FILE statement and a PUT statement to erase the record from a VSAM data set. Of course, the INFILE and FILE statements must have the same fileref; that is, they must reference the same data set. You must use the ERASE= option in the INFILE statement to specify a numeric SAS variable that tells SAS whether a record is to be erased.
When you set the ERASE= variable to a value of 1 before a PUT statement for the data set executes, the record is erased.
After the PUT statement executes, the ERASE= variable is automatically reset to 0. Therefore, you must set it to 1 again to erase another record. This prevents the inadvertent deletion of a series of records.
When you set the ERASE= variable to a value of 0 before a PUT statement for the data set executes, the record is updated with the data specified instead of being erased. This is the default action that is taken if the ERASE= option is not specified.
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.