Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

I need to write into a flat file ( REXX and SQL Combination)

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2
View previous topic :: :: View next topic  
Author Message
Vallabhaneni

New User


Joined: 30 Sep 2006
Posts: 4

PostPosted: Thu Jan 15, 2009 10:30 pm    Post subject: I need to write into a flat file ( REXX and SQL Combination)
Reply with quote

Please see below my code. It's working fine, but I need to write the output into the flat file from the SQL.
Code:

/*REXX*/                                       
ADDRESS TSO "SUBCOM DSNREXX"                   
IF RC <> 0 THEN DO                             
   S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')   
   IF S_RC <> 0 THEN                           
      SAY 'PROBLEM LOADING DB2 ENVIRONMENT'     
   ELSE                                         
      SAY 'SUCCESS'                             
   END                                         
ELSE                                           
  ADDRESS DSNREXX                               
  "CONNECT" DB2P                               
  IF RC = 0 THEN DO                             
   SAY RC                                       
   SAY SQLCODE                                 
 SQLSTMT = "SELECT *                           
 FROM QUALIF.XXXXX_XXX_TABLE                   
 WHERE XXXXXXXXX_CD = 300 "                     
ADDRESS DSNREXX "EXECSQL PREPARE S4 INTO :TBSQLDA FROM :SQLSTMT"
ADDRESS DSNREXX "EXECSQL DECLARE C4 CURSOR FOR S4"             
ADDRESS DSNREXX "EXECSQL OPEN C4"                               
DO UNTIL (SQLCODE <> 0)                                         
ADDRESS DSNREXX "EXECSQL FETCH C4 USING DESCRIPTOR :TBSQLDA"   
IF SQLCODE = 0 THEN DO                                         
LINE = ' '                                                     
DO I = 1 TO TBSQLDA.SQLD                                       
/*            SAY "  > COLUMN NUMBER: " I  */                   
/*            SAY "    COLUMN VALUE:  " TBSQLDA.I.SQLDATA*/     
LINE = LINE HUDAVK.REXX.OUTPUT1                                 
END I                                                           
END                                                             
END                                                             
ADDRESS DSNREXX "EXECSQL CLOSE C4"                             
ADDRESS DSNREXX "DISCONNECT"                                   
S_RC = RXSUBCOM('DELETE','DSNREXX','DSNREXX')                   
END   
Back to top
View user's profile Send private message

dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Fri Jan 16, 2009 12:54 am    Post subject:
Reply with quote

Hello,

If you run this in batch, you should be able to capture the output in a dataset rather than a sysout=.
Back to top
View user's profile Send private message
technut

New User


Joined: 27 Dec 2007
Posts: 73
Location: India

PostPosted: Fri Jan 16, 2009 3:19 pm    Post subject: Reply to: I need to write into a flat file ( REXX and SQL Co
Reply with quote

Code:
 DO I = 1 TO TBSQLDA.SQLD                                               
 /*            SAY "  > COLUMN NUMBER: " I  */                         
 /*            SAY "    COLUMN VALUE:  " TBSQLDA.I.SQLDATA*/           
 DATA = TBSQLDA.I.SQLDATA                                               
 QUEUE DATA                                                             
 END I                                                                 
 END                                                                   
 END                                                                   
 END                                                                   
 ADDRESS DSNREXX "EXECSQL CLOSE C4"                                     
 ADDRESS DSNREXX "DISCONNECT"                                           
 S_RC = RXSUBCOM('DELETE','DSNREXX','DSNREXX')                         
 END                                                                   
QUEUE ''                                                               
ADDRESS "TSO"                                                           
"PROFILE NOPREFIX"                                                     
SYSTSPRT_NAME = STRIP(SYSVAR(SYSUID)) || '.TEST.FILE'                 
SAY SYSTSPRT_NAME                                                       
IF SYSDSN(SYSTSPRT_NAME) ¬= 'OK' THEN     
   DO                                                                   
     "ALLOC F(SYSTSPRT) DA(" SYSTSPRT_NAME ") NEW SPACE(1,1) CYLINDERS 
      DSORG(PS) LRECL(133) BLKSIZE(1330)"                               
   END                                                                 
 IF SYSDSN(SYSTSPRT_NAME) = 'OK' THEN                                   
    DO                                                                 
      "ALLOC F(SYSTSPRT) DA(" SYSTSPRT_NAME ") SHR REU"                 
    END                                                                 
 "EXECIO * DISKW SYSTSPRT ( FINIS"                                     
 "DELSTACK"                                                             
 "FREE FI(SYSTSPRT)"                                                   
 "ISPEXEC BROWSE DATASET('" || SYSTSPRT_NAME || "')"                   
 EXIT 0                                                                                               

Try the above code..
This worked for me. Depending on the way you want the output to be displayed in the file, you can manipulate TBSQLDA.I.SQLDATA .

If you run the above code, data for all the columns in the TABLE gets written into the output file line after line.

Let me know if this works for you..
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2 All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts SORTJOIN - Copy Matched and Unmatched... Steve Ironmonger DFSORT/ICETOOL 0 Tue Jan 17, 2017 4:26 pm
This topic is locked: you cannot edit posts or make replies. Calling REXX code from ISPF panel sanchita dey TSO/ISPF 4 Mon Jan 02, 2017 5:13 pm
No new posts Copy RECFM =VB TO FB file with RECL =... sahil41352 DFSORT/ICETOOL 3 Wed Dec 28, 2016 11:29 pm
No new posts REXX DB2: Dynamic allocation of DB2.D... BHAS CLIST & REXX 3 Mon Dec 19, 2016 8:26 pm
No new posts find particular member name in PDS us... ravi243 CLIST & REXX 10 Mon Dec 19, 2016 6:44 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us