View previous topic :: View next topic
|
Author |
Message |
Vallabhaneni
New User
Joined: 30 Sep 2006 Posts: 5
|
|
|
|
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 |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
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 |
|
|
technut
New User
Joined: 27 Dec 2007 Posts: 73 Location: India
|
|
|
|
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 |
|
|
|