Created On:  10 September 2012

Problem:

Customer has Oracles Pro*COBOL installed and is using the COBSQL option of Net Express to invoke the precompiler when compiling embedded SQL programs under Windows.

Customer is getting following error from compiler:

* CSQL-I-020: Processing output of ORACLE8 Precompiler
* CSQL-I-027: Detected Working-Storage, now processing it
* CSQL-I-028: Now processing through Procedure Division
COBPR0000S 000008:Must use option SQLCHECK=SEMANTICS(FULL) when there is embedded PL/ : "C:\\Work\\Net Express Projects\\testeval.pco"(618,7)

* CSQL-I-001: Cobsql has finished returning to the Checker
Rebuild complete with errors
------------------------------------------

Customer asks, "How might I go about setting "SQLCHECK=SEMANTICS(FULL)"?
Should this be done in the cobol.dir file?

Resolution:

SQLCHECK=SEMANTICS or SQLCHECK=FULL are synonymous and are Oracle Pro*COBOL directives not COBOL or COBSQL directives.

From the Net Express docs:

For both project settings and Net Express Build settings, END-C and ENDP have the following effect:

Directives placed before END-C pass to COBSQL
Directives placed between END-C and ENDP pass via COBSQL to the precompiler
Directives placed after ENDP pass to the COBOL compiler.
Therefore, without the ENDP directive, compiler directives continue to pass to COBSQL rather than to the COBOL compiler.

So your command to add SQLCHECK=FULL as a precompiler option would be:

p(COBSQL) CSQLT=ORACLE8 CSTART CSTOP VERBOSE MAKESYN END-C SQLCHECK=FULL p(cp) ENDP