View previous topic :: View next topic
|
Author |
Message |
vasanthz
Global Moderator
Joined: 28 Aug 2007 Posts: 1744 Location: Tirupur, India
|
|
|
|
Hi,
There is a JCL DD statement which allocates a TEMP file with DISP=MOD.
Code: |
//TEMP DD DSN=&&TEMP,DISP=(MOD,PASS),SPACE=(TRK,(5,2)),
// DCB=(RECFM=VB,LRECL=2500,BLKSIZE=27998) |
I need to convert this into SAS FILENAME statement.
Tried the below code as given in support.sas.com/documentation/cdl/en/hosto390/61886/HTML/default/viewer.htm#mvs-allexf-ufs.htm
Code: |
FILENAME TEMP '&TEMP' DISP=NEW SPACE=(TRK,(3,1))
LRECL = 2500 RECFM = VB BLKSIZE = 27998;
FILENAME TEMP '&TEMP' DISP=MOD; |
But this file is still being written in DISP=OLD.
Test program:
Code: |
FILENAME TEMP '&TEMP' DISP=NEW SPACE=(TRK,(3,1))
LRECL = 2500 RECFM = VB BLKSIZE = 27998;
FILENAME TEMP '&TEMP' DISP=mod;
/* this step writes one record into temp file */
data think;
file temp;
put ' hello';
run;
/* this step writes second record into temp file */
data next;
file temp;
put 'world';
run;
/* this step reads the temp file and wrrites it into log */
data _null_;
infile temp;
input;
put _infile_;
run; |
Expected output in SAS log:
Actual output in SAS log:
Could you please let me know how to allocate a TEMP file with DISP=MOD in SAS. I cannot use JCL since there are a lot of TEMP files and the number of temp datasets are dynamic.
Thanks & Regards, |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
What about coding a disposition for termination? KEEP? |
|
Back to top |
|
|
vasanthz
Global Moderator
Joined: 28 Aug 2007 Posts: 1744 Location: Tirupur, India
|
|
|
|
Hello Bill,
Yup tried coding termination parameter as well. Still the same issue.
The file is being treated as disp = old.
Thanks, |
|
Back to top |
|
|
vasanthz
Global Moderator
Joined: 28 Aug 2007 Posts: 1744 Location: Tirupur, India
|
|
|
|
Hello,
This method worked.
Mentioning MOD in the FILE statement.
Code: |
FILENAME TEMP '&TEMP' DISP=NEW SPACE=(TRK,(3,1))
LRECL = 2500 RECFM = VB BLKSIZE = 27998;
/* this step writes one record into temp file */
data think;
file temp mod;
put 'hello';
run;
/* this step writes second record into temp file */
data next;
file temp mod;
put 'world';
run;
/* this step reads the temp file and wrrites it into log */
data _null_;
infile temp;
input;
put _infile_;
run; |
Regards, |
|
Back to top |
|
|
|