Changes in This Release for Oracle C++ Call Interface Programmer's Guide

This preface contains:

Changes in Oracle Database 12c Release 1 (12.1)

The following are changes in Oracle C++ Call Interface Programmer's Guide for Oracle Database 12c Release 1 (12.1).

New Features

The following features are new in this release:

  • OCCI Identity Column Metadata

    The current database release provides columns that may be created as identity columns. When rows are inserted into the tables, values for these columns are generated automatically.

    See "Identity Column Metadata".

    This feature adds a new ColumnAttrId enum to the MetaData Class (see Table 13-27), and an overloaded form of getBoolean() method in the MetaData Class.

    Additionally, see Oracle Database Reference for more information,

  • Support for Row Count Per Iteration for Array DML

    This feature retrieves the number of rows affected by each iteration of a DML statement that is executed with multiple iterations.See "Executing an Iterative Operation".

    This feature adds three new methods in the Statement Class: getDMLRowCounts(), getRowCountsOption(), and setRowCountsOption().

  • Support for client side deployment settings. This includes:

    • New deployment settings oraaccess.xml file

    See "Client-Side Deployment Parameters and Auto Tuning" and Oracle Call Interface Programmer's Guide for more information.

  • Support for Larger Row Count and Error Code Range Data Types

    This feature enhances OCCI row count values from current int limit to an oraub8 value, and enhances OCCI error codes to support values that exceed ORA-65535.

    See "Using Larger Row Count and Error Code Range Data Types".

    This feature adds a new method for returning large row count to Statement Class: getUb8RowCount().

  • Instant Client Library Reorganized

    The library structure is changed for clarity and ease of development. See "Installing Instant Client".

  • OCCI and Transaction Guard

    The purpose of these features is to safely replay ongoing work after an outage or migration. It may be used to restore the system after both planned and unplanned outages. These features detect a failed connection or session and quickly re-establish it on a surviving instance of the distributed application. They provide a set of interfaces that return the last transaction outcome. The impact of these features follows:

    • Transaction Idempotence supports and exposes the logical transaction id. An attribute on the handle gets the value of the ltxid, and a PL/SQL call gets its status.

    • TAF SELECT mode enhances transaction idempotence support by using it implicitly.

    • Error Classification APIs provide the information regarding the error, whether it is recoverable: due to a temporary server outage (server node/instance/process crash). Recoverable errors are likely to succeed after the application is reconnected and the call is attempted again.

    These features add a new method getLTXID() to Connection Class and a new method isRecoverable() to SQLException Class. These features are discussed more fully in Oracle Database Development Guide.

  • Support for Pluggable Databases

    See "Support for Pluggable Databases".

  • Added four new methods to the Environment class

    These methods include:

    These methods provide a programmatic way of setting the Language and Territory. The values set using these methods override the values set through the process environment variable NLS_LANG.

  • Added overloaded methods for the setDataBuffer() and setDataBufferArray() methods in the Statement class and the setDataBuffer() method in the Resultset class to support larger (32K) VARCHAR2, NVARCHAR2, and RAW data types