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

This preface contains:

  • Changes in Oracle Database release 18c, version 18.1

Changes in Oracle Database Release 18c Version 18.1

Changes in Oracle Database release 18c, version 18.1.

The following are changes in the Oracle Call Interface (OCI):

New Features

New features for Oracle Database release 18c, version 18.1

The following features are new in this release:

  • OCI support for Simple Oracle Document Access (SODA)

    SODA for C is a C API that is part of Oracle Call Interface (OCI). It implements Simple Oracle Document Access (SODA). You can use it to perform create, read (retrieve), update, and delete (CRUD) operations on documents of any kind, and you can use it to query JSON documents. You compile programs that use SODA for C the same way you compile other OCI programs. SODA is a set of NoSQL-style APIs that let you create and store collections of documents in Oracle Database, retrieve them, and query them, without needing to know Structured Query Language (SQL) or how the data in the documents is stored in the database. Oracle Database supports storing and querying JSON data. To access this functionality, you need structured query language (SQL) with special JSON SQL operators. SODA for C hides the complexities of SQL/JSON programming.

    See the following for more information: Handles, SODA Collection Handle Attributes, SODA Document Handle Attributes, OCI SODA Functions, SODA Document Handle Attributes, and SODA Collection Handle Attributes.


  • OCI support for operation level timeout or fine grained timers for operations

    New service context attribute OCI_ATTR_CALL_TIMEOUT — For setting millisecond timeout values using the OCIAttrSet() function. Allows applications to specify a timeout value for network calls to the database.

    See OCI_ATTR_CALL_TIMEOUT for more information.

  • OCI support for Application Continuity in an HA infrastructure includes:

    • Support is added for OCI dynamic binds and defines for numeric, character, and date/time types. This means the following OCI APIs are extended to support Application Continuity: OCIBindDynamic() and OCIDefineDynamic().

    • Support is added for binding and defining objects. This means the following OCI APIs are extended to support Application Continuity: OCIBindObject(), OCIDefineObject(), and OCITypeByName().

    • During execution of LOB calls, Application Continuity now supports the handling of connection failure by restarting LOB calls that were interrupted by an outage.

    • OCI now supports the new Application Continuity FAILOVER_TYPE of AUTO, which only attempts to fail over if the session state is known to be restorable at the explicit request boundary.

    See About Added Support for Application Continuity for more information.

  • OCI support for collations for bind variables

    Using OCIAttrSet(), the OCI_ATTR_COLLATION_ID attribute can be set on a bind variable handle to any of the supported collation IDs. The collation set with OCI_ATTR_COLLATION_ID is used as the derived collation of the corresponding placeholder expression (host variable reference) in the SQL statement.

    See OCI_ATTR_COLLATION_ID for more information.

  • OCI support for Oracle Connection Manager in Traffic Director Mode

    Oracle Connection Manager in Traffic Director Mode is a proxy that is placed between the database clients and the database instances. Supported OCI clients from Oracle Database 11g Release 2 (11.2) and later can connect to it. Oracle Connection Manager in Traffic Director Mode provides improved high availability (HA) for planned and unplanned database server outages, connection multiplexing support, and load balancing.

    Oracle Connection Manager in Traffic Director Mode can use the OCI client oraaccess.xml configuration file to configure proxy resident connection pools for one or more services that provide a proxy between the client and database instances. This feature provides improved high availability and performance for both planned and unplanned outages.

    See About Using Oracle Connection Manager in Traffic Director Mode and About OCI Session Pool Configuration in oraaccess.xml for more information.

  • New LOB descriptor attribute: OCI_ATTR_LOB_TYPE — Used to get the LOB type from the LOB descriptor.

    See OCI_ATTR_LOB_TYPE for more information.

  • New LOB locator attribute: OCI_ATTR_LOB_REMOTE — Determines whether the LOB locator belongs to a local database table or a remote database table.

    See OCI_ATTR_LOB_REMOTE for more information.

  • OCI_ATTR_STMT_TYPE — has one additional statement attribute types:
    • OCI_STMT_MERGE is added beginning Oracle Database release 18c, version 18.1.

    See About Preparing Statements and OCI_ATTR_STMT_TYPE for more information about these statement attribute types.

  • New user session handle attribute: OCI_ATTR_AUTOTUNING_ENABLED — checks if the client user session has OCI auto tuning enabled on OCI client statement caching.

    See OCI_ATTR_AUTOTUNING_ENABLED for more information.

  • Instant Client Basic and Basic Light ZIP files on Linux, Unix, and macOS now have the libclntsh and libocci symbolic links precreated.

    See the Note in Install from ZIP Files, from RPMs, and from Oracle Universal Installer for more information.

  • Instant Client Basic and Basic Light Zips and RPMs now precreate a network/admin directory, where optional files such as, tnsnames.ora, sqlnet.ora, and oraaccess.xml can be placed.

    See the Note in SDK for Oracle Instant Client for more information.

  • New session pool handle attribute: OCI_ATTR_SPOOL_MAX_USE_SESSION — Sets the maximum number of times one session can be checked out of the session pool, after which the session is automatically destroyed.

    See OCI_ATTR_SPOOL_MAX_USE_SESSION for more information.

  • Two new column property flags for the OCI_ATTR_COL_PROPERTIES attibute:
    • OCI_ATTR_COL_PROPERTY_IS_LPART — Indicates whether this is an implicitly generated logical partitioning column for container_map enabled objects.

    • OCI_ATTR_COL_PROPERTY_IS_CONID — Indicates whether this is a CON_ID column implicitly generated by CONTAINERS() or is an ORIGIN_CON_ID column implicitly generated for Extended Data Link.

    See Column Attributes for more information.

  • Changes in server version macros

    Because the components of the database version changed beginning with release 18c, version 18.1, there are new client macros provided for extracting each of the components. As a result, the signature for the OCIClientVersion() call is changed and there is a new OCIServerRelease2() call. The macros are named according to the new release naming scheme beginning with version 18.1.

    See OCIClientVersion() and OCIServerRelease2() for more information.

Deprecated Features

Deprecated features in Oracle Database release 18c, version 18.1.

The following features are deprecated in this release, and may be desupported in a future releases:

  • OCI_DTYPE_RSET — Result set descriptor.