Examples using JCL for EXECSQL
This example:
Includes three tables
Contains one job that generates SQL statements and translates the table names during generation (by including the SQLXLAT DD statement)
Contains a second job to execute the SQL against the target tables (by using an EXECSQL statement)
For an example that uses the 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 V12.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
//STEPLIB DD DISP=SHR,DSN=product.libraries
// DD DISP=SHR,DSN=DB2.DSNEXIT
// DD DISP=SHR,DSN=DB2.DSNLOAD
//ALPPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//ALPDUMP DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *,DLM=##
/* DB2DBA.$$WORKID0001 */
/* DB2DBA 2020-08-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(08/18/2020) TIME(09.22.15.000000)
TO DATE(08/18/2020) 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 V12.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
//STEPLIB DD 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 2020-08-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 JCL generated by the online interface | Generated High-speed Apply JCL |
|
The JCL sample in Example using independently coded High-speed Apply JCL | Independently coded High-speed Apply JCL |
|
Comments
Log in or register to comment.