This preface contains:
The following are changes in Oracle Call Interface Programmer's Guide for Oracle Database 12c Release 1 (12.1).
The following features are new in this release:
Oracle C Client Interface (OCI) support for the following new and changed features:
Support for row count per iteration for array DML includes:
New mode
parameter attribute: OCI_RETURN_ROW_COUNT_ARRAY
in the OCIStmtExecute()
call
New statement handle attribute: OCI_ATTR_ROW_COUNT_ARRAY
See "OCIStmtExecute()" and "Statement Handle Attributes" for more information.
Support for client side deployment settings. This includes:
New deployment settings oraaccess.xml
file
See "OCI Client-Side Deployment Parameters Using oraaccess.xml" for more information.
Change in High Availability infrastructure to use Oracle Notification Service (ONS)
See "HA Event Notification" for more information.
Support for auto-tuning client statement caching. This includes:
New auto-tuning client statement cache feature
New session handle attribute: OCI_ATTR_MAX_OPEN_CURSORS
See "Client Statement Cache Auto-Tuning" and "User Session Handle Attributes" for more information.
Support for implicit results includes:
New API: OCIStmtGetNextResult()
New statement handle attribute: OCI_ATTR_IMPLICIT_RESULT_COUNT
New OCIStmtPrepare()
, OCIStmtPrepare2()
mode: OCI_PREP2_IMPL_RESULTS_CLIENT
to be used in external procedures
See "OCI Support for Implicit Results", "OCIStmtGetNextResult()", "Statement Handle Attributes", "OCIStmtPrepare()", and "OCIStmtPrepare2()".
Support for IDENTITY or auto-increment column includes the new OCI_ATTR_COLUMN_PROPERTIES
attribute and its three new flags.
See "Column Attributes" and Table 6-13.
Support for 32K VARCHAR2
, NVARCHAR2
, and RAW
data types includes:
New APIs: OCIBindByName2()
, OCIBindByPos2()
, and OCIDefineByPos2()
New service context handle attribute: OCI_ATTR_VARTYPE_MAXLEN_COMPAT
See "OCIBindByName2()", "OCIBindByPos2()", and "OCIDefineByPos2()", and "Service Context Handle Attributes".
Support for hidden columns includes a new describe handle attribute: OCI_ATTR_SHOW_INVISIBLE_COLUMN
, and new column property attribute: OCI_ATTR_INVISIBLE_COL
.
See "Describe Handle Attributes", "OCIDescribeAny()", Table 6-13, and "Describing Each Column to Know Whether It Is an Invisible Column".
Support for SQL translation feature in Oracle Database. This includes:
New language
parameter constant OCI_FOREIGN_SYNTAX
in OCIStmtPrepare()
and OCIStmtPrepare2()
calls.
New session handle attribute: OCI_ATTR_TRANS_PROFILE_FOREIGN
See "OCIStmtPrepare()", "OCIStmtPrepare2()", and "User Session Handle Attributes".
Support for larger row count data types includes a new attribute, OCI_ATTR_UB8_ROW_COUNT
, that should be used if the row count values can exceed UB4MAXVAL
for the OCI application. If row count exceeds UB4MAXVAL
and the application uses OCI_ATTR_ROW_COUNT
, calling OCIAttrGet()
returns an error.
See "Using Scrollable Cursors in OCI" and "Statement Handle Attributes".
Support for setting the lifetime (in seconds) for all the sessions in the pool with the new session pool handle attribute: OCI_ATTR_SPOOL_MAX_LIFETIME_SESSION
.
Support for monitoring Database operations includes a new OCI_ATTR_DBOP
user session handle attribute.
See the OCI_ATTR_DBOP
attribute in "User Session Handle Attributes", in "Attributes for End-to-End Application Tracing", and in the authinfop
parameter of "OCISessionGet()".
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, "OCITypeCode Values and Data Types", Table 3-11, "OCI_TYPECODE to SQLT Mappings".
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, "Attributes of All Parameters", Table 6-6, "Attributes of Packages", Table 6-7, "Attributes of Types", 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
New and changed OCI XStream features includes:
Support for XML object relational and binary in XStream includes the following new column_flags
parameter flags:
OCI_LCR_COLUMN_XML_DIFF
that can be used in the following calls: OCILCRRowColumnInfoSet()
, OCILCRRowColumnInfoGet()
, OCILCRLobInfoSet()
, OCILCRLobInfoGet()
, OCIXStreamOutChunkReceive()
, OCIXStreamInChunkSend()
OCI_LCR_COLUMN_OBJECT_DATA
that can be used in the following calls: OCIXStreamsOutChunkReceive()
and OCIXStreamInChunkSend()
See "OCILCRRowColumnInfoSet()", "OCILCRRowColumnInfoGet()", "OCILCRLobInfoSet()", "OCILCRLobInfoGet()", "OCIXStreamOutChunkReceive()", and "OCIXStreamInChunkSend()".
Manageability support for XStream and GoldenGate integration
Two new functions: OCIXStreamInSessionSet() and OCIXStreamOutSessionSet()
See "OCIXStreamInSessionSet()" and "OCIXStreamOutSessionSet()" for more information.
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.
The following deprecated features will not be supported in future releases:
OCI release 7.3 API
See "Upgrading of Existing OCI Release 7 Applications" for more information.