REXX to Connect with DB2
REXX AND THE CORRESPONDING JCL TO CONNECT TO DB2 IN BATCH
The following piece of rexx code can be used to connect with the DB2 database.
REXX Code for Connecting with DB2
/* REXX *//* DEFINING SUBSYSTEM */SUBSYS = DB2T/* DEFINING THE QUERY */QUERY = "SELECT EMP_NUM","FROM MBQV1D0A.EMP","WHERE EMP_NUM='1000'"ADDRESS TSO "SUBCOM DSNREXX" /* HOST CMD ENV AVAILABLE ? */IF RC THEN S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')ADDRESS DSNREXX "CONNECT" SUBSYSIF SQLCODE <> 0 THEN COUTPUT SQLCAADDRESS DSNREXX "EXECSQL DECLARE C1 CURSOR FOR S1"IF SQLCODE <> 0 THEN CALL SQLCAADDRESS DSNREXX "EXECSQL PREPARE S1 FROM :QUERY"IF SQLCODE <> 0 THEN CALL SQLCAADDRESS DSNREXX "EXECSQL DESCRIBE S1 INTO :OUTPUT"IF SQLCODE <> 0 THEN CALL SQLCAADDRESS DSNREXX "EXECSQL OPEN C1"IF SQLCODE <> 0 THEN CALL SQLCADO UNTIL(SQLCODE <> 0)ADDRESS DSNREXX "EXECSQL FETCH C1 USING DESCRIPTOR :OUTPUT"IF SQLCODE = 0 THENDODO I = 1 TO OUTPUT.SQLDSAY " > COLUMN NUMBER: " ISAY " COLUMN NAME: " OUTPUT.I.SQLNAMESAY " COLUMN TYPE: " OUTPUT.I.SQLTYPESAY " COLUMN VALUE: " OUTPUT.I.SQLDATAENDENDENDRETURN
JCL for connecting REXX with DB2
; ; ; ;
//REXXJCL JOB (XXXXXXXX,,,,,XXXX),' ',CLASS=T,// MSGCLASS=Y,NOTIFY=&SYSUID//STEP1 EXEC PGM=IKJEFT01,PARM='REXXDB2'//STEPLIB DD DISP=SHR,DSN=XXXDB2.YYYT.SDSNEXIT// DD DISP=SHR,DSN=XXXDB2.YYYT.SDSNLOAD//SYSPRINT DD SYSOUT=*//SYSTSIN DD DUMMY//SYSTSPRT DD SYSOUT=*//SYSEXEC DD DSN=USERID.ABC.REXXLIB,DISP=SHR