IBM Mainframe Forum Index
 
Register
 
IBM Mainframe Forum Index Mainframe: Search Log in to check your private messages Log in
 

SAS - Temp dataset with DISP=MOD


IBM Mainframe Forums -> All Other Mainframe Topics
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
vasanthz

Global Moderator


Joined: 28 Aug 2007
Posts: 1689
Location: Tiruppur, India

PostPosted: Tue Jun 24, 2014 2:00 am
Reply with quote

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 Use [URL] BBCode for Links
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:
Code:
hello
world

Actual output in SAS log:
Code:
world


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
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7312
Location: Inside the Matrix

PostPosted: Tue Jun 24, 2014 2:23 am
Reply with quote

What about coding a disposition for termination? KEEP?
Back to top
View user's profile Send private message
vasanthz

Global Moderator


Joined: 28 Aug 2007
Posts: 1689
Location: Tiruppur, India

PostPosted: Tue Jun 24, 2014 11:59 am
Reply with quote

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
View user's profile Send private message
vasanthz

Global Moderator


Joined: 28 Aug 2007
Posts: 1689
Location: Tiruppur, India

PostPosted: Tue Jun 24, 2014 7:19 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> All Other Mainframe Topics

 

Search our Forum:

Similar Topics
Topic Forum Replies
No new posts Fetch the Dataset names from inside m... TSO/ISPF 18
No new posts what is the DSORG(Datset orgnisation)... JCL & VSAM 8
No new posts IEBGENER is not Creating Member in PD... JCL & VSAM 7
No new posts Warning in dataset message TSO/ISPF 18
No new posts Copy a dataset without authorization TSO/ISPF 15

Back to Top