Examples using JCL for EXECSQL
- Contains a second job to execute the SQL against the target tables (by using an EXECSQL statement)
For an example that uses the BMC AMI Log Master online interface to execute SQL statements with EXECSQL, see Adding-an-execute-SQL-or-DDL-step-to-a-work-ID.
//**********************************************************************
//* BMC AMI Log Master for Db2 V13.01.00
//* DSN: 'DB2DBA.JCL.EXSQL(ESQL$E7)'
//* GENERATED BY USER: DB2DBA3
//**********************************************************************
//* >>>>> GENERATE MIGRATE SQL <<<<<
//**********************************************************************
//MIGSQL1 EXEC PGM=ALPMAIN,
// PARM='DGA1,,MSGLEVEL(2),ALPOPTS(ALP$OPTS)',REGION=0M
//STEPLIBDD DISP=SHR,DSN=product.libraries
//DD DISP=SHR,DSN=DB2.DSNEXIT
//DD DISP=SHR,DSN=DB2.DSNLOAD
//ALPPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//ALPDUMPDD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *,DLM=##
/* DB2DBA.$$WORKID0001 */
/* DB2DBA 2022-01-18 GENERATE MIGRATE SQL */
OPTION
FILTERREL AND EXECUTION MODE CURRENT
DATEFMT ISO
WORKID DB2DBA.$$WORKID0001
DESC 'DB2DBA GENERATE MIGRATE SQL'
LOGSCAN
SQL MIGRATE DATASET
DB2DBA.DEV.OUTSQ1 SHR
TEMPLATE
DB2DBA.DEV.OUTSQTE1 SHR
FROM DATE(01/18/2022) TIME(09.22.15.000000)
TO DATE(01/18/2022) TIME(09:23:45.000000)
WHERE
TABLE NAME IN (DB2DBADB.DB2DBAT1,
DB2DBADB.DB2DBAT3,
DB2DBADB.DB2DBAT5)
##
//SQLXLAT DD *
TABLE DB2DBADB.DB2DBAT1 -> DB2DBADB.MIGSQLT1
TABLE DB2DBADB.DB2DBAT3 -> DB2DBADB.MIGSQLT3
TABLE DB2DBADB.DB2DBAT5 -> DB2DBADB.MIGSQLT5
//**********************************************************************
//* BMC AMI Log Master for Db2 V13.01.00
//* DSN: 'DB2DBA.JCL.EXSQL(ESQL$E8)'
//* GENERATED BY USER: DB2DBA3
//**********************************************************************
//* >>>>> EXECUTE MIGRATE SQL <<<<<
//**********************************************************************
//EXESQL1 EXEC PGM=ALPMAIN,
// PARM='DGA1,,MSGLEVEL(2),ALPOPTS(ALP$OPTS)',REGION=0M
//STEPLIBDD DISP=SHR,DSN=product.libraries
//DD DISP=SHR,DSN=DB2.DSNEXIT
//DD DISP=SHR,DSN=DB2.DSNLOAD
//ALPPRINT DD SYSOUT=*
//SQLPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *,DLM=##
/* DB2DBA.$$WORKID0002 */
/* DB2DBA 2022-01-18 EXECUTE GENERATED SQL*/
OPTION
FILTERREL AND EXECUTION MODE CURRENT
DATEFMT ISO
WORKID DB2DBA.$$WORKID0002
DESC 'DB2DBA EXECUTE GENERATED SQL'
EXECSQL DB2DBA.DEV.OUTSQ1 SQLPRINT (ALL)
##
//SQLCODES DD *
INSERT (-803) = WARN
UPDATE (+100) = IGNORE
//* BMC AMI Log Master for Db2 V13.01.00
//* DSN: 'DB2DBA.JCL.EXSQL(ESQL$E7)'
//* GENERATED BY USER: DB2DBA3
//**********************************************************************
//* >>>>> GENERATE MIGRATE SQL <<<<<
//**********************************************************************
//MIGSQL1 EXEC PGM=ALPMAIN,
// PARM='DGA1,,MSGLEVEL(2),ALPOPTS(ALP$OPTS)',REGION=0M
//STEPLIBDD DISP=SHR,DSN=product.libraries
//DD DISP=SHR,DSN=DB2.DSNEXIT
//DD DISP=SHR,DSN=DB2.DSNLOAD
//ALPPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//ALPDUMPDD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *,DLM=##
/* DB2DBA.$$WORKID0001 */
/* DB2DBA 2022-01-18 GENERATE MIGRATE SQL */
OPTION
FILTERREL AND EXECUTION MODE CURRENT
DATEFMT ISO
WORKID DB2DBA.$$WORKID0001
DESC 'DB2DBA GENERATE MIGRATE SQL'
LOGSCAN
SQL MIGRATE DATASET
DB2DBA.DEV.OUTSQ1 SHR
TEMPLATE
DB2DBA.DEV.OUTSQTE1 SHR
FROM DATE(01/18/2022) TIME(09.22.15.000000)
TO DATE(01/18/2022) TIME(09:23:45.000000)
WHERE
TABLE NAME IN (DB2DBADB.DB2DBAT1,
DB2DBADB.DB2DBAT3,
DB2DBADB.DB2DBAT5)
##
//SQLXLAT DD *
TABLE DB2DBADB.DB2DBAT1 -> DB2DBADB.MIGSQLT1
TABLE DB2DBADB.DB2DBAT3 -> DB2DBADB.MIGSQLT3
TABLE DB2DBADB.DB2DBAT5 -> DB2DBADB.MIGSQLT5
//**********************************************************************
//* BMC AMI Log Master for Db2 V13.01.00
//* DSN: 'DB2DBA.JCL.EXSQL(ESQL$E8)'
//* GENERATED BY USER: DB2DBA3
//**********************************************************************
//* >>>>> EXECUTE MIGRATE SQL <<<<<
//**********************************************************************
//EXESQL1 EXEC PGM=ALPMAIN,
// PARM='DGA1,,MSGLEVEL(2),ALPOPTS(ALP$OPTS)',REGION=0M
//STEPLIBDD DISP=SHR,DSN=product.libraries
//DD DISP=SHR,DSN=DB2.DSNEXIT
//DD DISP=SHR,DSN=DB2.DSNLOAD
//ALPPRINT DD SYSOUT=*
//SQLPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *,DLM=##
/* DB2DBA.$$WORKID0002 */
/* DB2DBA 2022-01-18 EXECUTE GENERATED SQL*/
OPTION
FILTERREL AND EXECUTION MODE CURRENT
DATEFMT ISO
WORKID DB2DBA.$$WORKID0002
DESC 'DB2DBA EXECUTE GENERATED SQL'
EXECSQL DB2DBA.DEV.OUTSQ1 SQLPRINT (ALL)
##
//SQLCODES DD *
INSERT (-803) = WARN
UPDATE (+100) = IGNORE
The following table compares this example using the EXECSQL method with examples that perform the same basic tasks using other methods.
Example figure | Method | Differences |
---|---|---|
The JCL sample in Example-2-High-speed-Apply-Engine-JCL-generated-by-the-online-interface | Generated High-speed Apply Engine JCL |
|
The JCL sample in Example-using-independently-coded-High-speed-Apply-Engine-JCL | Independently coded High-speed Apply Engine JCL |
|
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*