Validation of SQL Moved From the Compilation Process to the Runtime in CCB V2.2,2.3 (Doc ID 1254054.1)

Last updated on OCTOBER 18, 2016

Applies to:

Oracle Utilities SDK - Version: 4.0.0 and later   [Release: 4.0 and later ]
Oracle Utilities Customer Care and Billing - Version: 2.3.0 and later    [Release: 2.3 and later]
Information in this document applies to any platform.

Goal

With the 1.5.20 compiler, the functionality of the sql check existed. With the 2.0.5 compiler the dead code was showing. These two behaviors don't exist anymore in 2.3. These two functionalities should not be suppressed. This decreases the quality of development.

Example of a compilation with the 1.5.20 compiler:


CERVIN:/logiciels/cordaptix/dev1020 $ co.sh -p CMP00M8N
100713.16:17:29 <info> co.sh : Compile Started mardi 13 juillet 2010 16 h 17 CEST
100713.16:17:29 <info> Build Directory = /logiciels/cordaptix/dev1020/cobol/build
100713.16:17:29 <info> Compiling for oracle database
100713.16:17:29 <info> Compilation requested by erozier for version V1.5.20.2
100713.16:17:29 <info> Environment dev1020
100713.16:17:29 <info> Using cobol directory /opt/microfocus/cobol
100713.16:17:29 <info> Using ORACLE_HOME directory /logiciels/oracle/ora_10.2.0
100713.16:17:29 <info> Lock File /logiciels/cordaptix/dev1020/cobol/build/Compiling.lock Already Exists.
100713.16:17:29 <info> Lock file existence means compile already in progress
100713.16:17:29 <info> Oracle Compile : SID = DE1020
100713.16:17:29 <info> Compiling one object only - CMP00M8N.pco
100713.16:17:30 <info> Program : CMP00M8N ; Expand Return Code.. : 0
100713.16:17:30 <info> Program : CMP00M8N ; Prepare Return Code. : 1
100713.16:17:30 <info> FINISHED COMPILATION

CERVIN:/logiciels/cordaptix/dev1020/cobol/build $ cat CMP00M8N.prepare.txt
Pro*COBOL: Release 10.2.0.1.0 - Production on Tue Jul 13 16:14:56 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
System default option values taken from: /logiciels/oracle/ora_10.2.0/precomp/admin/pcbcfg.cfg
Error at line 9568, column 12 in file CMP00M8N.pco
EXEC SQL
...........1
PCB-S-00576, PLS-417: unable to resolve "DT_FIN" as a column
Error at line 9568, column 12 in file CMP00M8N.pco
EXEC SQL
...........1
PCB-S-00576, PLS-0: SQL Statement ignored

There was a compilation error, due to a sql query with a column that doesn't exist on the database. When changing the code no ORA-00900 would be received.

With the 2.3 compiler the same component successfully compiles without check of the sql queries. There is a risk to obtain ORA-00900.

Example of a compilation with the 2.3 compiler:

TENIBRE:/pv2/logiciels/cordaptix/pv23D $ co.sh -p CMPBBILB
100713.15:59:34 <info> co.sh : Compile Started mardi 13 juillet 2010 15 h 59 CEST
100713.15:59:34 <info> Build Directory = /pv2/logiciels/cordaptix/pv23D/cobol/build
100713.15:59:34 <info> Compiling ...
100713.15:59:35 <info> Compilation requested by cissys for version V2.2.0
100713.15:59:35 <info> Environment pv23D
100713.15:59:35 <info> Using cobol directory /opt/SPLcobAS51
Java version = 1.5.0_16
Java vendor = Sun Microsystems Inc.
Java OS name = SunOS
Java OS arch = sparcv9
Java OS version = 5.10
100713.15:59:35 <info> Compiling one object only - CMPBBILB.pco
100713.15:59:36 <info> Program : CMPBBILB ; Expand Return Code.. : 0
100713.15:59:37 <info> Program : CMPBBILB ; Compile Return Code. : 0
100713.15:59:37 <info> Program : CMPBBILB ; Link not required
100713.15:59:37 <info> FINISHED COMPILATION

There is no Prepare section in the 2.3 compiler.

Something like this should be added on the co.sh :

CSPrepare="$SPLPROCOB MODE=ORACLE VARCHAR=YES DATE_FORMAT='YYYY-MM-DD-HH24.MI.SS\".000000\"' iname=$SPLPROG.$_COMPEXTprecompile oname=$SPLPROG.$_COMPEXTcompile sqlcheck=full userid=cisadm/cisadm"

For the dead code showing, no example of compilation is available, but the meaning is the same. It is needed to have a return code that indicates that there exist sections that are never called.

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms