预编译是通过适当的COBOL调用替换COBOL-DB2程序中使用的SQL语句的过程。在实际编译之前必须进行预编译,因为COBOL编译器无法识别DB2 SQL语句,并且由于这些语句将引发错误。
DB2实用程序DSNHPC用于预编译。对于在COBOL-DB2程序和COBOL-DB2源程序(在SYSIN中)使用的各个表,预编译JCL步骤的输入是DCLGEN(在SYSLIB中)。
//STEP010 EXEC PGM=IKJEFT01 //SYSIN DD DSN=DIS.TEST.COBOL(PSNEW2),DISP=SHR //SYSLIB DD DSN=DIS.TEST.DCLGEN(PSDC2), DISP=SHR //DBRMLIB DD DSN=DIS.TEST.DBRMLIB(PSNEW2),DISP=SHR //SYSCIN DD DSN=DIS.TEST.COBL(PSCOB2), DISP=(NEW,CATLG,DEL), SPACE=(20, (90,90)) //SYSOUT DD SYSOUT=*
一旦执行此JCL步骤,我们将收到以下两个主要元素-
DBRMLIB中接收DBRM,该DBRMLIB包含程序中存在的所有SQL语句。在BIND步骤中进一步使用DBRM来获得PLAN或PACKAGE。
修改后的COBOL源程序在SYSCIN中接收,该程序将所有SQL语句替换为COBOL调用。修改后的源代码将被进一步编译和链接编辑。