|Date: ||Thu, 21 Jul 2005 09:11:25 -0400|
|Reply-To: ||Sigurd Hermansen <HERMANS1@WESTAT.COM>|
|Sender: ||"SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>|
|From: ||Sigurd Hermansen <HERMANS1@WESTAT.COM>|
|Subject: ||Re: PROC DATASETS and Sequential Libraries|
|Content-Type: ||text/plain; charset="iso-8859-1"|
When running under MS Windows SAS, PROC DATASETS will also refuse to MODIFY a dataset created under Linux SAS and transferred to MS Windows. In this case, one can use PROC MIGRATE to convert Linux SAS datasets in one SAS library to MS Windows datasets in another SAS library.
From: firstname.lastname@example.org on behalf of Howard Schreier <hs AT dc-sug DOT org>
Sent: Fri 7/15/2005 9:10 PM
Subject: Re: PROC DATASETS and Sequential Libraries
A birdie confirmed the strnageness, and said (in part):
"I agree that it doesn't give you exactly what you would expect. =) I
played around with it for a while. It looks like you can do a COPY, APPEND
(if using a data set from the DATASETS library as the DATA data set),
CONTENTS or DELETE statement. You can't do a MODIFY statement. And you
can only do one statement; the second is ignored due to the error."
The birdie also pointed out that if I had included a RUN statement after
the COPY to close the block, that (instead of the QUIT statment) would have
triggered processing. But that really doesn't change anything; DATASETS
still errors out unnecessarily after doing something it says it cannot do.
On Mon, 11 Jul 2005 17:13:21 -0400, Howard Schreier <hs AT dc-sug DOT org>
>I submitted 8 lines of code, which can be seen in the following log
>1 libname demo xport 'c:\temp\xportdemo';
>NOTE: Libref DEMO was successfully assigned as follows:
> Engine: XPORT
> Physical Name: c:\temp\xportdemo
>3 data demo.class;
>4 set sashelp.class;
>NOTE: There were 19 observations read from the data set SASHELP.CLASS.
>NOTE: The data set DEMO.CLASS has 19 observations and 5 variables.
>NOTE: DATA statement used (Total process time):
> real time 0.16 seconds
> cpu time 0.04 seconds
>7 proc datasets library=demo;
>ERROR: Proc DATASETS is not able to process a sequential library.
> Consider using Proc CONTENTS and/or Proc COPY.
>NOTE: Statements not processed because of errors noted above.
>8 copy out=work;
>That's where SAS stopped. Then I submitted the 9th line, and the following
>appeared in the log:
>NOTE: Input library DEMO is sequential.
>NOTE: Copying DEMO.CLASS to WORK.CLASS (memtype=DATA).
>NOTE: BUFSIZE is not cloned when copying across different engines.
> System Option for BUFSIZE was used.
>NOTE: There were 19 observations read from the data set DEMO.CLASS.
>NOTE: The data set WORK.CLASS has 19 observations and 5 variables.
>NOTE: The SAS System stopped processing this step because of errors.
>NOTE: PROCEDURE DATASETS used (Total process time):
> real time 35.45 seconds
> cpu time 0.15 seconds
>WORK.CLASS materialized. So, SAS performed the copy despite saying that it
>couldn't/wouldn't, but it did not do so until the QUIT statement was
>V 9.1.3; Win2K