Pro*COBOL Precompiler Programmer's Guide Release 8.0 A58232-01 |
Library | Product | Contents | Index

#
Preface

This manual is a comprehensive user's guide and reference to the Oracle Pro*COBOL Precompiler. It shows you how to develop COBOL programs that use the database languages SQL and PL/SQL to access and manipulate Oracle data. See the Oracle8 SQL Reference and PL/SQL User's Guide and Reference for more information on SQL and PL/SQL.

This preface covers these topics:

- What This Manual Has to Offer
- Who Should Read This Manual?
- How This Manual Is Organized
- Conventions Used in This Manual
- Sample Programs
- Does the Pro*COBOL Precompiler Meet Industry Standards?
- Your Comments Are Welcome

## What This Manual Has to Offer

This manual shows you how the Oracle Pro*COBOL Precompiler and embedded SQL can benefit your entire applications development process. It gives you lessons in how to design and develop applications that harness the power of Oracle. And, as quickly as possible, it helps you become proficient in writing embedded SQL programs.

An important feature of this manual is its emphasis on getting the most out of Pro*COBOL and embedded SQL. To help you master these tools, this manual shows you all the "tricks of the trade" including ways to improve program performance. It also includes many program examples to better your understanding and demonstrate the usefulness of embedded SQL.

  Note: You will not find installation instructions or system-specific information in this manual. For that kind of information, refer to your system-specific Oracle documentation.

  For information about migrating your applications from Oracle7 to Oracle8, see Oracle8 Migration.

## Who Should Read This Manual?

Anyone developing new COBOL applications or converting existing applications to run in the Oracle8 environment will benefit from reading this manual. Written especially for programmers, this comprehensive treatment of Pro*COBOL will also be of value to systems analysts, project managers, and others interested in embedded SQL applications.

To use this manual effectively, you need a working knowledge of the following subjects:

- applications programming in COBOL
- the SQL database language
- Oracle8 concepts and terminology

## How This Manual Is Organized

A brief summary of what you will find in each chapter and appendix follows.

Chapter 1: Introduction

This chapter introduces you to Pro*COBOL. You look at its role in developing application programs that manipulate Oracle data and find out what they allow your applications to do.

Chapter 2: Learning the Basics

This chapter explains how embedded SQL programs do their work. You examine the special environment in which they operate, the impact of this environment on the design of your applications, the key concepts of embedded SQL programming, and the steps you take in developing an application.

Chapter 3: Writing a Pro*COBOL Program

This chapter provides the basic information you need to write a Pro*COBOL program. You learn programming guidelines, coding conventions, language-specific features and restrictions.

Chapter 4: Advanced Pro*COBOL Programs

This chapter describes National Language Support (NLS), discusses datatype equivalencing, shows you how to declare SQL communications areas, and how to connect to an Oracle database. In addition, this chapter shows you how to embed Oracle Call Interface (OCI) calls in your program and how to develop X/Open applications.

Chapter 5: Using Embedded SQL

This chapter teaches you the essentials of embedded SQL programming. You learn how to use host variables, indicator variables, cursors, cursor variables, and the fundamental SQL commands that insert, update, select, and delete Oracle data.

Chapter 6: Using Embedded PL/SQL

This chapter shows you how to improve performance by embedding PL/SQL transaction processing blocks in your program. You learn how to use PL/SQL with host variables, indicator variables, cursors, stored subprograms, host arrays, and dynamic PL/SQL.

Chapter 7: Running the Pro*COBOL Precompiler

This chapter details the requirements for running the Pro*COBOL Precompiler. You learn what happens during precompilation, how to issue the Pro*COBOL command, how to specify the many useful precompiler options, and how to do conditional and separate precompilations.

Chapter 8: Defining and Controlling Transactions

This chapter describes transaction processing. You learn the basic techniques that safeguard the consistency of your database.

Chapter 9: Error Handling and Diagnostics

This chapter provides an in-depth discussion of error reporting and recovery. You learn how to detect and handle errors using the status variable SQLSTATE, the SQLCA structure, and the WHENEVER statement. You also learn how to diagnose problems using the ORACA.

Chapter 10: Using Host Tables

This chapter looks at using tables to improve program performance. You learn how to manipulate Oracle data using tables, how to operate on all the elements of a table with a single SQL statement, and how to limit the number of table elements processed.

Chapter 11: Using Dynamic SQL

This chapter shows you how to take advantage of dynamic SQL. You are taught four methods, from simple to complex, for writing flexible programs that let users build SQL statements interactively at run time.

Chapter 12: Using Dynamic SQL: Advanced Concepts

This chapter shows you how to implement dynamic SQL Method 4, an advanced programming technique that lets you write highly flexible applications. Numerous examples are used to illustrate the method.

Chapter 13: Writing User Exits

This chapter focuses on writing user exits for your SQL*Forms or Oracle Forms applications. First, you learn the commands that allow a Forms application to interface with user exits. Then, you learn how to write and link a Forms user exit.

Appendix A: New Features

This appendix highlights the improvements and new features introduced with Release 8.0 of the Pro*COBOL Precompiler.

Appendix B: Operating System Dependencies

Some details of Pro*COBOL programming vary from one system to another. So, you are occasionally referred to other manuals for system-specific information. For convenience, this appendix collects all such external references.

Appendix C: Oracle8 Reserved Words, Keywords, and Namespaces

This appendix lists words that have a special meaning to Oracle and namespaces that are reserved for Oracle libraries.

Appendix D: Performance Tuning

This appendix gives you some simple methods for improving the performance of your applications.

Appendix E: Syntactic and Semantic Checking

This appendix shows you how to use the SQLCHECK option to control the type and extent of syntactic and semantic checking done on embedded SQL statements and PL/SQL blocks.

Appendix F: Embedded SQL Commands and Precompiler Directives

This appendix contains descriptions of precompiler directives, embedded SQL commands, and Oracle embedded SQL extensions. These commands are prefaced in your source code with the keywords, EXEC SQL.

## Conventions Used in This Manual

Important terms being defined for the first time are italicized. In discussions, UPPER CASE is used for database objects and SQL keywords, and italicized lower case is used for the names of variables, constants, and parameters.

### Notation

The following notation is used in this manual:

#####

< > | Angle brackets enclose the name of a syntactic element.
. | A dot separates an object name from a component name and so qualifies a reference.
.. | Two dots separate the lowest and highest values in a range.
... | An ellipsis shows that statements or clauses irrelevant to the discussion were left out.
# | This character is used in text to represent blank spaces when referring to the content of a database column.

### Syntax Description

Embedded SQL syntax is described using a variant of Backus-Naur Form (BNF), which includes the following symbols:

#####

[ ] | Brackets enclose optional items.
{ } | Braces enclose items only one of which is required.
| | A vertical bar separates alternatives within brackets or braces.
... | An ellipsis shows that the preceding parameter can be repeated.

## Sample Programs

This manual provides several Pro*COBOL programs to help you in writing your own. These programs illustrate the key concepts and features of Pro*COBOL programming and demonstrate techniques that let you take full advantage of SQL's power and flexibility.

Each sample program in this manual is available on-line. The following table shows the usual filenames of the sample programs. However, the exact filenames are system-dependent. For exact filenames, see your Oracle system-specific documentation.

#####

Filename | Demonstrates...
SAMPLE1.PCO SAMPLE2.PCO SAMPLE3.PCO SAMPLE4.PCO SAMPLE5.PCO SAMPLE6.PCO SAMPLE7.PCO SAMPLE8.PCO SAMPLE9.PCO SAMPLE10.PCO SAMPLE11.PCO | Simple Query Cursor Operations Host Tables Datatype Equivalencing Oracle Forms User Exit Dynamic Sql Method 1 Dynamic Sql Method 2 Dynamic Sql Method 3 Calling A Stored Procedure Dynamic SQL Method 4 Cursor Variable Operations

## Does the Pro*COBOL Precompiler Meet Industry Standards?

SQL has become the standard language for relational database management systems. This section describes how the Pro*COBOL Precompiler conforms to the latest SQL standards established by the following organizations:

- American National Standards Institute (ANSI)
- International Standards Organization (ISO)
- U.S. National Institute of Standards and Technology (NIST)

Those organizations have adopted SQL as defined in the following publications:

- ANSI Document ANSI X3.135-1992, Database Language SQL
- ANSI Document ANSI X3.168-1992, Database Language Embedded SQL
- International Standard ISO/IEC 9075:1992, Database Language SQL
- NIST Federal Information Processing Standard FIPS PUB 127-2, Database Language SQL

### Requirements

ANSI X3.135-1992 (known informally as SQL92) specifies a "conforming SQL language" and, to allow implementation in stages, defines three language levels:

- Full SQL
- Intermediate SQL (a subset of Full SQL)
- Entry SQL (a subset of Intermediate SQL)

A conforming SQL implementation must support at least Entry SQL.

ANSI X3.168-1992 specifies the syntax and semantics for embedding SQL statements in application programs written in a standard programming language such as COBOL-74 and COBOL-85.

ISO/IEC 9075-1992 fully adopts the ANSI standards.

FIPS PUB 127-2, which applies to RDBMS software acquired for federal use, also adopts the ANSI/ISO standards. In addition, it specifies minimum sizing parameters for database constructs and requires a "FIPS Flagger" to identify ANSI extensions.

For copies of the ANSI standards, write to

American National Standards Institute

1430 Broadway

New York, NY 10018, USA

For a copy of the ISO standard, write to the national standards office of any ISO participant. For a copy of the NIST standard, write to

National Technical Information Service

U.S. Department of Commerce

Springfield, VA 22161, USA

### Compliance

Under Oracle8, the Pro*COBOL Precompiler complies 100% with the ANSI, ISO, and NIST standards. As required, they support Entry SQL and provide a FIPS Flagger.

### FIPS Flagger

According to FIPS PUB 127-1, "an implementation that provides additional facilities not specified by this standard shall also provide an option to flag nonconforming SQL language or conforming SQL language that may be processed in a nonconforming manner." To meet this requirement, the Pro*COBOL Precompiler provides the FIPS Flagger, which flags ANSI extensions. An extension is any SQL element that violates ANSI format or syntax rules, except privilege enforcement rules. For a list of Oracle extensions to standard SQL, see the Oracle8 SQL Reference.

You can use the FIPS Flagger to identify

- nonconforming SQL elements that might have to be modified if you move the application to a conforming environment
- conforming SQL elements that might behave differently in another processing environment

Thus, the FIPS Flagger helps you develop portable applications.

### FIPS Option

An option named FIPS governs the FIPS Flagger. To enable the FIPS Flagger, you specify FIPS=YES inline or on the command line. For more information about the command-line option FIPS, see "FIPS" on page 7-20.

### Certification

NIST tested the Pro*COBOL Precompiler for ANSI Entry SQL compliance using the SQL Test Suite, which consists of nearly 300 test programs. Specifically, the programs tested for conformance to the COBOL embedded SQL standards. As a result, the Pro*COBOL Precompiler was certified 100% ANSI-compliant.

For more information about the tests, write to

National Computer Systems Laboratory

Attn.: Software Standards Testing Program

National Institute of Standards

### MIA/SPIRIT

The Pro*COBOL Precompiler provides National Language Support (NLS) of multi-byte character data by complying with the Multivendor Integration Architecture (MIA) specification, Version 1.3, and the Service Providers Integrated Requirements for Information Technology (SPIRIT) specification, Issue 2.

## Your Comments Are Welcome

The Oracle Corporation technical staff values your comments. As we write and revise, your opinions are the most important feedback we receive. Please use the Reader's Comment Form to tell us what you like and dislike about this Oracle publication.

Prev | Next
| Copyright © 1997 Oracle Corporation. All Rights Reserved. |
Library | Product | Contents | Index