Problem Note 59725: Your SAS® session might fail with a "Read Access Violation" error or terminate abnormally when you use a numeric suffix list with PROC DELETE
Your SAS session might generate a "Read Access Violation" error or terminate abnormally when you use a numeric suffix list that references a large number of data sets in the DATA= option of PROC DELETE. Click the Results tab to see an example of the errors that are written to the SAS log.
Click the Full Code tab to see sample code that reproduces the problem.
Choose one of the following methods to circumvent this issue:
-
Use the numeric suffix list with PROC DATASETS code. For example:
proc datasets lib=work nolist;
delete test1-test15;
run;
quit;
-
Use a macro DO LOOP to submit the PROC DELETE statement. See the example code below.
%macro deletedat(n);
%do i=1 %to &n;
proc delete data=test&i;
run;
%end;
%mend;
%deletedat(18);
Operating System and Release Information
| SAS System | Base SAS | 64-bit Enabled Solaris | 9.4 TS1M2 | |
| 64-bit Enabled AIX | 9.4 TS1M2 | |
| Windows 7 Ultimate x64 | 9.4 TS1M2 | |
| Windows 7 Ultimate 32 bit | 9.4 TS1M2 | |
| Windows 7 Professional x64 | 9.4 TS1M2 | |
| Windows 7 Professional 32 bit | 9.4 TS1M2 | |
| Windows 7 Home Premium x64 | 9.4 TS1M2 | |
| Windows 7 Home Premium 32 bit | 9.4 TS1M2 | |
| Windows 7 Enterprise x64 | 9.4 TS1M2 | |
| Windows 7 Enterprise 32 bit | 9.4 TS1M2 | |
| Microsoft Windows Server 2012 Std | 9.4 TS1M2 | |
| Microsoft Windows Server 2012 R2 Std | 9.4 TS1M2 | |
| Microsoft Windows Server 2012 R2 Datacenter | 9.4 TS1M2 | |
| Microsoft Windows Server 2012 Datacenter | 9.4 TS1M2 | |
| Microsoft Windows Server 2008 for x64 | 9.4 TS1M2 | |
| Microsoft Windows Server 2008 R2 | 9.4 TS1M2 | |
| Microsoft Windows Server 2008 | 9.4 TS1M2 | |
| Microsoft Windows 10 | 9.4 TS1M2 | |
| Microsoft Windows 8.1 Pro x64 | 9.4 TS1M2 | |
| Microsoft Windows 8.1 Pro 32-bit | 9.4 TS1M2 | |
| Microsoft Windows 8.1 Enterprise x64 | 9.4 TS1M2 | |
| Microsoft Windows 8.1 Enterprise 32-bit | 9.4 TS1M2 | |
| Microsoft Windows 8 Pro x64 | 9.4 TS1M2 | |
| Microsoft Windows 8 Pro 32-bit | 9.4 TS1M2 | |
| Microsoft Windows 8 Enterprise x64 | 9.4 TS1M2 | |
| Microsoft Windows 8 Enterprise 32-bit | 9.4 TS1M2 | |
| Microsoft® Windows® for x64 | 9.4 TS1M2 | |
| z/OS 64-bit | 9.4 TS1M2 | |
| z/OS | 9.4 TS1M2 | |
| HP-UX IPF | 9.4 TS1M2 | |
| Linux for x64 | 9.4 TS1M2 | |
| Solaris for x64 | 9.4 TS1M2 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
The sample PROC DELETE code below generates an error.
/* Create sample data */
%macro CreateMembers(n);
%do i=1 %to &n;
data test&i.;
x=&i;
run;
%end;
%mend;
%CreateMembers(18);
/* Use a numeric suffix list to remove the Test data sets */
proc delete data=test1-test18;
run;
The numeric suffix list feature in PROC DELETE is used to remove a range of data sets without having to list them by name. Specifying more than fourteen data sets can cause your SAS session to fail with a "Read Access Violation" error or terminate abnormally.
| Type: | Problem Note |
| Priority: | medium |
| Topic: | Data Management ==> Access ==> SAS I/O Data Management ==> Data Sources ==> SAS Data Sets/Tables
|
| Date Modified: | 2017-01-23 16:01:09 |
| Date Created: | 2017-01-17 17:39:44 |