Problem Note 19065: DISP is ignored in LIBNAME statement when existing allocation already
exists
In SAS® 9, SAS will usually re-use any external allocation of a library
if you define a LIBNAME statement for that library. This is a change
from prior releases of SAS in which SAS would create a separate
allocation for each LIBNAME statement. This means that if you have an
external allocation for a SAS library with a disposition of (OLD,KEEP),
and you execute a libname statement with a DISP of (OLD,DELETE), then
issue a LIBNAME CLEAR, the DELETE dispostion will be ignored. You may
see a message like the following:
NOTE: Data set xxxxxx.TEST.SASLIB has not been deallocated because it
was allocated externally.
You can circumvent this change by clearing the library definition using
a LIBNAME CLEAR; statement, then assigning a fileref to the external
file with the desired disposition and then clearing the fileref. For
example:
/* end the use of the physical data set as a SAS library */
libname x001 clear;
/* if library should be deleted, do the following: */
filename x002 '.test.saslib' disp=(old,delete);
filename x002 clear;
/* clean up & make sure library is gone: */
tso free dd(x001);
A hotfix is available which will cause SAS to honor a disposition of
(OLD,DELETE) specified on the LIBNAME statement for a library data set
that is already allocated, external to SAS, by the job or TSO session
under which the SAS session is running.
Select the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SAS System | Base SAS | z/OS | 9.1 TS1M3 | 9.2 TS1M0 |
*
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.
Type: | Problem Note |
Priority: | medium |
Topic: | Data Management ==> Access ==> SAS I/O
|
Date Modified: | 2007-02-22 08:56:55 |
Date Created: | 2006-11-28 14:14:03 |