o Overview


Version 1.8 of Pro*COBOL is retained for backwards compatibility

purposes. Users are encouraged to upgrade to Pro*COBOL 8.0 which

has many new features. Please refer to the Pro*COBOL 8.0 readme.doc

in %ORACLE_HOME%\pro80\cobol for details.

Note: Oracle Pro*COBOL 1.8.27 overwrites the previously installed

Oracle Pro*COBOL 1.8.4 in the same Oracle Home.

o Version Matrix



Production 8.0.5 1.8.27

Production 8.0.4 1.8.26

Production 8.0.3 1.8.25

Production 7.3.4 1.8.4

o Desupport Notification for V6 Compatibility behavior


With Oracle7, Oracle offered a Version 6 [V6] Compatibility flag that

allowed application developers developing Oracle7 applications to

emulate Oracle6 behavior. With the release of Oracle8.0.3, users are

cautioned that the Version 6 compatibility flag is being desupported

effective immediately in all of the Oracle8 products including PL/SQL8,

all the Oracle Precompilers, the Oracle8 Oracle Call Interface,

SQL*Module, and SQL*PLUS. The desupport of the V6 compatibility flag

is consistent with Oracle's policy of supporting backwards compatibility

and behavior from one version release upgrade to another i.e. from

Oracle6 to Oracle7 but not for more than one version release upgrade.

Specifically, the V6 Compatibility flag emulated the following aspects of

Oracle6 behavior with Oracle7:

o String literals are fixed length in Oracle7 but are treated as variable

length with the V6 flag

o PL/SQL Local char variables are fixed length in Oracle7 but are treated

as variable length with the V6 flag.

o Return value of SQL Functions (e.g. USER) are fixed length characters

in Oracle7 but are treated as variable length characters with the V6 flag.

o Select/Fetch of a NULL with no indicator raises an ORA-1405 error with

Oracle7 but returns no error with the V6 flag.

o SQL group function is called at FETCH time with Oracle7 but is called at

query execution time with the V6 flag.

o Describe of a fixed length string returns Type=96 with Oracle7 but returns

Type=1 with the V6 flag.

All of these behaviors are being desupported with the desupport of the V6

Compatibility Flag with Oracle8.

o New Features for Version 1.8.6


o New Features for Version 1.8.25


Support for NCHAR data in Pro*COBOL

NCHAR data is now fully supported by the kernel. Previous releases

of the precompiler supported this datatype with the NLS_LOCAL option.

For new applications, users are strongly encouraged to rely on the

database support and accordingly set NLS_LOCAL=NO during precompilation.

* Note: In all the following bug descriptions, when the product name

(e.g. Pro*COBOL) is not mentioned the fix is applicable to

generic Pro* version 1.

o Changes for version 1.8.27


644711 Incorrect code was generated when PREPARE or EXECUTE IMMEDIATE

used an unquoted string. All the spaces used as a separation

of words in a string were removed.

For example,










generated incorrect code as:

01 SQ0001.



which generated runtime errors.

With the fix, following correct code is being generated:

01 SQ0001.



642112 When the connection was not made through embedded sql connect

statement, sqllib returned ORA-01012 error message.

622811 A memory leak occurred when a cursor was closed.

606918 Pro*COBOL generated incorrect code for VARYING variables when an

element of the generated group item exceeded one line. In a

multi-byte environment, the line break could have occurred between

bytes of a multi-byte character, causing compile time errors.

583044 VARCHAR host variables in CALL statements were not properly expanded

and were eliminated by the optimization process of the COBOL compiler.

This resulted in incorrect execution of SQL statement.

553658 Core dump was seen on NT platform with an application that used the

precompiler options nls_char and nls_local. In NT multi-threaded

applications the global runtime context did not get correct

nls_char and nls_local information, leading to a core dump.

549812 Pro* core dumped when three or more names(e.g., x x x) were given as

file names. When Pro* processes command line options, it expects one

input file name and one output file name. Pro* has been modified to

allow more than two filenames on command line with the appropriate

error message.

480085 Pro*COBOL: Did not issue an error message when include file did not

exist. When the file to be included did not exist in any of the

include directories or in the local directory, following error message

is being generated:

PCC-S-0013: Unable to open include file "..." at line ...

in file sample.pco

o Changes for version 1.8.26



o Changes for version 1.8.25


480085 Pro*COBOL did not issue error message when include file did not exist.

397677 Pro*COBOL generated incorrect code for type equivalenced implicit

varchar host variables. This resulted in an ORA-1465 error at runtime.

383782 Pro*COBOL sometimes generated code for cursor declarations that

went beyond column 72.

372681 Pro*COBOL generated incorrect code when the END-EXEC was

followed by spaces instead of a period (.).

369874 Pro*COBOL generated incorrect code when a host variable had

no value in the VALUE clause. e.g.



apostrophe used a the delimiter.

369862 The wrong value for MAXLITERAL appeared in the listing file.

369858 Pro*COBOL ignored inline specification of the LITDELIM option.

366790 Pro*COBOL seg faulted when sequence numbers appeared on a line with

a varchar (PIX VARYING) declaration.

345014 Pro*COBOL generated incorrect code for embedded SQL statements of

exactly 33 characters when FORMAT=TERMINAL. This resulted in

compilation errors.

319845 Pro*COBOL seg faulted when input file name length exceeded 100

characters. If user provided an input filename (which includes

the input filename path) and it happened to be over 100 characters

long, the precompiler seg faulted due to an internal limit of

100 characters.

o Changes for version 1.8.2/1.6.26


46734 The precompiler was not producing an error message when there was

a syntax error after the USING clause in the EXECUTE statement.

The error was not detected at precompile time but resulted in an

error at runtime.

63012 Unless the application uses release_cursor=yes when a cursor is closed,

subsequent fetches did not return an error and the data was successfully


161029 Pro*Cobol was wrongly producing an error when the USAGE IS DISPLAY

clause was being used with PIC X(n) declarations.

228054 Pro*Cobol did not preserve the user's indentation of the varchar

(varying) declarations. This enhancement will now preserve the

user's indentation in the generated code.

244692 Pro*COBOL seg faulted when the CURRENT OF clause was misspelled.

272453 Precompiler help screen was too crowded and the syntax for the

values for sqlcheck was not clear. Help screen has been reformatted.

277841 If no connection could be established, a generic error message was

returned in the sqlca. This could happen if, for example, the

TWO_TASK environment variable is set to an incorrect value.

Now, a generic error message will only be returned if no connection

can be established and no message files exist on the client side.

280423 Pro*Cobol generated incorrect PIC X declarations. Both the size of

PIC X variable and the length of the string value were incorrect

when the maxliteral was specified.

282466 The precompiler was generating bind vars for the plain EXECUTE statement

(which does not have the USING clause). The problem was occurring when

the same statement name was used in an EXECUTE USING statement then

in the plain EXECUTE statement such as:






286704 Pro*Cobol was generating the SQLCTX initialization with a very large

value, too large for the size of the variable. SQLCTX is declared

of type S9(9) and the value being assigned into it was 10 digits.

286765 When binding host arrays to PL/SQL tables through dynamic SQL, runtime

errors would result.

287771 Upon a disconnect, the shadow process remained alive until either a

reconnect or process termination.

288212 The included files for dynamic method 4 bind and select descriptors need

port specific changes for 64 bit architecture machines.

289201 Runtime errors were generated for precompiler applications generated

from very large (~> 100,000 lines) pro* source files.

291358 Pro*Cob did not comment out the conditional precompilation statements

(EXEC ORACLE IFDEF/DEFINE/ELSE/ENDIF) when the "." (period) was missing

from the END-EXEC of those statements, thus creating a compile-time


293284 When an exec tools message in Pro*Cobol extended beyond the end of coding

area (column 72) an internal error message was issued.

297549 The error messages on the screen showed the incorrect error line,

usually the line following the actual line which contained the error.

This problem only occurred in Pro*Cobol.

299716 Pro*Cobol was changing the / (slash) in column 7 to * (asterisk) when

the line(s) followed any EXEC SQL statements, varchar declarations,

or comment lines that follow any EXEC SQL stmt or varchar declarations.

308436 The precompiler did not allow input file names exceeding 30 characters.

This problem effected 1.6.8+ and 1.8 beta versions.

308877 Pro*COBOL could not handle comment entries properly in the IDENTICATION

DIVISION. Comment entries can include any of the ASCII characters and

are only allowed in the IDENTIFICATION DIVISION.

o Changes for version 1.7.3/1.6.9


234550 Pro*Cobol generated wrong string continuation with format=terminal.

264560 Using EXEC SQL INCLUDE SQLCA with FORMAT=TERMINAL did not work when

COMP5=YES was also used.

265143 Pro*Cobol did string continuation based on columns instead of bytes,

which caused problems for COBOL compilers that limit the line

length to 72 *bytes* not columns.

275498 Precompilers seg faulted when statement had undeclared SQL identifier

instead of giving an error. For example, in the following statement

"exec sql update emp set sal = 8000 where current of S;", if S was

not a declared cursor, the precompilers seg faulted instead of giving

and undeclared SQL identifier error.

277265 Precompiler host option values needed to be language specific.

278919 Reusing the same statement identifier sometimes resulted in ORA-2117.

The following sequence of statements resulted in an ORA-2117 error if

application precompiled with mode=ansi:

PREPARE s for . . . (e.g. an insert)


PREPARE s for select . . .

DECLARE c1 cursor for s


280423 Pro*Cobol generated incorrect PIC X declarations for multi-byte input

when maxliteral was specified. Both the size of PIC X variables and

the length of the string value were incorrect.

286704 Pro*Cobol was generating the SQLCTX initialization with a very large

value, too large for the size of the variable. SQLCTX is declared

of type S9(9) and the value being assigned into it was 10 digits.

289201 Runtime errors were generated for precompiler applications generated

from very large (~> 100,000 lines) pro* source files.

o Selected bug fixes for version 1.7.2/1.6.8


159536 PRO* did not FIPS flag CREATE TRIGGER/PROCEDURE/etc. when FIPS=YES

187108 Error in sample10.ppl caused process crash on VMS platform.

227880 sample10.pco needed changes to work on 64 bit architectures.

227882 sample10.pco needed changes to work on 64 bit architectures.

240736 Unable to use type long varchar for host variable in PREPARE stmt.

249976 The saved statement text in the ORACA (ORASTXTC) was not always correct.

250474 Parse errors occurred with long SQL statements and AUTO_CONNECT=YES

252217 Prototypes in sqlcpr.h were different from those in generated code.

252492 ANSI-style prototypes were missing from the public header sqlcpr.h

252654 PRO*1.6 did not use SQLCODE var when not declared in DECLARE SECTION

259349 An error was not given when the filename length > maximum length.

260457 The oracle_forms.message procedure did not always complete successfully.

261282 The usage of precompiler command line options was not properly checked.

262332 Pro* did not prompt for password when not given in userid option

264068 EXEC SQL IFDEF of EXEC TOOLS statements did not work correctly

265136 Pro*Cobol generated bad sql statement when given maxlit in multibyte env

265424 Spurious precompilation errors given sometimes using SQL functions

270254 ORA-2100 error generated if number of open cursors exceeded MaxCur.

o Selected bug fixes for version 1.6.7 or prior


273548 code=ansi_c gives incorrect type of sqlstm.stmt (Pro*C)

256436 Exec SQL TYPE Varchar gets zero length in generated code (Pro*C)

240736 Error 2108 when preparing a statement from a long varchar host variable

227634 Program dumps core if run without a valid database connection

226183 Pro*Cobol seg faults with sqlcheck=full and undeclared host variable

219215 Reprepare/reexecute after reconnect on timeout results in ORA-1012/1001

217245 Cursors were marked as open even if the open failed.

210998 Access violation when multisubprog=no and no DECLARE section in input

209717 No error given if the dimensions of host and indicator arrays differ

206153 Cursor status not maintained correctly for dynamic SQL in ANSI mode.

199380 Programs with COMMIT WORK got ORA-2114 errors if mode=ansi&hold_cur=yes

198808 Bad code generated when quote falls at the end of the line (Pro*Cobol)

192959 Pro*for pgms errored with multisub=no and reconnected to database.

191554 Compiler errors occurred in PRO*COB terminal format apps using ORACA

189568 PRO* runtime library generated more calls to the database than needed.

187443 Pro*Ada always re-parsed SQL statements, even with hold_cursor=yes.

184461 PRO*FOR generated empty COMMON statements when LANGUAGE=nationalcharst

183591 Use of pointers to VARCHAR arrays could cause various problems.

168678 SQLCHECK=SEMANTICS without userid ignores DECLARE TABLE statements

149317 Precompiler ignored errors in FETCH statements even when SQLCHECK=FULL.

147034 XA appl's could get ORA-1001 on 2nd exec of dynamic cursor.

135528 Attempts to reconnect failed if COMMIT/ROLLBACK work RELEASE failed.