1 Introducing Pro*COBOL

This chapter describes the Oracle programmatic interface for the COBOL language running on Windows operating systems.

This chapter contains these topics:

What is Pro*COBOL?

To access an Oracle database, you use a high-level query language called Structured Query Language (SQL). You often use SQL through an interactive interface, such as SQL*Plus.

Pro*COBOL is a programming tool that enables you to embed SQL statements in a COBOL program. The Pro*COBOL precompiler converts the SQL statements in the COBOL program into standard Oracle run-time library calls. The generated output file can then be compiled, linked, and run in the usual manner.

Use the Pro*COBOL precompiler when rapid development and compatibility with other systems are your priorities.

Release 1.8.77

Oracle Corporation expects that any application written for Pro*COBOL release 1.8.x should precompile successfully with Pro*COBOL release 9.2.0. However, some vendor extensions may not be accepted and the application may not precompile successfully when migrating from release 1.8.x to release 9.2.0.


Pro*COBOL Precompiler for Windows release 1.8.77 is now automatically installed with the Programmer installation type of the Oracle9i Client top-level component. You do not need to use the Custom installation type of the Oracle9i Client top-level component.

If you simply want to migrate a release 1.8.x application to release 9.2.0 without using any of the new features of Pro*COBOL release 9.2.0, but the application does not precompile successfully, then report the problem to Oracle Support Services.


Oracle Corporation recommends that you use release 9.2.0 to develop new applications.

Supported Compilers

Pro*COBOL supports the MERANT Micro Focus NetExpress version 3.1 for 32-bit Windows NT, Windows 2000, and Windows 98.


Pro*COBOL does not support Object Oriented COBOL (OOCOBOL) specifications.


Pro*COBOL supports the following:

  • Oracle databases release 8.1.x and higher

  • Embedded PL/SQL blocks

  • Bundled database calls, which can provide better performance in client/server environments

  • Full ANSI compliance for embedded SQL programming

  • Calls to PL/SQL stored procedures


Pro*COBOL does not support the following:

  • User exits

  • Access to the Oracle Call Interface

  • Oracle object types

  • Graphical user interface

  • 16-bit code generation

Directory Structure

When you install Pro*COBOL, Oracle Universal Installer creates a directory called \precomp in your ORACLE_BASE\ORACLE_HOME directory.


The \precomp directory can contain files for other products, such as Pro*C/C++.

The \precomp directory contains the directories listed in Table 1-1.

Table 1-1 Directories

Directory Name Contents


Configuration files


Sample programs for Pro*COBOL® release 9.2.0


Sample programs for Pro*COBOL® release 1.8.77


SQL scripts for sample programs


Readme files for Pro*COBOL® 9.2.0


Readme files for Pro*COBOL® 1.8.77


Library files


Message files


Header files

Header Files

The ORACLE_BASE\ORACLE_HOME\precomp\public directory contains the Pro*COBOL® header files listed in Table 1-2.

Table 1-2 Header Files

Header File Description


Contains the Oracle Communications Area (ORACA), which helps you to diagnose runtime errors and to monitor your program's use of various Oracle resources.


ORACA5 is the COMP-5 version of ORACA.


Contains the SQL Communications Area (SQLCA), which helps you to diagnose runtime errors. The SQLCA is updated after every executable SQL statement.


SQLCA5 is the COMP-5 version of SQLCA.


Contains the SQL Descriptor Area (SQLDA), which is a data structure required for programs that use dynamic SQL Method 4.


This is the COMP-5 version of SQLDA.

Library File

The ORACLE_BASE\ORACLE_HOME \precomp\lib directory contains the library file that you use when linking Pro*COBOL applications. The library file is called orasql9.lib.

Known Problems, Restrictions, and Workarounds

  1. Although all Windows operating systems allow spaces in filenames and directory names, the Oracle Pro*C/C++ and Oracle Pro*COBOL precompilers will not precompile files that include spaces in the file name or directory name. For example, do not use the following formats:

    • proc iname=test one.pc

    • proc iname=d:\dir1\second dir\sample1.pc

  2. Users running PROCOB application that are not linked using /LITLINK option and failing at runtime with the error,

    Load error: file 'ORASQL8'

    need to copy orasql9.dll to orasql8.dll in the same directory where orasql9.dll exists.