Db2 coprocessor

When you use the Db2® coprocessor (called SQL statement coprocessor by Db2), the compiler handles your source programs that contain embedded SQL statements without your having to use a separate precompile step.

To use the Db2 coprocessor, specify the SQL compiler option.

When the compiler encounters SQL statements in the source program, it interfaces with the Db2 coprocessor. All text between EXEC SQL and END-EXEC statements is passed to the coprocessor. The coprocessor takes appropriate actions for the SQL statements and indicates to the compiler which native COBOL statements to generate for them.

Although the use of a separate precompile step continues to be supported, it is recommended that you use the coprocessor instead:

  • Interactive debugging with Debug Tool is enhanced when you use the coprocessor because you see the SQL statements (not the generated COBOL source) in the listing.
  • The COBOL compiler listing includes the error diagnostics (such as syntax errors in the SQL statements) that the Db2 coprocessor generates.
  • Certain restrictions on the use of COBOL language that apply when you use the precompile step do not apply when you use the Db2 coprocessor. With the coprocessor:
    • You can use SQL statements in any nested program. (With the precompiler, SQL statements are restricted to the outermost program.)
    • You can use SQL statements in copybooks.
    • REPLACE statements work in SQL statements.

Compiling with the Db2 coprocessor generates a Db2 database request module (DBRM) along with the usual COBOL compiler outputs such as object module and listing. The DBRM writes to the data set that you specified in the DBRMLIB DD statement in the JCL for the COBOL compile step. As input to the Db2 bind process, the DBRM data set contains information about the SQL statements and host variables in the program.

related concepts  
COBOL and Db2 CCSID determination