![]() | ![]() | ![]() | ![]() | ![]() |
An error might occur in SAS 9.2 Phase 2 when files are concatenated and the BLKSIZE of the first file is not an even multiple of the subsequent files LRECLs. Note that the same concatenation opens without errors in SAS® 9.1.3. The error will be similar in appearance to the following:
ERROR: OPEN is aborted for file fileref. BLKSIZE (27750) must be multiple of LRECL (1100) for RECFM=FB. NOTE: The SAS System stopped processing this step because of errors.
The code in the following example produces the error:
//INDD DD DISP=SHR,DSN=FILE.ONE // DD DISP=SHR,DSN=FILE.TWO // DD DISP=SHR,DSN=FILE.THREE //SYSIN DD *,DLM=$$ DATA _NULL_ ; INFILE INDD ; INPUT @1 VAR1 $1. ; STOP ; RUN; DATA _NULL_; INFILE INDD ; INPUT @1 VAR2 $1. ; RUN;
The concatenation contains files where the BLKSIZE of the first file is not a multiple of all subsequent files' LRECLs. The example code above contains two parts: a first DATA step reading the INFILE, then stopping under a specific condition. The second Data step reads the INFILE completely.
An example of file DCBs that will produce the error:
First file : LRECL=750, BLKSIZE=27750 Second file : LRECL=1100, BLKSIZE=27500 Third file : LRECL=1900, BLKSIZE=26600
Note that there are no files in this concatenation with a BLKSIZE 27750 and LRECL 1100.
A workaround is to use an utility (IEBGENER for example) to change the smaller files LRECL and BLKSIZE to match the largest file.
Product Family | Product | System | SAS Release | |
Reported | Fixed* | |||
SAS System | SAS Foundation | z/OS | 9.2 TS1M0 | 9.2 TS2M2 |