This section describes new features of Pro*C/C++ releases and provides pointers to additional information. New features information from previous releases is also retained to help those users migrating to the current release.
The following sections describe the new features in Oracle Pro*C/C++:
A new command line option EVENTS={YES|NO} has been added to support Publish-Subscribe event notification.
The Oracle9i Release 9.2 Pro*C/C++ features and enhancements described in this section enables the Pro*C/C++ application to use scrollable cursor and optimize the performance.
This section contains these topics:
Supporting Scrollable Cursor in Pro*C/C++
You can use scrollable cursors in your Pro*C/C++ application to fetch data in a non sequential manner.
Supporting Connection Pooling in Pro*C/C++
You can use the connection pooling feature with your multithreaded Pro*C/C++ application to increase performance of the application significantly.
The Oracle9i Release 1 (9.0.1) Pro*C/C++ features and enhancements described in this section enables the Pro*C/C++ application to use UNICODE and more object features.
This section contains these topics:
UNICODE Support
With database "Reliable Unicode Data Type Support" in Oracle 9i, Pro*C/C++ UTF16 data can be bound to both CHAR and NCHAR columns.
Datetime
Datetime support in Pro*C extends to all the Datetime features in Oracle9i.
XA Support for V8OCI
With 9i, interoperability between XA and V8OCI will become standard. Users should be able to connect through XA, register that connection again SQLLIB and obtain that same connection back through SQLEnvGet and SQLSvcCtxGet.
Inheritance
As part of the Oracle 9i support for object types, the precompiler object support now includes support for inheritance.
Multilevel Collections
The collection object types support for release 9i has been enhanced to allow collections which have multiple levels of nested tables and arrays.
The Oracle8i Release 8.1.5 Pro*C/C++ features and enhancements described in this section enables the Pro*C/C++ application to use precompiler header files.
This section contains these topics:
Precompiled Header Capabilities
Starting with release 8.1.5, Pro*C/C++ allows the user to precompile a header file and store the contents of that precompilation into a special binary file that can be instantiated in place of actually precompiling the header file when included through the #include directive during the precompilation of an ordinary Pro*C/C++ program or another header file.
See Also:
"Precompiled Header Files"The Oracle8i Release 8.1.4 Pro*C/C++ features and enhancements described in this section enables the Pro*C/C++ application to call stored procedures.
This section contains these topics:
Calling Stored Java Procedures
A new Embedded SQL CALL statement has been introduced in Release 8.1.4 of Pro*C/C++ to provide application developers the ability to invoke stored Java (and PL/SQL) procedures directly without having to use an Embedded PL/SQL anonymous block.
The Oracle8i Release 8.1.3 Pro*C/C++ features and enhancements described in this section enables the Pro*C/C++ application to use an enhanced set of features for better application development.
This section contains these topics:
Embedded SQL LOB Interface
A convenient, easy to use Embedded SQL LOB Interface has been provided to give application developers enhanced support for LOBs that is meant to provide the same functional support for LOBs as the Oracle OCI API or PL/SQL DBMS_LOB package.
ANSI Dynamic SQL Interface
Pro*C/C++ now has a new implementation of Dynamic SQL that has been derived from the ANSI Standard. The ANSI Dynamic SQL Interface has enhancements over the Oracle Dynamic SQL Method 4 Interface. The ANSI Dynamic SQL Interface supports all Oracle types including Objects, Arrays of Structs, Cursor Variables and LOBs.
DML Returning Clause
Pro*C/C++ now supports the use of the DML Returning Clause on the INSERT, UPDATE and DELETE Embedded SQL DML statements.
Support for Universal ROWID
Pro*C/C++ now provides a mechanism to ALLOCATE and FREE Rowid. Descriptors are compatible with both Physical Rowids (associated with heap tables) and Logical Rowids (associated with index organized tables).
Extended Support for Runtime Contexts
Extensions to the Embedded CONTEXT USE statement now allow for a developer to specify a specific runtime context or to default to a global SQLLIB runtime context instead.
External Procedure Support
External Procedures written in Pro*C/C++ are now callable from PL/SQL. A REGISTER CONNECT Embedded SQL statement has been introduced. This new statement is used instead of a CONNECT statement in the External Procedure to define the current unnamed connection for the Global SQLLIB Runtime Context.
Support for Pre-Fetching
Oracle supports the notion of Pre-Fetching a number of rows when a query is executed. This increases performance by eliminating the need for a server round-trip when the rows are subsequently fetched.
Navigational Interface
The Navigational Interface for release 8.1.3 has been enhanced since its introduction in 8.0.3 to include the ability to Get and Set LOB and Collection Attributes of an Object Type as well. The optional FOR UPDATE clause in an EXEC SQL OBJECT DEREF statement has also been enhanced with an optional NOWAIT.
Enhanced Support for Collections
A new Embedded SQL Interface has been provided to allow for the ability to access, modify and update the individual elements of a Collection. This interface is intended to provide similar functional support for Collections that the OCI API currently provides in a convenient, easy to use Embedded SQL style.