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
--------------
STATUS RDBMS PRO*COB
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
None.
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,
EXEC SQL PREPARE S1 FROM
DECLARE
CURSOR C1 IS SELECT 0 FROM DUAL;
BEGIN
FOR R1 IN C1 LOOP
NULL;
END LOOP;
END;
END-EXEC.
generated incorrect code as:
01 SQ0001.
02 FILLER PIC X(68) VALUE "DECLARECURSORC1ISSELECT0FROMDUAL;
- "BEGINFORR1INC1LOOPNULL;ENDLOOP;END;".
which generated runtime errors.
With the fix, following correct code is being
generated:
01 SQ0001.
02 FILLER PIC X(82) VALUE "DECLARE CURSOR C1 IS SELECT 0 FRO
- "M DUAL;BEGIN FOR R1 IN C1 LOOP
NULL;END LOOP;END;".
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
--------------------------
None.
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.
01 PASSWD PIC X(8) VALUE.
369866 EXEC SQL EXECUTE IMMEDIDATE with LITDELIM=QUOTE resulted in an
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
retrieved.
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:
...
EXEC SQL EXECUTE S USING :a, :b;
...
EXEC SQL EXECUTE S;
...
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
error.
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)
EXECUTE s
PREPARE s for select . . .
DECLARE c1 cursor for s
OPEN c1
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.