Appendix C. Merge in place: Defining source objects in target system 201
S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
ADDRESS DSNREXX
/*******************************************************************/
/* Connect to TARGET DB2 subsystem */
/*******************************************************************/
'CONNECT' METADATA_SSID
/***************************************************************/
/* Setup the cursor for reading from the ZMCOD_DATABASE table */
/* The ZMCOD_DATABASE table contains one row for every database*/
/* being merged. */
/***************************************************************/
SQLSTMT = "SELECT SRCDBNAME, SRCRELEASE, SRCSSID, TRGDBNAME, "
SQLSTMT = SQLSTMT " TRGRELEASE, TRGSCHEMA, SRCSTOGROUP, "
SQLSTMT = SQLSTMT " TRGSTOGROUP, SRCSCHEMA "
SQLSTMT = SQLSTMT " FROM " METADATA_OWNER".ZMCOD_DATABASE "
SQLSTMT = SQLSTMT " ORDER BY SRCDBNAME "
/* SAY "JCLGEN SQLSTMT is " SQLSTMT */
"EXECSQL DECLARE C1 CURSOR FOR S1"
IF SQLCODE <> 0 THEN
DO
SAY "JCLGEN SQLCODE from DECLARE is "SQLCODE SQLERRMC SQLERRD.5
EXIT(12)
END
ELSE NOP
"EXECSQL PREPARE S1 FROM :SQLSTMT"
IF SQLCODE <> 0 THEN
DO
SAY "JCLGEN SQLCODE from PREPARE is "SQLCODE SQLERRMC SQLERRD.5
EXIT(12)
END
ELSE NOP
/* Open Cursor */
"EXECSQL OPEN C1"
IF SQLCODE <> 0 THEN
DO
SAY "JCLGEN SQLCODE from OPEN is "SQLCODE SQLERRMC SQLERRD.5
EXIT(12)
END
ELSE NOP
/***************************************************************/
/* Loop through each database record */
/***************************************************************/
"EXECSQL FETCH C1 INTO " || ,