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

This preface contains:

Changes in Oracle Database 12c Release 1 (12.1)

The following are changes in the Oracle Call Interface (OCI) for Release 1 (12.1):

New Features

The following features are new in this release:

  • Oracle C Client Interface (OCI) support for the following new and changed features:

  • Instant Client libraries were reorganized. A new, required library libclntshcore.so was introduced. This new library must be separate from both the data shared library and libclntsh.so.12.1.

    See the footnote in Table 1-3.

  • Native Client (OCI) support for PL/SQL package types and Boolean type as parameters includes:

    • Four new typecodes: OCI_TYPECODE_BOOLEAN, OCI_TYPECODE_RECORD, OCI_TYPECODE_ITABLE, and OCI_TYPECODE_PLS_INTEGER

    • Three new package enabled APIs: OCITypeByFullName(), OCITypeArrayByFullName(), and OCITypePackage()

    • Underlying changes to support complex PL/SQL package types for these existing APIs: OCIObjectNew(), OCITypeCollTypeCode(), OCITypeName(), OCITypeElemTypeCode(), OCIDescribeAny(), OCIBindByName2(), and OCIBindByName(), OCIBindByPos2(), and OCIBindByPos()

    • Index by Integer support is added with noted exceptions or notes for these seven existing OCI APIs: OCICollAppend(), OCICollMax(), OCICollGetElemArray(), OCICollMax(), OCIIter*(), OCITableFirst(), and OCITableLast()

    • The following OCI_PTYPE_TYPE parameter attribute is enhanced:

      • OCI_PTYPE_PKG has a new attribute OCI_ATTR_LIST_PKG_TYPES

      • OCI_ATTR_TYPECODE has a new value: OCI_TYPECODE_RECORD

      • OCI_ATTR_COLLECTION_TYPECODE has a new value: OCI_TYPECODE_ITABLE

      • OCI_ATTR_LIST_TYPE_ATTRS lists all fields of a package record type

      • OCI_ATTR_PACKAGE_NAME if a package type, then returns a package name.

    • The following OCI_PTYPE_TYPE_ATTR parameter attribute is enhanced:

      • OCI_ATTR_TYPECODE supports all PL/SQL types as attributes; in addition, the following new OCI Typecodes can be returned for this attribute: OCI_TYPECODE_BOOLEAN, OCI_TYPECODE_RECORD, OCI_TYPECODE_ITABLE, and OCI_TYPECODE_PLS_INTEGER

      • OCI_ATTR_PACKAGE_NAME if a package type, then returns the package name

    • The following OCI_PTYPE_TYPE_COLL parameter attribute is enhanced:

      • OCI_ATTR_TYPECODE supports all PL/SQL types as attributes; in addition, the following new OCI Typecodes can be returned for this attribute: OCI_TYPECODE_BOOLEAN, OCI_TYPECODE_RECORD, OCI_TYPECODE_ITABLE, and OCI_TYPECODE_PLS_INTEGER

      • OCI_ATTR_PACKAGE_NAME if a package type, then returns the package name

    See Table 3-10, Table 3-11.

    See "OCITypeByFullName()", "OCITypeArrayByFullName()", and "OCITypePackage()".

    See "OCIObjectNew()", "OCIDescribeAny()", "OCIBindByName2()", "OCIBindByName()", "OCIBindByPos2()", and "OCIBindByPos()",.

    See "OCI Collection and Iterator Functions" and "OCI Table Functions".

    See Table 6-1, Table 6-6, Table 6-7, and "List Attributes".

  • Support for Transaction Guard in an HA infrastructure includes:

    • A new error handle attribute: OCI_ATTR_ERROR_IS_RECOVERABLE

    • A new session handle attribute: OCI_ATTR_LTXID

    See "OCI and Transaction Guard", "Error Handle Attributes", and "User Session Handle Attributes".

  • Support for Pluggable Databases

    See "Support for Pluggable Databases".

  • New and changed OCI XStream features includes:

  • Support for two new Direct Path attributes in Oracle Database 12c Release 1 (12.1.0.2) :

    • OCI_ATTR_DIRPATH_PGA_LIM

    • OCI_ATTR_DIRPATH_SPILL_PASSES

    See "Direct Path Context Handle (OCIDirPathCtx) Attributes" for more information.

  • New authentication modes: OCI_SYSBKP for SYSBACKUP access, OCI_SYSDGD for SYSDG access, and OCI_SYSKMT for SYSKM access can be used in the mode parameter for OCISessionBegin(). Though implemented in this current release, these modes were not previously documented.

    See OCI Authentication Management and OCISessionBegin() for more information.

Deprecated Features

The following deprecated features will not be supported in future releases: