B OCI Demonstration Programs

Oracle provides code examples illustrating the use of OCI calls. These programs are provided for demonstration purposes, and are not guaranteed to run on all operating systems.

You must install the demonstration programs as described in Oracle Database Examples Installation Guide. The location, names, and availability of the programs may vary on different operating systems. On a Linux or UNIX workstation, the programs are installed in the $ORACLE_HOME/rdbms/demo directory.

OCI header files that are required for OCI client application development on Linux or UNIX platforms are in the $ORACLE_HOME/rdbms/public directory. The demo_rdbms.mk file is in the $ORACLE_HOME/rdbms/demo directory and serves as an example makefile, starting with the 10.2 release. On Windows systems, make.bat is the analogous file in the samples directory.

Unless you significantly modify the demo_rdbms.mk file, you are not affected. This is because the demo_rdbms.mk file already includes the $ORACLE_HOME/rdbms/public directory. Ensure that your highly customized makefiles have the $ORACLE_HOME/rdbms/public directory in the INCLUDE path.

Development of new makefiles to build an OCI application or an external procedure should consist of the customizing of the makefile provided by adding your own macros to the link line. However, Oracle requires that you keep the macros provided in the demo makefile, as it will result in easier maintenance of your own makefiles.

When a specific header or SQL file is required by the application, these files are also included. Review the information in the comments at the beginning of the demonstration programs for setups and hints on running the programs.

Table B-1 lists the important demonstration programs and the OCI features that they illustrate. Look for related files with the extension "sql".

Table B-1 OCI Demonstration Programs

Program Name Features Illustrated

cdemo81.c

Using basic SQL processing with release 8 functionality.

cdemo82.c

Performing basic processing of user-defined objects.

cdemocor.c

Using complex object retrieval (COR) to improve performance.

cdemodr1.c, cdemodr2.c, cdemodr3.c

Using INSERT/UPDATE/DELETE statements with RETURNING clause used with basic datatypes, LOBs and REFs.

cdemodsa.c

Describing information about a table.

cdemodsc.c

Describing information about an object type.

cdemofo.c

Registering and operating application failover callbacks.

cdemolb.c

Create and insert LOB data and then read, write, copy, append and trim the data.

cdemolb2.c

Writing and reading of CLOB/BLOB columns with stream mode and callback functions.

cdemolbs.c

Writing and reading to LOBs with the LOB buffering system.

cdemobj.c

Pinning and navigation of REF object.

cdemocoll.c

Insert and select of nested table and varray.

cdemorid.c

Using INSERT, UPDATE, DELETE statements and fetches to get multiple rowids in one round trip.

cdemoses.c

Using session switching and migration.

cdemothr.c

Using the OCIThread package.

cdemosyev.c

Registering predefined subscriptions and specifying a callback function to be invoked for client notifications (for more information about Advanced Queuing, see Oracle Streams Advanced Queuing User's Guide).

ociaqdemo00.c

ociaqdemo01.c

ociaqdemo02.c

ociaqarrayenq.c

ociaqarraydeq.c

Streams Advanced Queuing. Enqueues 100 messages.

Dequeues messages by blocking.

Listens for multiple agents.

Array enqueue of 10 messages.

Array dequeue of 10 messages.

cdemodp.c, cdemodp_lip.c

Loading data with the direct path load functions.

cdemdpco.c

cdemdpno.c

cdemdpin.c

cdemdpit.c

cdemdpro.c

cdemdpss.c

Loading a column object with the direct path load functions.

Loading a nested column object with the direct path load functions.

Loading derived type (inheritance) - direct path.

Loading an object table with inheritance - direct path.

Loading a reference with the direct path load functions.

Loading SQL strings with the direct path load functions.

cdemoucb.c, cdemoucbl.c

Using static and dynamic user callbacks.

cdemoupk.c, cdemoup1.c, cdemoup2.c

Using dynamic user callbacks with multiple packages.

cdemodt.c

Datetime and interval example. Demonstrates IN and OUT binds with PL/SQL procedure or function.

cdemosc.c

Scrollable cursor.

cdemol2l.c

Accesses LOBs using the LONG API (Data Interface).

cdemoin1.c

Inheritance demo which modifies an inherited type in a table and displays a record from the table.

cdemoin2.c

Inheritance demo to do attribute substitutability.

cdemoin3.c

Inheritance demo that describes an object, inherited types, object tables, and a sub-table.

cdemoanydata1.c

Anydata demo. Inserts and selects rows to and from anydata table.

cdemoanydata2.c

Anydata demo. Creates a type piecewise using OCITypeBeginCreate() and then describes the new type created.

cdemoqc.c

Client result cache demo.

cdemosp.c

Session pooling.

cdemocp.c

Connection pooling.

cdemocpproxy.c

Connection pooling with proxy functionality.

cdemostc.c

Statement caching.

cdemouni.c

Program for OCI UTF16 API.

nchdemo1.c

Shows NCHAR implicit conversion feature and codepoint feature.