|Oracle8i Application Developer's Guide - Fundamentals
Release 2 (8.1.6)
Part Number A76939-01
Application Developer's Guide - Fundamentals describes features of application development for the Oracle Server, Release 2 (8.1.6). Information in this guide applies to versions of the Oracle Server that run on all platforms, and does not include system-specific information.
The Preface includes the following sections:
As an application developer, you should learn about the many Oracle Server features that can ease application development and improve performance. This Guide describes Oracle Server features that relate to application development. It does not cover the PL/SQL language, nor does it directly discuss application development on the client side. The table of contents and the "How This Book Is Organized" section has more information about the material covered. The "Other Guides" section points to other Oracle documentation that contains related information.
The Application Developer's Guide - Fundamentals is intended for programmers developing new applications or converting existing applications to run in the Oracle environment. This Guide will also be valuable to systems analysts, project managers, and others interested in the development of database applications.
This guide assumes that you have a working knowledge of application programming, and that you are familiar with the use of Structured Query Language (SQL) to access information in relational database systems.
Certain sections of this Guide also assume a knowledge of the basic concepts of object oriented programming.
The Application Developer's Guide - Fundamentals contains information that describes the features and functionality of the Oracle8i and the Oracle8i Enterprise Edition products. Oracle8i and Oracle8i Enterprise Edition have the same basic features. However, several advanced features are available only with the Enterprise Edition, and some of these are optional. For example, to use object functionality, you must have the Enterprise Edition and the Objects Option.
For information about the differences between Oracle8i and the Oracle8i Enterprise Edition and the features and options that are available to you, see Getting to Know Oracle8i.
Use the PL/SQL User's Guide and Reference to learn PL/SQL and to get a complete description of this high-level programming language, which is Oracle Corporation's procedural extension to SQL.
The Oracle Call Interface (OCI) is described in Oracle Call Interface Programmer's Guide
You can use the OCI to build third-generation language (3GL) applications that access the Oracle Server.
Oracle Corporation also provides the Pro* series of precompilers, which allow you to embed SQL and PL/SQL in your application programs. If you write 3GL application programs in Ada, C, C++, COBOL, or FORTRAN that incorporate embedded SQL, then refer to the corresponding precompiler manual. For example, if you program in C or C++, then refer to the Pro*C/C++ Precompiler Programmer's Guide.
Oracle Developer/2000 is a cooperative development environment that provides several tools including a form builder, reporting tools, and a debugging environment for PL/SQL. If you use Developer/2000, then refer to the appropriate Oracle Tools documentation.
The Application Developer's Guide - Fundamentals contains the following major sections.
This part introduces several different ways that you can write Oracle applications. You might need to use more than one language or development environment for a single application. Some database features are only supported, or are easier to access from, certain languages.
"Understanding the Oracle Programmatic Environments" outlines the strengths of the languages, development environments, and APIs that Oracle provides.
Before you develop an application, you need to plan the characteristics of the associated database. You must choose all the pieces that go into the database, and how they are put together. Good database design helps ensure good performance and scalability, and reduces the amount of application logic you code by making the database responsible for things like error checking and fast data access.
"Managing Schema Objects" explains how to manage objects such as tables, views, numeric sequences, and synonyms. It also discusses performance enhancements to data retrieval through the use of indexes and clusters.
"Selecting a Datatype" explains how to represent your business data in the database. The datatypes include fixed- and variable-length character strings, numeric data, dates, raw binary data, and row identifiers (
"Maintaining Data Integrity" explains how to use constraints to move error-checking logic out of your application and into the database.
"Selecting an Index Strategy" and"Speeding Up Index Access with Index-Organized Tables"explain how to speed up queries.
"Processing SQL Statements" explains SQL topics such as commits, cursors, and locking that you can take advantage of in your applications.
"Dynamic SQL" describes dynamic SQL, native dynamic SQL vs. the DBMS_SQL package, when to use dynamic SQL.
"Using Procedures and Packages" explains how to store reusable procedures in the database, and how to group procedures into packages. "External Routines" explains how to code the bodies of computationally intensive procedures in languages other than PL/SQL.
"Establishing Security Policies" explains how to move authentication logic out of your application and into the database.
You can include all sorts of programming logic in the database itself, making the benefits available to many applications and saving repetitious coding work.
"Using Triggers" explains how to make the database do special processing before, after, or instead of running SQL statements. You can use triggers for things like validating or transforming data, or logging database access. "Working With System Events" explains how to retrieve information, such as the user ID and database name, about the event that fires a trigger.
"Using Publish-Subscribe" introduces the Oracle model for asynchronous communication, also known as messaging or queueing.
"Developing Web Applications with PL/SQL" explains how to create dynamic web pages and applications that work with the Internet, e-mail, and so on, using the PL/SQL language.
"Working with Transaction Monitors with Oracle XA" describes how to connect Oracle with a transaction monitor.
The following notational and text formatting conventions are used in this guide:
Square brackets indicate that the enclosed item is optional. Do not type the brackets.
Braces enclose items of which only one is required.
A vertical bar separates items within braces, and may also be used to indicate that multiple values are passed to a function parameter.
In code fragments, an ellipsis means that code not relevant to the discussion has been omitted.
SQL or C code examples are shown in monospaced font.
Italics are used for OCI parameters, OCI routines names, file names, and data fields.
Uppercase is used for SQL keywords, like
This guide uses special text formatting to draw the reader's attention to some information. A paragraph that is indented and begins with a bold text label may have special meaning. The following paragraphs describe the different types of information that are flagged this way.
Note: The "Note" flag indicates that you should pay particular attention to the information to avoid a common problem or to increase understanding of a concept.
Warning: An item marked as "Warning" indicates something that an OCI programmer must be careful to do, or not do, in order for an application to work correctly.
See Also: Text marked "See Also" points you to another section of this guide, or to other documentation, for additional information about the topic being discussed.
We value and appreciate your comment as an Oracle user and reader of our manuals. As we write, revise, and evaluate our documentation, your opinions are the most important feedback we receive.
You can send comments and suggestions about this manual to the following e-mail address:
If you prefer, then you can send letters or faxes containing your comments to the Information Development department at the following address: