Oracle® Call Interface Programmer's Guide 11g Release 2 (11.2) Part Number E10646-10 |
|
|
PDF · Mobi · ePub |
This appendix describes the attributes for OCI handles and descriptors, which can be read with OCIAttrGet()
, and modified with OCIAttrSet()
.
This appendix contains these topics:
For each handle type, the attributes that can be read or changed are listed. Each attribute listing includes the following information:
The following modes are valid:
READ - The attribute can be read using OCIAttrGet()
.
WRITE - The attribute can be modified using OCIAttrSet()
.
READ/WRITE - The attribute can be read using OCIAttrGet()
, and it can be modified using OCIAttrSet()
.
This is a description of the purpose of the attribute.
This is the data type of the attribute. If necessary, a distinction is made between the data type for READ and WRITE modes.
In some cases, only certain values are allowed, and they are listed here.
In some cases an example is included.
The following attributes are used for the environment handle.
LNOCI17760OCI_ATTR_ALLOC_DURATION
READ/WRITE
This attribute sets the value of OCI_DURATION_DEFAULT
for allocation durations for the application associated with the environment handle.
OCIDuration */OCIDuration
LNOCI17761OCI_ATTR_BIND_DN
READ/WRITE
The login name (DN) to use when connecting to the LDAP server.
oratext **/oratext *
LNOCI17762OCI_ATTR_CACHE_ARRAYFLUSH
READ/WRITE
When this attribute is set to TRUE
, during OCICacheFlush()
the objects that belong to the same table are flushed, which can considerably improve performance. An attribute value of TRUE
should only be used when the order in which the objects are flushed is not important. When the attribute value is set to TRUE
, it is not guaranteed that the order in which the objects are marked dirty is preserved.
boolean */boolean
LNOCI17763OCI_ATTR_CACHE_MAX_SIZE
READ/WRITE
Sets the maximum size (high watermark) for the client-side object cache as a percentage of the optimal size. Usually you can set the value at 10%, the default, of the optimal size, OCI_ATTR_CACHE_OPT_SIZE
. Setting this attribute to 0 results in a value of 10 being used. The object cache uses the maximum and optimal values for freeing unused memory in the object cache.
See Also:
"Object Cache Parameters"ub4 */ub4
LNOCI17764OCI_ATTR_CACHE_OPT_SIZE
READ/WRITE
Sets the optimal size for the client-side object cache in bytes. The default value is 8 megabytes (MB). Setting this attribute to 0 results in a value of 8 MB being used.
See Also:
"Object Cache Parameters"ub4 */ub4
LNOCI17765OCI_ATTR_ENV_CHARSET_ID
READ
Local (client-side) character set ID. Users can update this setting only after creating the environment handle but before calling any other OCI functions. This restriction ensures the consistency among data and metadata in the same environment handle. When character set ID is UTF-16, an attempt to get this attribute is invalid.
ub2 *
LNOCI17766OCI_ATTR_ENV_NCHARSET_ID
READ
Local (client-side) national character set ID. Users can update this setting only after creating the environment handle but before calling any other OCI functions. This restriction ensures the consistency among data and metadata in the same environment handle. When character set ID is UTF-16, an attempt to get this attribute is invalid.
ub2 *
LNOCI17767OCI_ATTR_ENV_UTF16
READ
Encoding method is UTF-16. The value 1 means that the environment handle is created when the encoding method is UTF-16, whereas 0 means that it is not. This attribute value can only be set by the call to OCIEnvCreate()
and cannot be changed later.
ub1 *
LNOCI17768OCI_ATTR_EVTCBK
WRITE
This attribute registers an event callback function.
See Also:
"HA Event Notification"OCIEventCallback
LNOCI17769OCI_ATTR_EVTCTX
WRITE
This attribute registers a context passed to an event callback.
See Also:
"HA Event Notification"void *
LNOCI17770OCI_ATTR_HEAPALLOC
READ
The current size of the memory allocated from the environment handle. This may help you track where memory is being used most in an application.
ub4 *
LNOCI17771OCI_ATTR_LDAP_AUTH
READ/WRITE
The authentication mode. The following are the valid values:
0x0: No authentication; anonymous bind.
0x1: Simple authentication; user name and password authentication.
0x5: SSL connection with no authentication.
0x6: SSL: only server authentication required.
0x7: SSL: both server authentication and client authentication are required.
0x8: Authentication method is determined at run time.
ub2 */ub2
LNOCI17772OCI_ATTR_LDAP_CRED
READ/WRITE
If the authentication method is "simple authentication" (user name and password authentication), then this attribute holds the password to use when connecting to the LDAP server.
oratext **/oratext *
LNOCI17773OCI_ATTR_LDAP_CTX
READ/WRITE
The administrative context of the client. This is usually the root of the Oracle Database LDAP schema in the LDAP server.
oratext **/oratext *
LNOCI17774OCI_ATTR_LDAP_HOST
READ/WRITE
The name of the host on which the LDAP server runs.
oratext **/oratext *
LNOCI17775OCI_ATTR_LDAP_PORT
READ/WRITE
The port on which the LDAP server is listening.
ub2 */ub2
LNOCI17776OCI_ATTR_OBJECT
READ
Returns TRUE
if the environment was initialized in object mode.
boolean *
LNOCI17777OCI_ATTR_PINOPTION
READ/WRITE
This attribute sets the value of OCI_PIN_DEFAULT
for the application associated with the environment handle.
For example, if OCI_ATTR_PINOPTION
is set to OCI_PIN_RECENT
, and OCIObjectPin()
is called with the pin_option
parameter set to OCI_PIN_DEFAULT
, the object is pinned in OCI_PIN_RECENT
mode.
OCIPinOpt */OCIPinOpt
LNOCI17778OCI_ATTR_OBJECT_NEWNOTNULL
READ/WRITE
When this attribute is set to TRUE
, newly created objects have non-NULL
attributes.
See Also:
"Creating Objects"boolean */boolean
LNOCI17779OCI_ATTR_OBJECT_DETECTCHANGE
READ/WRITE
When this attribute is set to TRUE
, applications receive an ORA-08179 error when attempting to flush an object that has been modified in the server by another committed transaction.
See Also:
"Implementing Optimistic Locking"boolean */boolean
LNOCI17780OCI_ATTR_PIN_DURATION
READ/WRITE
This attribute sets the value of OCI_DURATION_DEFAULT
for pin durations for the application associated with the environment handle.
OCIDuration */OCIDuration
LNOCI17781OCI_ATTR_SHARED_HEAPALLOC
READ
Returns the size of the memory currently allocated from the shared pool. This attribute works on any environment handle, but the process must be initialized in shared mode to return a meaningful value. This attribute is read as follows:
ub4 heapsz = 0; OCIAttrGet((void *)envhp, (ub4)OCI_HTYPE_ENV, (void *) &heapsz, (ub4 *) 0, (ub4)OCI_ATTR_SHARED_HEAPALLOC, errhp);
ub4 *
LNOCI17784OCI_ATTR_WALL_LOC
READ/WRITE
If the authentication method is SSL authentication, this attribute contains the location of the client wallet.
oratext **/oratext *
The following attributes are used for the error handle.
LNOCI17786OCI_ATTR_DML_ROW_OFFSET
READ
Returns the offset (into the DML array) at which the error occurred.
ub4 *
The following attributes are used for service context handle.
LNOCI17788OCI_ATTR_ENV
READ
Returns the environment context associated with the service context.
OCIEnv **
LNOCI17789OCI_ATTR_IN_V8_MODE
READ
Allows you to determine whether an application has switched to Oracle release 7 mode (for example, through an OCISvcCtxToLda()
call). A nonzero (TRUE
) return value indicates that the application is currently running in Oracle release 8 mode, a zero (false) return value indicates that the application is currently running in Oracle release 7 mode.
ub1 *
The following code sample shows how this attribute is used:
in_v8_mode = 0; OCIAttrGet ((void *)svchp, (ub4)OCI_HTYPE_SVCCTX, (ub1 *)&in_v8_mode, (ub4) 0, OCI_ATTR_IN_V8_MODE, errhp); if (in_v8_mode) fprintf (stdout, "In V8 mode\n"); else fprintf (stdout, "In V7 mode\n");
LNOCI17790OCI_ATTR_SERVER
READ/WRITE
When read, returns the pointer to the server context attribute of the service context.
When changed, sets the server context attribute of the service context.
OCIServer **
/ OCIServer *
LNOCI17791OCI_ATTR_SESSION
READ/WRITE
When read, returns the pointer to the authentication context attribute of the service context.
When changed, sets the authentication context attribute of the service context.
OCISession **
/ OCISession *
READ/WRITE
Used to get and set the application's callback function on the OCISvcCtx
handle. This function, if registered on OCISvcCtx
, is called when a statement in the statement cache belonging to this service context is purged or when the session is ended.
The callback function must be of this prototype:
sword (*OCICallbackStmtCache)(void *ctx, OCIStmt *stmt, ub4 mode)
ctx
: IN argument. This is the same as the context the application has set on the current statement handle.
stmt
: IN argument. This is the statement handle that is being purged from the cache.
mode
: IN argument. This is the mode in which the callback function is being called. Currently only one value is supported, OCI_CBK_STMTCACHE_STMTPURGE
, which means the callback is being called during purging of the current statement.
sword (*OCICallbackStmtCache)(void *ctx, OCIStmt *stmt, ub4 mode)
LNOCI17792OCI_ATTR_STMTCACHESIZE
READ/WRITE
The default value of the statement cache size is 20 statements, for a statement cache-enabled session. The user can increase or decrease this value by setting this attribute on the service context handle. This attribute can also be used to enable or disable statement caching for the session, pooled or nonpooled. Statement caching can be enabled by setting the attribute to a nonzero size and disabled by setting it to zero.
ub4 *
/ ub4
LNOCI17793OCI_ATTR_TRANS
READ/WRITE
When read, returns the pointer to the transaction context attribute of the service context.
When changed, sets the transaction context attribute of the service context.
OCITrans **
/ OCITrans *
The following attributes are used for the server handle.
See Also:
The following event handle attributes are also available for the server handle:LNOCI17795OCI_ATTR_ACCESS_BANNER
READ
Displays an unauthorized access banner from a file.
oratext **
LNOCI17796OCI_ATTR_ENV
READ
Returns the environment context associated with the server context.
OCIEnv **
LNOCI17797OCI_ATTR_EXTERNAL_NAME
READ/WRITE
The external name is the user-friendly global name stored in sys.props$.value$,
where name = 'GLOBAL_DB_NAME'
. It is not guaranteed to be unique unless all databases register their names with a network directory service.
Database names can be exchanged with the server for distributed transaction coordination. Server database names can only be accessed only if the database is open at the time the OCISessionBegin()
call is issued.
oratext **
/ oratext *
LNOCI17798OCI_ATTR_FOCBK
READ/WRITE
Sets the failover callback to the callback definition structure of type OCIFocbkStruct
as part of failover callback registration and unregistration on the server context handle.
OCIFocbkStruct *
LNOCI17799OCI_ATTR_INTERNAL_NAME
READ/WRITE
Sets the client database name that is recorded when performing global transactions. The DBA can use the name to track transactions that may be pending in a prepared state due to failures.
oratext **
/ oratext *
LNOCI17800OCI_ATTR_IN_V8_MODE
READ
Allows you to determine whether an application has switched to Oracle release 7 mode (for example, through an OCISvcCtxToLda()
call). A nonzero (TRUE
) return value indicates that the application is currently running in Oracle release 8 mode, a zero (FALSE
) return value indicates that the application is currently running in Oracle release 7 mode.
ub1 *
LNOCI17801OCI_ATTR_NONBLOCKING_MODE
READ/WRITE
This attribute determines the blocking mode. When read, the attribute value returns TRUE
if the server context is in nonblocking mode. When set, it toggles the nonblocking mode attribute. You must set this attribute only after OCISessionBegin()
or OCILogon2()
has been called. Otherwise, an error is returned.
See Also:
"Nonblocking Mode in OCI"ub1 */ub1
LNOCI17802OCI_ATTR_SERVER_GROUP
READ/WRITE
An alphanumeric string not exceeding 30 characters specifying the server group. This attribute can only be set after calling OCIServerAttach()
.
See Also:
"Password and Session Management"oratext **/oratext *
LNOCI17803OCI_ATTR_SERVER_STATUS
READ
Returns the current status of the server handle. Values are:
OCI_SERVER_NORMAL
- There is an active connection to the server. The last call on the connection went through. There is no guarantee that the next call will go through.
OCI_SERVER_NOT_CONNECTED
- There is no connection to the server.
ub4 *
The following code sample shows how this parameter is used:
ub4 serverStatus = 0 OCIAttrGet((void *)srvhp, OCI_HTYPE_SERVER, (void *)&serverStatus, (ub4 *)0, OCI_ATTR_SERVER_STATUS, errhp); if (serverStatus == OCI_SERVER_NORMAL) printf("Connection is up.\n"); else if (serverStatus == OCI_SERVER_NOT_CONNECTED) printf("Connection is down.\n");
LNOCI17804OCI_ATTR_TAF_ENABLED
READ
Set to TRUE
if the server handle is TAF-enabled and FALSE
if not.
See Also:
"Custom Pooling: Tagged Server Handles"boolean *
LNOCI17805OCI_ATTR_USER_MEMORY
READ
If the handle was allocated with extra memory, this attribute returns a pointer to the user memory. A NULL
pointer is returned for those handles not allocated with extra memory.
See Also:
"Custom Pooling: Tagged Server Handles"void *
These attributes also apply to the user session handle.
See Also:
"User Session Handle Attributes"These attributes also apply to the authentication information handle.
WRITE
The name of the current action within the current module. Can be set to NULL
. When the current action terminates, set this attribute again with the name of the next action, or NULL
if there is no next action. Can be up to 32 bytes long.
oratext *
OCIAttrSet(session, OCI_HTYPE_SESSION,(void *)"insert into employees", (ub4)strlen("insert into employees"), OCI_ATTR_ACTION, error_handle);
Note:
This attribute is not supported with database resident connection pooling.WRITE
Specifies an attribute name of the externally initialized context.
oratext *
Note:
This attribute is not supported with database resident connection pooling.READ
Gets the application context list descriptor for the session.
OCIParam **
Note:
This attribute is not supported with database resident connection pooling.WRITE
Specifies the namespace of the externally initialized context.
oratext *
Note:
This attribute is not supported with database resident connection pooling.WRITE
Initializes the externally initialized context array size with the number of attributes.
ub4
Note:
This attribute is not supported with database resident connection pooling.WRITE
Specifies a value of the externally initialized context.
oratext *
READ
Display a user actions auditing banner from a file.
oratext **
READ
Returns the server-side time for the preceding call in microseconds.
ub8 *
WRITE
Specifies the certificate of the client for use in proxy authentication. Certificate-based proxy authentication using OCI_ATTR_CERTIFICATE
will not be supported in future Oracle Database releases. Use OCI_ATTR_DISTINGUISHED_NAME
or OCI_ATTR_USERNAME
attribute instead.
ub1 *
WRITE
Specifies the user identifier in the session handle. Can be up to 64 bytes long. It can contain the user name, but do not include the password for security reasons. The first character of the identifier should not be ':'. If it is, the behavior is unspecified.
oratext *
OCIAttrSet(session, OCI_HTYPE_SESSION,(void *)"janedoe", (ub4)strlen("janedoe"), OCI_ATTR_CLIENT_IDENTIFIER, error_handle);
WRITE
Client application additional information. Can also be set by the DBMS_APPLICATION_INFO package. It is stored in the V$SESSION view. Can be up to 64 bytes long.
oratext *
READ/WRITE
When set to TRUE
, causes the server to measure call time, in milliseconds, for each subsequent OCI call.
boolean */boolean
READ/WRITE
This attribute of OCIAuthInfo
handle explicitly names the connection class (a string of up to 128 characters) for a database resident connection pool.
oratext **/oratext *
READ/WRITE
Calling OCIAttrSet()
with this attribute has the same effect as the SQL command ALTER
SESSION
SET
CURRENT_SCHEMA
, if the schema name and the session exist. The schema is altered on the next OCI call that does a round-trip to the server, avoiding an extra round-trip. If the new schema name does not exist, the same error is returned as the error returned from ALTER
SESSION
SET
CURRENT_SCHEMA
. The new schema name is placed before database objects in DML or DDL commands that you then enter.
When a client using this attribute communicates with a server that has a software release earlier than Oracle Database 10g Release 2, the OCIAttrSet()
call is ignored. This attribute is also readable by OCIAttrGet()
.
ub4/ub4
text schema[] = "hr"; err = OCIAttrSet( (void ) mysessp, OCI_HTYPE_SESSION, (void *)schema, (ub4)strlen( (char *)schema), OCI_ATTR_CURRENT_SCHEMA, (OCIError *)myerrhp);
OCI_ATTR_DEFAULT_LOBPREFETCH_SIZE
READ/WRITE
Allows the user to enable prefetching for all the LOB locators fetched in the session. Specifies the default prefetch buffer size for each LOB locator.
ub4 *
/ub4
WRITE
Specifies distinguished name of the client for use in proxy authentication.
oratext *
READ/WRITE
Specifies the name of the driver layer using OCI, such as JDBC, ODBC, PHP, SQL*Plus, and so on. Names starting with "ORA$" are reserved also. A future application can choose its own name and set it as an aid to fault diagnosability. Set this attribute before executing OCISessionBegin()
. Pass an array containing up to 9 single-byte characters, including the null terminator. This data is not validated and is passed directly to the server to be displayed in a V$SESSION_CONNECT_INFO
or GV$SESSION_CONNECT_INFO
view. OCI only ensures that the driver name array is not greater than 30 characters. If more than 9 characters are passed, only the first 8 characters are displayed.
oratext **/oratext *
... oratext client_driver[9]; ... checkerr(errhp, OCIAttrSet(authp, OCI_HTYPE_SESSION, client_driver, (ub4)(strlen(client_driver)), OCI_ATTR_DRIVER_NAME, errhp)); checkerr(errhp, OCISessionBegin(svchp, errhp, authp, OCI_CRED_RDBMS, OCI_DEFAULT); ...
READ/WRITE
Specifies the edition to be used for this session. If a value for this attribute has not been set explicitly, the value in the environment variable ORA_EDITION
is returned.
oratext *
WRITE
Specifies the role or roles that the client is to initially possess when the application server connects to an Oracle database on its behalf.
oratext **
READ/WRITE
Specifies the session identified for the session handle. Allows you to clone a session from one environment to another, in the same process or between processes. These processes can be on the same system or different systems. For a session to be cloned, the session must be authenticated as migratable.
See Also:
"Password and Session Management"ub1 *
The following code sample shows how this attribute is used:
OCIAttrSet ((void *) authp, (ub4)OCI_HTYPE_SESSION, (void *) mig_session, (ub4) sz, (ub4)OCI_ATTR_MIGSESSION, errhp);
WRITE
The name of the current module running in the client application. When the current module terminates, call with the name of the new module, or use NULL
if there is no new module. Can be up to 48 bytes long.
oratext *
OCIAttrSet(session, OCI_HTYPE_SESSION,(void *)"add_employee", (ub4)strlen("add_employee"), OCI_ATTR_MODULE, error_handle);
WRITE
Specifies a password to use for authentication.
oratext *
WRITE
Specifies the target user name for access through a proxy.
oratext *
WRITE
Specifies that the credentials of the application server are to be used for proxy authentication.
OCISession
READ/WRITE
An attribute of the OCIAuthInfo
handle for database resident connection pooling. Values are OCI_ATTR_PURITY_NEW
, the application requires a session not tainted with any prior session state; or OCI_ATTR_PURITY_SELF
, the session can have been used before. If the application does not specify the purity when invoking OCISessionGet()
, the purity value OCI_ATTR_PURITY_DEFAULT
is assumed. This later translates to either OCI_ATTR_PURITY_NEW
or OCI_ATTR_PURITY_SELF
depending on the type of application.
ub4 */ub4
READ/WRITE
Specifies the current state of the database session. Set to OCI_SESSION_STATEFUL
if the session is required to perf rm a database task. If the application is no longer dependent on the current session for subsequent database activity, set to OCI_SESSION_STATELESS
.
See Also:
"Marking Sessions Explicitly as Stateful or Stateless" for more information and an example usingOCI_ATTR_SESSION_STATE
ub1 *
READ/WRITE
Specifies a user name to use for authentication.
oratext **/oratext *
The following attributes are used for the administration handle.
LNOCI17836OCI_ATTR_ADMIN_PFILE
READ/WRITE
Set this attribute before a call to OCIDBStartup()
to specify the location of the client-side parameter file that is used to start the database. If this attribute is not set, then the server-side parameter file is used. If the server-side parameter file does not exist, an error is returned.
oratext */oratext *
The following attributes are used for the connection pool handle.
LNOCI17838OCI_ATTR_CONN_TIMEOUT
Note:
Shrinkage of the pool only occurs when there is a network round-trip. If there are no operations, then the connections remain active.READ/WRITE
Connections idle for more than this time value (in seconds) are terminated to maintain an optimum number of open connections. This attribute can be set dynamically. If this attribute is not set, the connections are never timed out.
ub4 */ub4
LNOCI17839OCI_ATTR_CONN_NOWAIT
READ/WRITE
This attribute determines if retrial for a connection must be performed when all connections in the pool are found to be busy and the number of connections has reached the maximum.
If this attribute is set, an error is thrown when all the connections are busy and no more connections can be opened. Otherwise, the call waits until it gets a connection.
When read, the attribute value is returned as TRUE
if it has been set.
ub1 */ub1
LNOCI17840OCI_ATTR_CONN_BUSY_COUNT
READ
Returns the number of busy connections.
ub4 *
LNOCI17841OCI_ATTR_CONN_OPEN_COUNT
READ
Returns the number of open connections.
ub4 *
LNOCI17842OCI_ATTR_CONN_MIN
READ
Returns the number of minimum connections.
ub4 *
LNOCI17843OCI_ATTR_CONN_MAX
READ
Returns the number of maximum connections.
ub4 *
LNOCI17844OCI_ATTR_CONN_INCR
READ
Returns the connection increment parameter.
ub4 *
The following attributes are used for the session pool handle.
LNOCI17846OCI_ATTR_SPOOL_BUSY_COUNT
READ
Returns the number of busy sessions.
ub4 *
LNOCI17847OCI_ATTR_SPOOL_GETMODE
READ/WRITE
This attribute determines the behavior of the session pool when all sessions in the pool are found to be busy and the number of sessions has reached the maximum. Values are:
OCI_SPOOL_ATTRVAL_WAIT
- The thread waits and blocks until a session is freed. This is the default value.
OCI_SPOOL_ATTRVAL_NOWAIT
- An error is returned.
OCI_SPOOL_ATTRVAL_FORCEGET
- A new session is created even though all the sessions are busy and the maximum number of sessions has been reached. OCISessionGet()
returns a warning. In this case, if new sessions are created that have exceeded the maximum, OCISessionGet()
returns a warning.
Note that if this value is set, it is possible that there can be an attempt to create more sessions than can be supported by the instance of the Oracle database. In this case, the server returns the following error:
ORA 00018 - Maximum number of sessions exceeded
In this case, the error is propagated to the session pool user.
When read, the appropriate attribute value is returned.
ub1 */ ub1
LNOCI17848OCI_ATTR_SPOOL_INCR
READ
Returns the session increment parameter.
ub4 *
LNOCI17849OCI_ATTR_SPOOL_MAX
READ
Returns the number of maximum sessions.
ub4 *
LNOCI17850OCI_ATTR_SPOOL_MIN
READ
Returns the number of minimum sessions.
ub4 *
LNOCI17851OCI_ATTR_SPOOL_OPEN_COUNT
READ
Returns the number of open sessions.
ub4 *
WRITE
To make pre-session creation attributes effective on the sessions being retrieved from the session pool, this attribute can be set on the session pool handle. Currently only the following attributes can be set on this OCIAuthInfo
handle:
OCI_ATTR_DRIVER_NAME
OCI_ATTR_EDITION
If any other attributes are set on the OCIAuthInfo
handle and the OCIAuthInfo
handle is set on the session pool handle, an error results.Moreover, the OCIAuthInfo
handle should be set on the session pool handle only before calling OCISessionPoolCreate()
with the session pool handle. Setting it after OCISessionPoolCreate()
results in an error.
OCIAuthInfo *
LNOCI17854OCI_ATTR_SPOOL_STMTCACHESIZE
READ/WRITE
Sets the default statement cache size to this value for each of the sessions in a session pool. The statement cache size for a particular session in the pool can, at any time, be overridden by using OCI_ATTR_STMTCACHESIZE
on that session.
See Also:
"Statement Caching in OCI"ub4 *
/ ub4
LNOCI17853OCI_ATTR_SPOOL_TIMEOUT
READ/WRITE
The sessions idle for more than this time (in seconds) are terminated periodically to maintain an optimum number of open sessions. This attribute can be set dynamically. If this attribute is not set, the least recently used sessions may be timed out if and when space in the pool is required. OCI only checks for timed out sessions when it releases one back to the pool.
ub4 */ ub4
The following attributes are used for the transaction handle.
LNOCI17856OCI_ATTR_TRANS_NAME
READ/WRITE
Can be used to establish or read a text string that identifies a transaction. This is an alternative to using the XID to identify the transaction. The oratext string can be up to 64 bytes long.
oratext **
(READ) / oratext *
(WRITE)
LNOCI17857OCI_ATTR_TRANS_TIMEOUT
READ/WRITE
Can set or read a timeout interval value used at prepare time.
ub4 *
(READ) / ub4
(WRITE)
LNOCI17858OCI_ATTR_XID
READ/WRITE
Can set or read an XID that identifies a transaction.
XID **
(READ) / XID *
(WRITE)
The following attributes are used for the statement handle.
LNOCI17860OCI_ATTR_BIND_COUNT
READ
Returns the number of bind positions on the statement handle.
ub4 *
OCIHandleAlloc(env,(void **) &pStatement, OCI_HTYPE_STMT, (size_t)0, (void **)0); OCIStmtPrepare (pStatement, err, pszQuery, (ub4)strlen(pszQuery), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); OCIAttrGet(pStatement, OCI_HTYPE_STMT, &iNbParameters, NULL, OCI_ATTR_BIND_COUNT, err);
LNOCI17861OCI_ATTR_CHNF_REGHANDLE
WRITE
When this attribute is set to the appropriate subscription handle, execution of the query also creates the registration of the query for continuous query notification.
OCISubscription *
/* Associate the statement with the subscription handle */ OCIAttrSet (stmthp, OCI_HTYPE_STMT, subscrhp, 0, OCI_ATTR_CHNF_REGHANDLE, errhp);
LNOCI17862OCI_ATTR_CQ_QUERYID
READ
Obtains the query ID of a registered query after registration is made by the call to OCIStmtExecute()
.
ub8 *
LNOCI17863OCI_ATTR_CURRENT_POSITION
READ
Indicates the current position in the result set. This attribute can only be retrieved. It cannot be set.
ub4 *
LNOCI17864OCI_ATTR_ENV
READ
Indicates the current position in the result set. This attribute can only be retrieved. It cannot be set.
ub4 *
LNOCI17865OCI_ATTR_FETCH_ROWID
READ/WRITE
Specifies that the ROWID
s are fetched after doing a define at position
0, and a SELECT...FOR UPDATE
statement.
boolean */boolean
See Also:
"Implicit Fetching of ROWIDs"LNOCI17866OCI_ATTR_NUM_DML_ERRORS
READ
Returns the number of errors in the DML operation.
ub4 *
LNOCI17867OCI_ATTR_PARAM_COUNT
READ
Gets the number of columns in the select-list for the statement associated with the statement handle.
ub4 *
... int i = 0; ub4 parmcnt = 0; ub2 type = 0; OCIParam *colhd = (OCIParam *) 0; /* column handle */ /* Describe of a select-list */ OraText *sqlstmt = (OraText *)"SELECT * FROM employees WHERE employee_id = 100"; checkerr(errhp, OCIStmtPrepare(stmthp, errhp, (OraText *)sqlstmt, (ub4)strlen((char *)sqlstmt), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT)); checkerr(errhp, OCIStmtExecute(svchp, stmthp, errhp, 1, 0, (OCISnapshot *)0, (OCISnapshot *)0, OCI_DESCRIBE_ONLY)); /* Get the number of columns in the select list */ checkerr(errhp, OCIAttrGet((void *)stmthp, OCI_HTYPE_STMT, (void *)&parmcnt, (ub4 *)0, OCI_ATTR_PARAM_COUNT, errhp)); /* Go through the column list and retrieve the data type of each column. You start from pos = 1 */ for (i = 1; i <= parmcnt; i++) { /* Get parameter for column i */ checkerr(errhp, OCIParamGet((void *)stmthp, OCI_HTYPE_STMT, errhp, (void **)&colhd, i)); /* Get data-type of column i */ type = 0; checkerr(errhp, OCIAttrGet((void *)colhd, OCI_DTYPE_PARAM, (void *)&type, (ub4 *)0, OCI_ATTR_DATA_TYPE, errhp)); } ...
LNOCI17868OCI_ATTR_PARSE_ERROR_OFFSET
READ
Returns the parse error offset for a statement.
ub2 *
LNOCI17869OCI_ATTR_PREFETCH_MEMORY
WRITE
Sets the memory level for top-level rows to be prefetched. Rows up to the specified top-level row count are fetched if the memory level occupies no more than the specified memory usage limit. The default value is 0, which means that memory size is not included in computing the number of rows to prefetch.
ub4 *
LNOCI17870OCI_ATTR_PREFETCH_ROWS
WRITE
Sets the number of top-level rows to be prefetched. The default value is 1 row.
ub4 *
LNOCI17871OCI_ATTR_ROW_COUNT
READ
Returns the number of rows processed so far after SELECT
statements. For INSERT
, UPDATE
, and DELETE
statements, it is the number of rows processed by the most recent statement. The default value is 1.
For nonscrollable cursors, OCI_ATTR_ROW_COUNT
is the total number of rows fetched into user buffers with the OCIStmtFetch2()
calls issued since this statement handle was executed. Because they are forward sequential only, this also represents the highest row number seen by the application.
For scrollable cursors, OCI_ATTR_ROW_COUNT
represents the maximum (absolute) row number fetched into the user buffers. Because the application can arbitrarily position the fetches, this need not be the total number of rows fetched into the user's buffers since the (scrollable) statement was executed.
ub4 *
LNOCI17872OCI_ATTR_ROWID
READ
Returns the ROWID
descriptor allocated with OCIDescriptorAlloc()
.
OCIRowid *
LNOCI17873OCI_ATTR_ROWS_FETCHED
READ
Indicates the number of rows that were successfully fetched into the user's buffers in the last fetch or execute with nonzero iterations. It can be used for both scrollable and nonscrollable statement handles.
ub4 *
ub4 rows; ub4 sizep = sizeof(ub4); OCIAttrGet((void *) stmhp, (ub4) OCI_HTYPE_STMT, (void *)& rows, (ub4 *) &sizep, (ub4)OCI_ATTR_ROWS_FETCHED, errhp);
LNOCI251OCI_ATTR_SQLFNCODE
READ
Returns the function code of the SQL command associated with the statement.
ub2 *
Table A-1 lists the SQL command codes.
LNOCI17874Table A-1 SQL Command Codes
Code | SQL Function | Code | SQL Function | Code | SQL Function |
---|---|---|---|---|---|
01 |
CREATE TABLE |
43 |
DROP EXTERNAL DATABASE |
85 |
TRUNCATE TABLE |
02 |
SET ROLE |
44 |
CREATE DATABASE |
86 |
TRUNCATE CLUSTER |
03 |
INSERT |
45 |
ALTER DATABASE |
87 |
CREATE BITMAPFILE |
04 |
SELECT |
46 |
CREATE ROLLBACK SEGMENT |
88 |
ALTER VIEW |
05 |
UPDATE |
47 |
ALTER ROLLBACK SEGMENT |
89 |
DROP BITMAPFILE |
06 |
DROP ROLE |
48 |
DROP ROLLBACK SEGMENT |
90 |
SET CONSTRAINTS |
07 |
DROP VIEW |
49 |
CREATE TABLESPACE |
91 |
CREATE FUNCTION |
08 |
DROP TABLE |
50 |
ALTER TABLESPACE |
92 |
ALTER FUNCTION |
09 |
DELETE |
51 |
DROP TABLESPACE |
93 |
DROP FUNCTION |
10 |
CREATE VIEW |
52 |
ALTER SESSION |
94 |
CREATE PACKAGE |
11 |
DROP USER |
53 |
ALTER USER |
95 |
ALTER PACKAGE |
12 |
CREATE ROLE |
54 |
COMMIT (WORK) |
96 |
DROP PACKAGE |
13 |
CREATE SEQUENCE |
55 |
ROLLBACK |
97 |
CREATE PACKAGE BODY |
14 |
ALTER SEQUENCE |
56 |
SAVEPOINT |
98 |
ALTER PACKAGE BODY |
15 |
(NOT USED) |
57 |
CREATE CONTROL FILE |
99 |
DROP PACKAGE BODY |
16 |
DROP SEQUENCE |
58 |
ALTER TRACING |
157 |
CREATE DIRECTORY |
17 |
CREATE SCHEMA |
59 |
CREATE TRIGGER |
158 |
DROP DIRECTORY |
18 |
CREATE CLUSTER |
60 |
ALTER TRIGGER |
159 |
CREATE LIBRARY |
19 |
CREATE USER |
61 |
DROP TRIGGER |
160 |
CREATE JAVA |
20 |
CREATE INDEX |
62 |
ANALYZE TABLE |
161 |
ALTER JAVA |
21 |
DROP INDEX |
63 |
ANALYZE INDEX |
162 |
DROP JAVA |
22 |
DROP CLUSTER |
64 |
ANALYZE CLUSTER |
163 |
CREATE OPERATOR |
23 |
VALIDATE INDEX |
65 |
CREATE PROFILE |
164 |
CREATE INDEXTYPE |
24 |
CREATE PROCEDURE |
66 |
DROP PROFILE |
165 |
DROP INDEXTYPE |
25 |
ALTER PROCEDURE |
67 |
ALTER PROFILE |
166 |
ALTER INDEXTYPE |
26 |
ALTER TABLE |
68 |
DROP PROCEDURE |
167 |
DROP OPERATOR |
27 |
EXPLAIN |
69 |
(NOT USED) |
168 |
ASSOCIATE STATISTICS |
28 |
GRANT |
70 |
ALTER RESOURCE COST |
169 |
DISASSOCIATE STATISTICS |
29 |
REVOKE |
71 |
CREATE SNAPSHOT LOG |
170 |
CALL METHOD |
30 |
CREATE SYNONYM |
72 |
ALTER SNAPSHOT LOG |
171 |
CREATE SUMMARY |
31 |
DROP SYNONYM |
73 |
DROP SNAPSHOT LOG |
172 |
ALTER SUMMARY |
32 |
ALTER SYSTEM SWITCH LOG |
74 |
CREATE SNAPSHOT |
173 |
DROP SUMMARY |
33 |
SET TRANSACTION |
75 |
ALTER SNAPSHOT |
174 |
CREATE DIMENSION |
34 |
PL/SQL EXECUTE |
76 |
DROP SNAPSHOT |
175 |
ALTER DIMENSION |
35 |
LOCK |
77 |
CREATE TYPE |
176 |
DROP DIMENSION |
36 |
NOOP |
78 |
DROP TYPE |
177 |
CREATE CONTEXT |
37 |
RENAME |
79 |
ALTER ROLE |
178 |
DROP CONTEXT |
38 |
COMMENT |
80 |
ALTER TYPE |
179 |
ALTER OUTLINE |
39 |
AUDIT |
81 |
CREATE TYPE BODY |
180 |
CREATE OUTLINE |
40 |
NO AUDIT |
82 |
ALTER TYPE BODY |
181 |
DROP OUTLINE |
41 |
ALTER INDEX |
83 |
DROP TYPE BODY |
182 |
UPDATE INDEXES |
42 |
CREATE EXTERNAL DATABASE |
84 |
DROP LIBRARY |
183 |
ALTER OPERATOR |
LNOCI17875OCI_ATTR_STATEMENT
READ
Returns the text of the SQL statement prepared in a statement handle. In UTF-16 mode, the returned statement is in UTF-16 encoding. The length is always in bytes.
oratext *
READ/WRITE
Used to get and set the application's opaque context on the statement handle. This context can be of any type that the application defines. It is primarily used for encompassing the bind and define buffer addresses.
void *
LNOCI17877OCI_ATTR_STMT_STATE
READ
Returns the fetch state of that statement. This attribute can be used by the caller to determine if the session can be used in another service context or if it is still needed in the current set of data access calls. Basically, if you are in the middle of a fetch-execute cycle, then you do not want to release the session handle for another statement execution. Valid values are:
OCI_STMT_STATE_INITIALIZED
OCI_STMT_STATE_EXECUTED
OCI_STMT_STATE_END_OF_FETCH
ub4 *
LNOCI17878OCI_ATTR_STMT_TYPE
READ
The type of statement associated with the handle. Valid values are:
OCI_STMT_SELECT
OCI_STMT_UPDATE
OCI_STMT_DELETE
OCI_STMT_INSERT
OCI_STMT_CREATE
OCI_STMT_DROP
OCI_STMT_ALTER
OCI_STMT_BEGIN
(PL/SQL statement)
OCI_STMT_DECLARE
(PL/SQL statement)
ub2 *
The following attributes are used for the bind handle.
LNOCI17880OCI_ATTR_CHAR_COUNT
WRITE
Sets the number of characters in character type data.
See Also:
"Buffer Expansion During OCI Binding"ub4 *
LNOCI17881OCI_ATTR_CHARSET_FORM
READ/WRITE
Character set form of the bind handle. The default form is SQLCS_IMPLICIT
. Setting this attribute causes the bind handle to use the database or national character set on the client side. Set this attribute to SQLCS_NCHAR
for the national character set or SQLCS_IMPLICIT
for the database character set.
ub1 *
LNOCI17882OCI_ATTR_CHARSET_ID
READ/WRITE
Character set ID of the bind handle. If the character set of the input data is UTF-16 (replaces the deprecated OCI_UC2SID
, which is retained for backward compatibility), the user must set the character set ID to OCI_UTF16ID
. The bind value buffer is assumed to be a utext
buffer, so length semantics for input length pointers and return values changes to character semantics (number of utext
s). However, the size of the bind value buffer in the preceding OCIBind
call must be stated in bytes.
If OCI_ATTR_CHARSET_FORM
is set, then OCI_ATTR_CHARSET_ID
should be set only afterward. Setting OCI_ATTR_CHARSET_ID
before setting OCI_ATTR_CHARSET_FORM
causes unexpected results.
ub2 *
LNOCI17883OCI_ATTR_MAXCHAR_SIZE
WRITE
Sets the number of characters that an application reserves on the server to store the data being bound.
sb4 *
LNOCI17884OCI_ATTR_MAXDATA_SIZE
READ/WRITE
Sets the maximum number of bytes allowed in the buffer on the server side to accommodate client-side bind data after character set conversions.
sb4 *
LNOCI17885OCI_ATTR_PDPRC
WRITE
Specifies packed decimal precision. For SQLT_PDN
values, the precision should be equal to 2*(value_sz-1)
. For SQLT_SLS
values, the precision should be equal to (value_sz-1)
.
After a bind or define, this value is initialized to zero. The OCI_ATTR_PDPRC
attribute should be set first, followed by OCI_ATTR_PDSCL
. If either of these values must be changed, first perform a rebind/redefine operation, and then reset the two attributes in order.
ub2 *
LNOCI17886OCI_ATTR_PDSCL
WRITE
Specifies the scale for packed decimal values.
After a bind or define, this value is initialized to zero. The OCI_ATTR_PDPRC
attribute should be set first, followed by OCI_ATTR_PDSCL
. If either of these values must be changed, first perform a rebind/redefine operation, and then reset the two attributes in order.
sb2 *
LNOCI17887OCI_ATTR_ROWS_RETURNED
READ
This attribute returns the number of rows that will be returned in the current iteration when you are in the OUT
callback function for binding a DML statement with a RETURNING
clause.
ub4 *
The following attributes are used for the define handle.
LNOCI17889OCI_ATTR_CHAR_COUNT
WRITE
This attribute is deprecated.
Sets the number of characters in character type data. This specifies the number of characters desired in the define buffer. The define buffer length as specified in the define call must be greater than number of characters.
ub4 *
LNOCI17890OCI_ATTR_CHARSET_FORM
READ/WRITE
The character set form of the define handle. The default form is SQLCS_IMPLICIT
. Setting this attribute causes the define handle to use the database or national character set on the client side. Set this attribute to SQLCS_NCHAR
for the national character set or SQLCS_IMPLICIT
for the database character set.
ub1 *
LNOCI17891OCI_ATTR_CHARSET_ID
READ/WRITE
The character set ID of the define handle. If the character set of the output data should be UTF-16, the user must set the character set IDOTT to OCI_UTF16ID
. The define value buffer is assumed to be a utext
buffer, so length semantics for indicators and return values changes to character semantics (number of utexts). However, the size of the define value buffer in the preceding OCIDefine
call must be stated in bytes.
If OCI_ATTR_CHARSET_FORM
is set, then OCI_ATTR_CHARSET_ID
should be set only afterward. Setting OCI_ATTR_CHARSET_ID
before setting OCI_ATTR_CHARSET_FORM
causes unexpected results.
ub2 *
LNOCI17892OCI_ATTR_LOBPREFETCH_LENGTH
READ/WRITE
Specifies the prefetch length and chunk size for the LOB locators to be fetched from a particular column.
boolean */boolean
LNOCI17893OCI_ATTR_LOBPREFETCH_SIZE
READ/WRITE
Overrides the default cache buffer size for the LOB locators to be fetched from a particular column.
ub4 *
/ub4
LNOCI17894OCI_ATTR_MAXCHAR_SIZE
WRITE
Specifies the maximum number of characters that the client application allows in the define buffer.
sb4 *
LNOCI17895OCI_ATTR_PDPRC
WRITE
Specifies packed decimal precision. For SQLT_PDN values, the precision should be equal to 2*(value_sz-1)
. For SQLT_SLS values, the precision should be equal to (value_sz-1)
.
After a bind or define, this value is initialized to zero. The OCI_ATTR_PDPRC
attribute should be set first, followed by OCI_ATTR_PDSCL
. If either of these values must be changed, first perform a rebind/redefine operation, and then reset the two attributes in order.
ub2 *
LNOCI17896OCI_ATTR_PDSCL
WRITE
Specifies the scale for packed decimal values.
After a bind or define, this value is initialized to zero. The OCI_ATTR_PDPRC
attribute should be set first, followed by OCI_ATTR_PDSCL
. If either of these values must be changed, first perform a rebind/redefine operation, and then reset the two attributes in order.
sb2 *
The following attributes are used for the describe handle.
LNOCI17898OCI_ATTR_PARAM
READ
Points to the root of the description. Used for subsequent calls to OCIAttrGet()
and OCIParamGet()
.
ub4 *
LNOCI17899OCI_ATTR_PARAM_COUNT
READ
Returns the number of parameters in the describe handle. When the describe handle is a description of the select list, this refers to the number of columns in the select list.
ub4 *
The following attributes are used for the parameter descriptor.
For a detailed list of parameter descriptor attributes, see Chapter 6.
The following attributes are used for the parameter descriptor.
LNOCI17902OCI_ATTR_LOBEMPTY
WRITE
Sets the internal LOB locator to empty. The locator can then be used as a bind variable for an INSERT
or UPDATE
statement to initialize the LOB to empty. Once the LOB is empty, OCILobWrite2() or OCILobWrite() (deprecated) can be called to populate the LOB with data. This attribute is only valid for internal LOBs (that is, BLOB
, CLOB
, NCLOB
).
Applications should pass the address of a ub4
that has a value of 0; for example, declare the following:
ub4 lobEmpty = 0
Then they should pass the address: &lobEmpty
.
ub4 *
The following attributes are used for complex objects.
See Also:
"Complex Object Retrieval"The following attributes are used for the complex object retrieval handle.
LNOCI17911OCI_ATTR_COMPLEXOBJECT_LEVEL
WRITE
The depth level for complex object retrieval.
ub4 *
LNOCI17912OCI_ATTR_COMPLEXOBJECT_COLL_OUTOFLINE
WRITE
Whether to fetch collection attributes in an object type out-of-line.
ub1 *
The following attributes are used for the complex object retrieval descriptor.
LNOCI17914OCI_ATTR_COMPLEXOBJECTCOMP_TYPE
WRITE
A type of REF
to follow for complex object retrieval.
void *
LNOCI17915OCI_ATTR_COMPLEXOBJECTCOMP_TYPE_LEVEL
WRITE
Depth level for the following REF
s of type OCI_ATTR_COMPLEXOBJECTCOMP_TYPE
.
ub4 *
The following attributes are used for the streams advanced queuing descriptor.
LNOCI17917The following attributes are properties of the OCIAQEnqOptions
descriptor.
LNOCI17918OCI_ATTR_MSG_DELIVERY_MODE
WRITE
The enqueue call can enqueue a persistent or buffered message into a queue, by setting the OCI_ATTR_MSG_DELIVERY_MODE
attribute in the OCIAQEnqOptions
descriptor to OCI_MSG_PERSISTENT
or OCI_MSG_BUFFERED
, respectively. The default value for this attribute is OCI_MSG_PERSISTENT
.
ub2
LNOCI17919OCI_ATTR_RELATIVE_MSGID
READ/WRITE
This feature is deprecated and may be removed in a future release.
Specifies the message identifier of the message that is referenced in the sequence deviation operation. This value is valid if and only if OCI_ENQ_BEFORE
is specified in OCI_ATTR_SEQUENCE_DIVISION
. This value is ignored if the sequence deviation is not specified.
OCIRaw *
LNOCI17920OCI_ATTR_SEQUENCE_DEVIATION
READ/WRITE
This feature is deprecated for new applications, but it is retained for compatibility.
It specifies whether the message being enqueued should be dequeued before other messages in the queue.
ub4
The only valid values are:
OCI_ENQ_BEFORE
- The message is enqueued ahead of the message specified by OCI_ATTR_RELATIVE_MSGID
.
OCI_ENQ_TOP
- The message is enqueued ahead of any other messages.
LNOCI17921OCI_ATTR_TRANSFORMATION
READ/WRITE
The name of the transformation that must be applied before the message is enqueued into the database. The transformation must be created using DBMS_TRANSFORM
.
oratext *
LNOCI17922OCI_ATTR_VISIBILITY
READ/WRITE
Specifies the transactional behavior of the enqueue request.
ub4
The only valid values are:
OCI_ENQ_ON_COMMIT
- The enqueue is part of the current transaction. The operation is complete when the transaction commits. This is the default case.
OCI_ENQ_IMMEDIATE
- The enqueue is not part of the current transaction. The operation constitutes a transaction of its own.
The following attributes are properties of the OCIAQDeqOptions
descriptor.
LNOCI17924OCI_ATTR_CONSUMER_NAME
READ/WRITE
Name of the consumer. Only those messages matching the consumer name are accessed. If a queue is not set up for multiple consumers, this field should be set to null
.
oratext *
LNOCI17925OCI_ATTR_CORRELATION
READ/WRITE
Specifies the correlation identifier of the message to be dequeued. Special pattern-matching characters, such as the percent sign (%) and the underscore (_), can be used. If multiple messages satisfy the pattern, the order of dequeuing is undetermined.
oratext *
LNOCI17926OCI_ATTR_DEQ_MODE
READ/WRITE
Specifies the locking behavior associated with the dequeue.
ub4
The only valid values are:
OCI_DEQ_BROWSE
- Read the message without acquiring any lock on the message. This is equivalent to a SELECT
statement.
OCI_DEQ_LOCKED
- Read and obtain a write lock on the message. The lock lasts for the duration of the transaction. This is equivalent to a SELECT
FOR
UPDATE
statement.
OCI_DEQ_REMOVE
- Read the message and update or delete it. This is the default. The message can be retained in the queue table based on the retention properties.
OCI_DEQ_REMOVE_NODATA
- Confirm receipt of the message, but do not deliver the actual message content.
LNOCI17927OCI_ATTR_DEQ_MSGID
READ/WRITE
Specifies the message identifier of the message to be dequeued.
OCIRaw *
LNOCI17928OCI_ATTR_DEQCOND
READ/WRITE
This attribute is a Boolean expression similar to the WHERE
clause of a SQL query. This Boolean expression can include conditions on message properties, user data properties (object payloads only), and PL/SQL or SQL functions.
To specify dequeue conditions on a message payload (object payload), use attributes of the object type in clauses. You must prefix each attribute with tab.user_data
as a qualifier to indicate the specific column of the queue table that stores the payload.
The attribute cannot exceed 4000 characters. If multiple messages satisfy the dequeue condition, then the order of dequeuing is indeterminate, and the sort order of the queue is not honored.
oratext *
checkerr(errhp, OCIAttrSet(deqopt, OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *)"tab.priority between 2 and 4" , strlen("tab.priority between 2 and 4"), OCI_ATTR_DEQCOND, errhp));
LNOCI17929OCI_ATTR_MSG_DELIVERY_MODE
WRITE
You can specify the dequeue call to dequeue persistent, buffered, or both kinds of messages from a queue, by setting the OCI_ATTR_MSG_DELIVERY_MODE
attribute in the OCIAQDeqOptions
descriptor to OCI_MSG_PERSISTENT
, OCI_MSG_BUFFERED
, or OCI_MSG_PERSISTENT_OR_BUFFERED
, respectively. The default value for this attribute is OCI_MSG_PERSISTENT
.
ub2
LNOCI17930OCI_ATTR_NAVIGATION
READ/WRITE
Specifies the position of the message that is retrieved. First, the position is determined. Second, the search criterion is applied. Finally, the message is retrieved.
ub4
The only valid values are:
OCI_DEQ_FIRST_MSG
- Retrieves the first available message that matches the search criteria. This resets the position to the beginning of the queue.
OCI_DEQ_NEXT_MSG
- Retrieves the next available message that matches the search criteria. If the previous message belongs to a message group, AQ retrieves the next available message that matches the search criteria and belongs to the message group. This is the default.
OCI_DEQ_NEXT_TRANSACTION
- Skips the remainder of the current transaction group (if any) and retrieves the first message of the next transaction group. This option can only be used if message grouping is enabled for the current queue.
OCI_DEQ_FIRST_MSG_MULTI_GROUP
- Indicates that a call to OCIAQDeqArray()
resets the position to the beginning of the queue and dequeue messages (possibly across different transaction groups) that are available and match the search criteria, until reaching the iters
limit. To distinguish between transaction groups, a new message property, OCI_ATTR_TRANSACTION_NO
, is defined. All messages belonging to the same transaction group have the same value for this message property.
OCI_DEQ_NEXT_MSG_MULTI_GROUP
- Indicates that a call to OCIAQDeqArray()
dequeues the next set of messages (possibly across different transaction groups) that are available and match the search criteria, until reaching the iters
limit. To distinguish between transaction groups, a new message property, OCI_ATTR_TRANSACTION_NO
, is defined. All messages belonging to the same transaction group have the same value for this message property.
LNOCI17931OCI_ATTR_TRANSFORMATION
READ/WRITE
The name of the transformation that must be applied after the message is dequeued but before returning it to the dequeuing application. The transformation must be created using DBMS_TRANSFORM
.
oratext *
LNOCI17932OCI_ATTR_VISIBILITY
READ/WRITE
Specifies whether the new message is dequeued as part of the current transaction. The visibility parameter is ignored when using the BROWSE
mode.
ub4
The only valid values are:
OCI_DEQ_ON_COMMIT
- The dequeue is part of the current transaction. This is the default.
OCI_DEQ_IMMEDIATE
- The dequeued message is not part of the current transaction. It constitutes a transaction on its own.
LNOCI17933OCI_ATTR_WAIT
READ/WRITE
Specifies the wait time if no message is currently available that matches the search criteria. This parameter is ignored if messages in the same group are being dequeued.
ub4
Any ub4
value is valid, but the following predefined constants are provided:
OCI_DEQ_WAIT_FOREVER
- Wait forever. This is the default.
OCI_DEQ_NO_WAIT
- Do not wait.
Note:
If theOCI_DEQ_NO_WAIT
option is used to poll a queue, then messages are not dequeued after polling an empty queue. Use the OCI_DEQ_FIRST_MSG
option instead of the default OCI_DEQ_NEXT_MSG
setting of OCI_ATTR_NAVIGATION
. You can also use a nonzero wait setting (1 is suggested) of OCI_ATTR_WAIT
for the dequeue.The following attributes are properties of the OCIAQMsgProperties
descriptor.
LNOCI17935OCI_ATTR_ATTEMPTS
READ
Specifies the number of attempts that have been made to dequeue the message. This parameter cannot be set at enqueue time.
sb4
Any sb4
value is valid.
LNOCI17936OCI_ATTR_CORRELATION
READ/WRITE
Specifies the identification supplied by the producer for a message at enqueuing.
oratext *
Any string up to 128 bytes is valid.
LNOCI17937OCI_ATTR_DELAY
READ/WRITE
Specifies the number of seconds to delay the enqueued message. The delay represents the number of seconds after which a message is available for dequeuing. Dequeuing by message ID (msgid) overrides the delay specification. A message enqueued with delay set is in the WAITING
state; when the delay expires the messages goes to the READY
state. DELAY
processing requires the queue monitor to be started. Note that the delay is set by the producer who enqueues the message.
sb4
Any sb4 value is valid, but the following predefined constant is available:
LNOCI17938OCI_ATTR_ENQ_TIME
READ
Specifies the time that the message was enqueued. This value is determined by the system and cannot be set by the user.
OCIDate
LNOCI17939OCI_ATTR_EXCEPTION_QUEUE
READ/WRITE
Specifies the name of the queue to which the message is moved if it cannot be processed successfully. Messages are moved in two cases: If the number of unsuccessful dequeue attempts has exceeded max_retries
; or if the message has expired. All messages in the exception queue are in the EXPIRED
state.
The default is the exception queue associated with the queue table. If the exception queue specified does not exist at the time of the move, the message is moved to the default exception queue associated with the queue table, and a warning is logged in the alert file. If the default exception queue is used, the parameter returns a NULL
value at dequeue time.
This attribute must refer to a valid queue name.
oratext *
LNOCI17940OCI_ATTR_EXPIRATION
READ/WRITE
Specifies the expiration of the message. It determines, in seconds, how long the message is available for dequeuing. This parameter is an offset from the delay. Expiration processing requires the queue monitor to be running.
While waiting for expiration, the message remains in the READY
state. If the message is not dequeued before it expires, it is moved to the exception queue in the EXPIRED
state.
sb4
Any sb4 value is valid, but the following predefined constant is available:
LNOCI17941OCI_ATTR_MSG_DELIVERY_MODE
READ
After a dequeue call, the OCI client can read the OCI_ATTR_MSG_DELIVERY_MODE
attribute in the OCIAQMsgProperties
descriptor to determine whether a persistent or buffered message was dequeued. The value of the attribute is OCI_MSG_PERSISTENT
for persistent messages and OCI_MSG_BUFFERED
for buffered messages.
ub2
LNOCI17942OCI_ATTR_MSG_STATE
READ
Specifies the state of the message at the time of the dequeue. This parameter cannot be set at enqueue time.
ub4
Only the following values are returned:
OCI_MSG_WAITING
- The message delay has not yet been reached.
OCI_MSG_READY
- The message is ready to be processed.
OCI_MSG_PROCESSED
- The message has been processed and is retained.
OCI_MSG_EXPIRED
- The message has been moved to the exception queue.
LNOCI17947OCI_ATTR_ORIGINAL_MSGID
READ/WRITE
The ID of the message in the last queue that generated this message. When a message is propagated from one queue to another, this attribute identifies the ID of the queue from which it was last propagated. When a message has been propagated through multiple queues, this attribute identifies the ID of the message in the last queue that generated this message, not the first queue.
OCIRaw *
LNOCI17943OCI_ATTR_PRIORITY
READ/WRITE
Specifies the priority of the message. A smaller number indicates a higher priority. The priority can be any number, including negative numbers.
The default value is zero.
sb4
LNOCI17944OCI_ATTR_RECIPIENT_LIST
WRITE
This parameter is only valid for queues that allow multiple consumers. The default recipients are the queue subscribers. This parameter is not returned to a consumer at dequeue time.
OCIAQAgent **
LNOCI17945OCI_ATTR_SENDER_ID
READ/WRITE
Identifies the original sender of a message.
OCIAgent *
LNOCI17946OCI_ATTR_TRANSACTION_NO
READ
For transaction-grouped queues, this identifies the transaction group of the message. This attribute is populated after a successful OCIAQDeqArray()
call. All messages in a group have the same value for this attribute. This attribute cannot be used by the OCIAQEnqArray()
call to set the transaction group for an enqueued message.
oratext *
The following attributes are properties of the OCIAQAgent
descriptor.
LNOCI17949OCI_ATTR_AGENT_ADDRESS
READ/WRITE
Protocol-specific address of the recipient. If the protocol is 0 (default), the address is of the form [schema
.]queue
[@dblink
].
oratext *
Can be any string up to 128 bytes.
LNOCI17950OCI_ATTR_AGENT_NAME
READ/WRITE
Name of a producer or consumer of a message.
oratext *
Can be any Oracle Database identifier, up to 30 bytes.
LNOCI17951OCI_ATTR_AGENT_PROTOCOL
READ/WRITE
Protocol to interpret the address and propagate the message. The default (and currently the only supported) value is 0.
ub1
The only valid value is zero, which is also the default.
The following attributes are properties of the OCIServerDNs
descriptor.
LNOCI17953OCI_ATTR_DN_COUNT
READ
The number of database servers in the descriptor.
ub2
LNOCI17954OCI_ATTR_SERVER_DN
READ/WRITE
For read mode, this attribute returns the list of Oracle Database distinguished names that are already inserted into the descriptor.
For write mode, this attribute takes the distinguished name of an Oracle Database.
oratext **/oratext *
The following attributes are used for the subscription handle.
LNOCI17956OCI_ATTR_SERVER_DNS
READ/WRITE
The distinguished names of the Oracle database that the client is interested in for the registration.
OCIServerDNs *
LNOCI17957OCI_ATTR_SUBSCR_CALLBACK
READ/WRITE
Subscription callback. If the attribute OCI_ATTR_SUBSCR_RECPTPROTO
is set to OCI_SUBSCR_PROTO_OCI
or is left not set, then this attribute must be set before the subscription handle can be passed into the registration call OCISubscriptionRegister()
.
ub4 (void *, OCISubscription *, void *, ub4, void *, ub4)
LNOCI17958OCI_ATTR_SUBSCR_CQ_QOSFLAGS
WRITE
Sets QOS (quality of service flags) specific to continuous query (CQ) notifications. For the possible values you can pass, see the "Subscription Handle Attributes for Continuous Query Notification".
ub4 *
LNOCI17959OCI_ATTR_SUBSCR_CTX
READ/WRITE
Context that the client wants to get passed to the user callback denoted by OCI_ATTR_SUBSCR_CALLBACK
when it gets invoked by the system. If the attribute OCI_ATTR_SUBSCR_RECPTPROTO
is set to OCI_SUBSCR_PROTO_OCI
or is left not set, then this attribute must be set before the subscription handle can be passed into the registration call OCI Subscription Register()
.
void *
LNOCI17960OCI_ATTR_SUBSCR_HOSTADDR
READ/WRITE
Before registering for notification using OCISubscriptionRegister()
, specify the client IP (in either IPv4 or IPv6 format) of the listening endpoint of the OCI notification client to which the notification is sent. Enter either IPv4 addresses in dotted decimal format, for example, 192.0.2.34, or IPv6 addresses in hexadecimal format, for example, 2001:0db8:0000:0000:0217:f2ff:fe4b:4ced.
See Also:
Oracle Database Net Services Administrator's Guide for more information about the IPv6 format for IP addressestext *
/* Set notification client address*/ text ipaddr[16] = "192.0.2.34"; (void) OCIAttrSet((dvoid *) envhp, (ub4) OCI_HTYPE_ENV, (dvoid *) ipaddr, (ub4) strlen(ipaddr), (ub4) OCI_ATTR_SUBSCR_HOSTADDR, errhp);
LNOCI17961OCI_ATTR_SUBSCR_IPADDR
READ/WRITE
The client IP address (IPv4 or IPv6) on which an OCI client registered for notification listens, to receive notifications. For example, IPv4 address in dotted decimal format such as 192.1.2.34 or IPv6 address in hexadecimal format such as 2001:0db8:0000:0000:0217:f2ff:fe4b:4ced.
See Also:
Oracle Database Net Services Administrator's Guide for more information about the IPv6 format for IP addressesoratext *
LNOCI17962OCI_ATTR_SUBSCR_NAME
READ/WRITE
Subscription name. All subscriptions are identified by a subscription name. A subscription name consists of a sequence of bytes of specified length. The length in bytes of the name must be specified as it is not assumed that the name is NULL
-terminated. This is important because the name could contain multibyte characters.
Clients can set the subscription name attribute of a subscription handle using an OCIAttrSet()
call and by specifying a handle type of OCI_HTYPE_SUBSCR
and an attribute type of OCI_ATTR_SUBSCR_NAME
.
All of the subscription callbacks need a subscription handle with the OCI_ATTR_SUBSCR_NAME
and OCI_ATTR_SUBSCR_NAMESPACE
attributes set. If the attributes are not set, an error is returned. The subscription name that is set for the subscription handle must be consistent with its namespace.
oratext *
LNOCI17963OCI_ATTR_SUBSCR_NAMESPACE
READ/WRITE
Namespace in which the subscription handle is used. The valid values for this attribute are OCI_SUBSCR_NAMESPACE_AQ
, OCI_SUBSCR_NAMESPACE_DBCHANGE
, and OCI_SUBSCR_NAMESPACE_ANONYMOUS
.
The subscription name that is set for the subscription handle must be consistent with its namespace.
ub4 *
Note:
OCI_OBJECT
mode is required when using grouping notifications.LNOCI17964OCI_ATTR_SUBSCR_NTFN_GROUPING_CLASS
READ/WRITE
Notification grouping class. If set to 0 (the default) all other notification grouping attributes must be 0. It is implemented for time in the latest release and is the only current criterion for grouping. Can be set to OCI_SUBSCR_NTFN_GROUPING_CLASS_TIME
.
ub1 *
LNOCI17965OCI_ATTR_SUBSCR_NTFN_GROUPING_REPEAT_COUNT
READ/WRITE
How many times to do the grouping. Notification repeat count. Positive integer. Can be set to OCI_NTFN_GROUPING_FOREVER
to send grouping notifications forever.
sb4 *
LNOCI17966OCI_ATTR_SUBSCR_NTFN_GROUPING_START_TIME
READ/WRITE
The time grouping starts. Set to a valid TIMESTAMP WITH TIME ZONE
. The default is the current TIMESTAMP WITH TIME ZONE
.
OCIDateTime */OCIDateTime **
LNOCI17967OCI_ATTR_SUBSCR_NTFN_GROUPING_TYPE
READ/WRITE
The format of the grouping notification: whether a summary of all events in the group or just the last event in the group. Use OCIAttrSet()
to set to one of the following notification grouping types: OCI_SUBSCR_NTFN_TYPE_SUMMARY
or OCI_SUBSCR_NTFN_TYPE_LAST
. Summary of notifications is the default. The other choice is the last notification.
ub1 *
LNOCI17968OCI_ATTR_SUBSCR_NTFN_GROUPING_VALUE
READ/WRITE
Specifies the value for the grouping class. For time, this is the time-period of grouping notifications specified in seconds, that is, the time after which grouping notification is sent periodically until OCI_ATTR_SUBSCR_NTFN_GROUPING_REPEAT_COUNT
is exhausted.
ub4 *
LNOCI17969OCI_ATTR_SUBSCR_PAYLOAD
READ/WRITE
Buffer that corresponds to the payload that must be sent along with the notification. The length of the buffer can also be specified in the same set attribute call. This attribute must be set before a post can be performed on a subscription. For the current release, only an untyped (ub1 *
) payload is supported.
ub1 *
LNOCI17970OCI_ATTR_SUBSCR_PORTNO
READ/WRITE
The client port used to receive notifications. It is set on the client's environment handle.
ub4 *
LNOCI17971OCI_ATTR_SUBSCR_QOSFLAGS
READ/WRITE
Quality of service levels of the server. The possible settings are:
OCI_SUBSCR_QOS_RELIABLE
- Reliable. If the database fails, it does not lose notification. Not supported for nonpersistent queues or buffered messaging.
OCI_SUBSCR_QOS_PURGE_ON_NTFN
- Once received, purge notification and remove subscription.
OCI_SUBSCR_QOS_PAYLOAD
- Payload notification.
ub4 *
LNOCI17972OCI_ATTR_SUBSCR_RECPT
READ/WRITE
The name of the recipient of the notification when the attribute OCI_ATTR_SUBSCR_RECPTPROTO
is set to OCI_SUBSCR_PROTO_MAIL
, OCI_SUBSCR_PROTO_HTTP
, or OCI_SUBSCR_PROTO_SERVER
.
For OCI_SUBSCR_PROTO_HTTP
, OCI_ATTR_SUBSCR_RECPT
denotes the HTTP URL (for example, http://www.oracle.com:80) to which notification is sent. The validity of the HTTP URL is never checked by the database.
For OCI_SUBSCR_PROTO_MAIL
, OCI_ATTR_SUBSCR_RECPT
denotes the email address (for example, xyz@oracle.com) to which the notification is sent. The validity of the email address is never checked by the database system.
For OCI_SUBSCR_PROTO_SERVER
, OCI_ATTR_SUBSCR_RECPT
denotes the database procedure (for example: schema.procedure
) that is invoked when there is a notification. The subscriber must have appropriate permissions on the procedure for it to be executed.
See Also:
"Notification Procedure" for information about procedure definitionoratext *
LNOCI17973OCI_ATTR_SUBSCR_RECPTPRES
READ/WRITE
The presentation with which the client wants to receive the notification. The valid values for this are OCI_SUBSCR_PRES_DEFAULT
and OCI_SUBSCR_PRES_XML
.
If not set, this attribute defaults to OCI_SUBSCR_PRES_DEFAULT
.
For event notification in XML presentation, set this attribute to OCI_SUBSCR_PRES_XML
. Otherwise, leave it unset or set it to OCI_SUBSCR_PRES_DEFAULT
.
ub4
LNOCI17974OCI_ATTR_SUBSCR_RECPTPROTO
READ/WRITE
The protocol with which the client wants to receive the notification. The valid values for this are:
If an OCI client wants to receive the event notification, then you should set this attribute to OCI_SUBSCR_PROTO_OCI
.
If you want an email to be sent on event notification, then set this attribute to OCI_SUBSCR_PROTO_MAIL
. If you want a PL/SQL procedure to be invoked in the database on event notification, then set this attribute to OCI_SUBSCR_PROTO_SERVER
. If you want an HTTP URL to be posted to on event notification, then set this attribute to OCI_SUBSCR_PROTO_HTTP
.
If not set, this attribute defaults to OCI_SUBSCR_PROTO_OCI
.
For OCI_SUBSCR_PROTO_OCI
, the attributes OCI_ATTR_SUBSCR_CALLBACK
and OCI_ATTR_SUBSCR_CTX
must be set before the subscription handle can be passed into the registration call OCISubscriptionRegister()
.
For OCI_SUBSCR_PROTO_MAIL
, OCI_SUBSCR_PROTO_SERVER
, and OCI_SUBSCR_PROTO_HTTP
, the attribute OCI_ATTR_SUBSCR_RECPT
must be set before the subscription handle can be passed into the registration call OCISubscriptionRegister()
.
ub4 *
LNOCI17975OCI_ATTR_SUBSCR_TIMEOUT
READ/WRITE
Registration timeout interval in seconds. If 0 or not specified, then the registration is active until the subscription is explicitly unregistered.
ub4 *
The following attributes are used for continuous query notification.
LNOCI17977OCI_ATTR_CHNF_CHANGELAG
WRITE
The number of transactions that the client is to lag in continuous query notifications.
ub4 *
LNOCI17978OCI_ATTR_CHNF_OPERATIONS
WRITE
Used to filter notifications based on operation type.
ub4 *
See Also:
"Continuous Query Notification" for details about the flag valuesLNOCI17979OCI_ATTR_CHNF_ROWIDS
WRITE
If TRUE
, the continuous query notification message includes row-level details, such as operation type and ROWID
. The default is FALSE
.
boolean *
LNOCI17980OCI_ATTR_CHNF_TABLENAMES
READ
Attributes provided to retrieve the list of table names that were registered. These attributes are available from the subscription handle after the query is executed.
OCIColl **
The following attributes are used for the continuous query notification descriptor.
LNOCI17982OCI_ATTR_CHDES_DBNAME
READ
Name of the database.
oratext **
LNOCI17983OCI_ATTR_CHDES_NFTYPE
READ
Flags describing the notification type.
ub4 *
See Also:
"Continuous Query Notification" for the flag valuesLNOCI17984OCI_ATTR_CHDES_ROW_OPFLAGS
READ
Operation type: INSERT
, UPDATE
, DELETE
, or OTHER
.
ub4 *
LNOCI17985OCI_ATTR_CHDES_ROW_ROWID
READ
String representation of a ROWID
.
oratext **
LNOCI17986OCI_ATTR_CHDES_TABLE_CHANGES
READ
A collection type describing operations on tables. Each element of the collection is a table continuous query descriptors (OCITableChangeDesc *
) of type OCI_DTYPE_TABLE_CHDES
that has the attributes that begin with OCI_ATTR_CHDES_TABLE
. See the following entries.
OCIColl **
LNOCI17987OCI_ATTR_CHDES_TABLE_NAME
READ
Schema and table name. HR.EMPLOYEES
, for example.
oratext **
LNOCI17988OCI_ATTR_CHDES_TABLE_OPFLAGS
READ
Flags describing the operations on the table.
ub4 *
See Also:
"OCI_DTYPE_TABLE_CHDES" for the flag valuesLNOCI17989OCI_ATTR_CHDES_TABLE_ROW_CHANGES
READ
An embedded collection describing the changes to the rows of the table. Each element of the collection is a row continuous query descriptor (OCIRowChangeDesc *
) of type OCI_DTYPE_ROW_CHDES
that has the attributes OCI_ATTR_CHDES_ROW_OPFLAGS
and OCI_ATTR_CHDES_ROW_ROWID
.
OCIColl **
The following are attributes of the descriptor OCI_DTYPE_AQNFY
.
LNOCI17991OCI_ATTR_AQ_NTFN_GROUPING_COUNT
READ
For AQ namespace. Count of notifications received in the group.
ub4 *
LNOCI17992OCI_ATTR_AQ_NTFN_GROUPING_ MSGID_ARRAY
READ
For AQ namespace. The group: an OCI Collection of message IDs.
OCIColl **
LNOCI17993OCI_ATTR_CONSUMER_NAME
READ
Consumer name of the notification.
oratext *
LNOCI17996OCI_ATTR_MSG_PROP
READ
Message properties.
OCIAQMsgProperties **
LNOCI17994OCI_ATTR_NFY_FLAGS
READ
0 = regular, 1 = timeout notification, 2 = grouping notification.
ub4 *
LNOCI17995OCI_ATTR_NFY_MSGID
READ
Message ID.
OCIRaw *
LNOCI17997OCI_ATTR_QUEUE_NAME
READ
The queue name of the notification.
oratext *
This section describes OCI_DTYPE_CQDES
attributes. See "OCI_DTYPE_CQDES" for more information.
The following attributes are used for the direct path loading handle.
See Also:
"Direct Path Loading Overview" and"Direct Path Loading of Object Types" for information about direct path loading and allocating the direct path handlesLNOCI18000OCI_ATTR_CQDES_OPERATION
READ
The operation that occurred on the query. It can be one of two values: OCI_EVENT_QUERYCHANGE
(query result set change) or OCI_EVENT_DEREG
(query unregistered).
ub4 *
LNOCI18001OCI_ATTR_CQDES_QUERYID
READ
Query ID of the query that was invalidated.
ub8 *
LNOCI18002OCI_ATTR_CQDES_TABLE_CHANGES
READ
A collection of table continuous query descriptors describing DML or DDL operations on tables that caused the query result set change. Each element of the collection is of type OCI_DTYPE_TABLE_CHDES
.
OCIColl *
The following attributes are used for the direct path context handle.
LNOCI18004OCI_ATTR_BUF_SIZE
READ/WRITE
Sets the size of the stream transfer buffer. Default value is 64 KB.
ub4 */ub4 *
LNOCI18005OCI_ATTR_CHARSET_ID
READ/WRITE
Default character set ID for the character data. Note that the character set ID can be overridden at the column level. If the character set ID is not specified at the column level or the table level, then the Global support environment setting is used.
ub2 */ub2 *
LNOCI18006OCI_ATTR_DATEFORMAT
READ/WRITE
Default date format string for SQLT_CHR
to DTYDAT
conversions. Note that the date format string can be overridden at the column level. If date format string is not specified at the column level or the table level, then the Global Support environment setting is used.
oratext **/oratext *
LNOCI18007OCI_ATTR_DIRPATH_DCACHE_DISABLE
READ/WRITE
Setting this attribute to 1 indicates that the date cache is to be disabled if exceeded. The default value is 0, which means that lookups in the cache continue on cache overflow.
See Also:
"Using a Date Cache in Direct Path Loading of Dates in OCI" for a complete description of this attribute and of the four following attributesub1 */ub1 *
LNOCI18008OCI_ATTR_DIRPATH_DCACHE_HITS
READ
Queries the number of date cache hits.
ub4 *
LNOCI18009OCI_ATTR_DIRPATH_DCACHE_MISSES
READ
Queries the current number of date cache misses.
ub4 *
LNOCI18010OCI_ATTR_DIRPATH_DCACHE_NUM
READ
Queries the current number of entries in a date cache.
ub4 *
LNOCI18011OCI_ATTR_DIRPATH_DCACHE_SIZE
READ/WRITE
Sets the date cache size (in elements) for a table. To disable the date cache, set this to 0, which is the default value.
ub4 *
/ub4 *
LNOCI18012OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD
READ/WRITE
Performs index row insertion on a per-row basis.
Valid value is:
OCI_DIRPATH_INDEX_MAINT_SINGLE_ROW
ub1 *
/ub1 *
LNOCI18013OCI_ATTR_DIRPATH_MODE
READ/WRITE
Mode of the direct path context:
OCI_DIRPATH_LOAD
- Load operation (default)
OCI_DIRPATH_CONVERT
- Convert-only operation
ub1 */ub1 *
LNOCI18014OCI_ATTR_DIRPATH_NO_INDEX_ERRORS
READ/WRITE
When OCI_ATTR_DIRPATH_NO_INDEX_ERRORS
is 1, indexes are not set as unusable at any time during the load. If any index errors are detected, the load is aborted. That is, no rows are loaded, and the indexes are left as is. The default is 0.
ub1 */ub1 *
LNOCI18015OCI_ATTR_DIRPATH_NOLOG
READ/WRITE
The NOLOG
attribute of each segment determines whether image redo or invalidation redo is generated:
0 - Use the attribute of the segment being loaded.
1 - No logging. Overrides DDL statement, if necessary.
ub1 */ub1 *
LNOCI18016OCI_ATTR_DIRPATH_OBJ_CONSTR
READ/WRITE
Indicates the object type of a substitutable object table:
OraText *obj_type; /* stores an object type name */ OCIAttrSet((void *)dpctx, (ub4)OCI_HTYPE_DIRPATH_CTX, (void *) obj_type, (ub4)strlen((const char *) obj_type), (ub4)OCI_ATTR_DIRPATH_OBJ_CONSTR, errhp);
oratext **/oratext *
LNOCI18017OCI_ATTR_DIRPATH_PARALLEL
READ/WRITE
Setting this value to 1 allows multiple load sessions to load the same segment concurrently. The default is 0 (not parallel).
ub1 */ub1 *
LNOCI18018OCI_ATTR_DIRPATH_SKIPINDEX_METHOD
READ/WRITE
Indicates how the handling of unusable indexes is performed.
Valid values are:
OCI_DIRPATH_INDEX_MAINT_SKIP_UNUSABLE
(skip unusable indexes)
OCI_DIRPATH_INDEX_MAINT_DONT_SKIP_UNUSABLE
(do not skip unusable indexes)
OCI_DIRPATH_INDEX_MAINT_SKIP_ALL
(skip all index maintenance)
ub1 *
/ub1 *
LNOCI18019OCI_ATTR_LIST_COLUMNS
READ
Returns the handle to the parameter descriptor for the column list associated with the direct path context. The column list parameter descriptor can be retrieved after the number of columns is set with the OCI_ATTR_NUM_COLS
attribute.
See Also:
"Accessing Column Parameter Attributes"OCIParam* *
LNOCI18020OCI_ATTR_NAME
READ/WRITE
Name of the table to be loaded into.
oratext**/oratext *
LNOCI18021OCI_ATTR_NUM_COLS
READ/WRITE
Number of columns being loaded in the table.
ub2 */ub2 *
LNOCI18022OCI_ATTR_NUM_ROWS
READ/WRITE
Read: The number of rows loaded so far.
Write: The number of rows to be allocated for the direct path and the direct path function column arrays.
ub2 */ub2 *
LNOCI18023OCI_ATTR_SCHEMA_NAME
READ/WRITE
Name of the schema where the table being loaded resides. If not specified, the schema defaults to that of the connected user.
oratext **/oratext *
LNOCI18024OCI_ATTR_SUB_NAME
READ/WRITE
Name of the partition or subpartition to be loaded. If not specified, the entire table is loaded. The name must be a valid partition or subpartition name that belongs to the table.
oratext **/oratext *
For further explanations of these attributes, see "Direct Path Function Context and Attributes".
LNOCI18026OCI_ATTR_DIRPATH_EXPR_TYPE
READ/WRITE
Indicates the type of expression specified in OCI_ATTR_NAME
in the function context of a nonscalar column.
Valid values are:
OCI_DIRPATH_EXPR_OBJ_CONSTR
(the object type name of a column object)
OCI_DIRPATH_EXPR_REF_TBLNAME
(table name of a reference object)
OCI_DIRPATH_EXPR_SQL
(a SQL string to derive the column value)
ub1 */ub1 *
LNOCI18027OCI_ATTR_LIST_COLUMNS
READ
Returns the handle to the parameter descriptor for the column list associated with the direct path function context. The column list parameter descriptor can be retrieved after the number of columns (number of attributes or arguments associated with the nonscalar column) is set with the OCI_ATTR_NUM_COLS
attribute.
See Also:
"Accessing Column Parameter Attributes"OCIParam**
LNOCI18028OCI_ATTR_NAME
READ/WRITE
The object type name if the function context is describing a column object, a SQL function if the function context is describing a SQL string, or a reference table name if the function context is describing a REF
column.
oratext **/oratext *
LNOCI18029OCI_ATTR_NUM_COLS
READ/WRITE
The number of the object attributes to load if the column is a column object, or the number of arguments to process if the column is a SQL string or a REF column. This parameter must be set before the column list can be retrieved.
ub2 */ub2 *
LNOCI18030OCI_ATTR_NUM_ROWS
READ
The number of rows loaded so far.
ub4 *
The following attributes are used for the direct path function column array handle.
LNOCI18032OCI_ATTR_COL_COUNT
READ
Last column of the last row processed.
ub2 *
LNOCI18033OCI_ATTR_NUM_COLS
READ
Column dimension of the column array.
ub2 *
LNOCI18034OCI_ATTR_NUM_ROWS
READ
Row dimension of the column array.
ub4 *
LNOCI18035OCI_ATTR_ROW_COUNT
READ
Number of rows successfully converted in the last call to OCIDirPathColArrayToStream()
.
ub4 *
The following attributes are used for the direct path stream handle.
LNOCI18037OCI_ATTR_BUF_ADDR
READ
Buffer address of the beginning of the stream data.
ub1 **
LNOCI18038OCI_ATTR_BUF_SIZE
READ
Size of the stream data in bytes.
ub4 *
LNOCI18039OCI_ATTR_ROW_COUNT
READ
Number of rows successfully loaded by the last OCIDirPathLoadStream()
call.
ub4 *
LNOCI18040OCI_ATTR_STREAM_OFFSET
READ
Offset into the stream buffer of the last processed row.
ub4 *
The application specifies which columns are to be loaded, and the external format of the data by setting attributes on each column parameter descriptor. The column parameter descriptors are obtained as parameters of the column parameter list by OCIParamGet()
. The column parameter list of the table is obtained from the OCI_ATTR_LIST_COLUMNS
attribute of the direct path context. If a column is nonscalar, then its column parameter list is obtained from the OCI_ATTR_LIST_COLUMNS
attribute of its direct path function context.
Note that all parameters are 1-based.
LNOCI18042The following code example illustrates the use of the direct path column parameter attributes for scalar columns. Before the attributes are accessed, you must first set the number of columns to be loaded and get the column parameter list from the OCI_ATTR_LIST_COLUMNS
attribute.
See Also:
"Direct Path Load Examples for Scalar Columns" for the data structures defined in the listings... /* set number of columns to be loaded */ OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)dpctx, (ub4)OCI_HTYPE_DIRPATH_CTX, (void *)&tblp->ncol_tbl, (ub4)0, (ub4)OCI_ATTR_NUM_COLS, ctlp->errhp_ctl)); /* get the column parameter list */ OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrGet((void *)dpctx, OCI_HTYPE_DIRPATH_CTX, (void *)&ctlp->colLstDesc_ctl, (ub4 *)0, OCI_ATTR_LIST_COLUMNS, ctlp->errhp_ctl));
Now you can set the parameter attributes.
/* set the attributes of each column by getting a parameter handle on each * column, then setting attributes on the parameter handle for the column. * Note that positions within a column list descriptor are 1-based. */ for (i = 0, pos = 1, colp = tblp->col_tbl, fldp = tblp->fld_tbl; i < tblp->ncol_tbl; i++, pos++, colp++, fldp++) { /* get parameter handle on the column */ OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIParamGet((const void *)ctlp->colLstDesc_ctl, (ub4)OCI_DTYPE_PARAM, ctlp->errhp_ctl, (void **)&colDesc, pos)); colp->id_col = i; /* position in column array */ /* set external attributes on the column */ /* column name */ OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)colp->name_col, (ub4)strlen((const char *)colp->name_col), (ub4)OCI_ATTR_NAME, ctlp->errhp_ctl)); /* column type */ OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)&colp->exttyp_col, (ub4)0, (ub4)OCI_ATTR_DATA_TYPE, ctlp->errhp_ctl)); /* max data size */ OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)&fldp->maxlen_fld, (ub4)0, (ub4)OCI_ATTR_DATA_SIZE, ctlp->errhp_ctl)); if (colp->datemask_col) /* set column (input field) date mask */ { OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)colp->datemask_col, (ub4)strlen((const char *)colp->datemask_col), (ub4)OCI_ATTR_DATEFORMAT, ctlp->errhp_ctl)); } if (colp->prec_col) { OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)&colp->prec_col, (ub4)0, (ub4)OCI_ATTR_PRECISION, ctlp->errhp_ctl)); } if (colp->scale_col) { OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)&colp->scale_col, (ub4)0, (ub4)OCI_ATTR_SCALE, ctlp->errhp_ctl)); } if (colp->csid_col) { OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp, OCIAttrSet((void *)colDesc, (ub4)OCI_DTYPE_PARAM, (void *)&colp->csid_col, (ub4)0, (ub4)OCI_ATTR_CHARSET_ID, ctlp->errhp_ctl)); } /* free the parameter handle to the column descriptor */ OCI_CHECK((void *)0, 0, ociret, ctlp, OCIDescriptorFree((void *)colDesc, OCI_DTYPE_PARAM)); } ...
LNOCI18043OCI_ATTR_CHARSET_ID
READ/WRITE
Character set ID for character column. If not set, the character set ID defaults to the character set ID set in the direct path context.
ub2 */ub2 *
LNOCI18044OCI_ATTR_DATA_SIZE
READ/WRITE
Maximum size in bytes of the external data for the column. This can affect conversion buffer sizes.
ub4 */ub4 *
LNOCI18045OCI_ATTR_DATA_TYPE
READ/WRITE
Returns or sets the external data type of the column. Valid data types are:
SQLT_CHR
SQLT_DATE
SQLT_TIMESTAMP
SQLT_TIMESTAMP_TZ
SQLT_TIMESTAMP_LTZ
SQLT_INTERVAL_YM
SQLT_INTERVAL_DS
SQLT_CLOB
SQLT_BLOB
SQLT_INT
SQLT_UIN
SQLT_FLT
SQLT_PDN
SQLT_BIN
SQLT_NUM
SQLT_NTY
SQLT_REF
SQLT_VST
SQLT_VNU
ub2 */ub2 *
LNOCI18046OCI_ATTR_DATEFORMAT
READ/WRITE
Date conversion mask for the column. If not set, the date format defaults to the date conversion mask set in the direct path context.
oratext **/oratext *
LNOCI18047OCI_ATTR_DIRPATH_OID
READ/WRITE
Indicates that the column to load into is an object table's object ID column.
ub1 */ub1 *
LNOCI18048OCI_ATTR_DIRPATH_SID
READ/WRITE
Indicates that the column to load into is a nested table's setid
column.
ub1 */ub1 *
LNOCI18049OCI_ATTR_NAME
READ/WRITE
Returns or sets the name of the column that is being loaded. Initialize both the column name and the column name length to 0 before calling OCIAttrGet()
.
oratext **/oratext *
LNOCI18050OCI_ATTR_PRECISION
READ/WRITE
Returns or sets the precision.
ub1 */ub1 *
for explicit describes
sb2 */sb2 *
for implicit describes
LNOCI18051OCI_ATTR_SCALE
READ/WRITE
Returns or sets the scale (number of digits to the right of the decimal point) for conversions from packed and zoned decimal input data types.
sb1 */sb1 *
The parameters for the shared system can be set and read using the OCIAttrSet()
and OCIAttrGet()
calls. The handle type to be used is the process handle OCI_HTYPE_PROC
.
See Also:
"OCI_ATTR_SHARED_HEAPALLOC"The OCI_ATTR_MEMPOOL_APPNAME
, OCI_ATTR_MEMPOOL_HOMENAME
, and OCI_ATTR_MEMPOOL_INSTNAME
attributes specify the application, home, and instance names that can be used together to map the process to the right shared pool area. If these attributes are not provided, internal default values are used. The following are valid settings of the attributes for specific behaviors:
Instance name, application name (unqualified): This allows only executables with a specific name to attach to the same shared subsystem. For example, this allows an OCI application named Office to connect to the same shared subsystem regardless of the directory Office resides in.
Instance name, home name: This allows a set of executables in a specific home directory to attach to the same instance of the shared subsystem. For example, this allows all OCI applications residing in the ORACLE_HOME directory to use the same shared subsystem.
Instance name, home name, application name (unqualified): This allows only a specific executable to attach to a shared subsystem. For example, this allows one application named Office in the ORACLE_HOME directory to attach to a given shared subsystem.
LNOCI18053OCI_ATTR_MEMPOOL_APPNAME
READ/WRITE
Executable name or fully qualified path name of the executable.
oratext *
LNOCI18054OCI_ATTR_MEMPOOL_HOMENAME
READ/WRITE
Directory name where the executables that use the same shared subsystem instance are located.
oratext *
LNOCI18055OCI_ATTR_MEMPOOL_INSTNAME
READ/WRITE
Any user-defined name to identify an instance of the shared subsystem.
oratext *
LNOCI18056OCI_ATTR_MEMPOOL_SIZE
READ/WRITE
Size of the shared pool in bytes. This attribute is set as follows:
ub4 plsz = 1000000; OCIAttrSet((void *)0, (ub4) OCI_HTYPE_PROC, (void *)&plsz, (ub4) 0, (ub4) OCI_ATTR_POOL_SIZE, 0);
ub4 *
LNOCI18058OCI_ATTR_PROC_MODE
READ
Returns all the currently set process modes. The value read contains the OR'ed value of all the currently set OCI process modes. To determine if a specific mode is set, the value should be OR'ed with that mode. For example:
ub4 mode; boolean is_shared; OCIAttrGet((void *)0, (ub4)OCI_HTYPE_PROC, (void *) &mode, (ub4 *) 0, (ub4)OCI_ATTR_PROC_MODE, 0); is_shared = mode | OCI_SHARED;
ub4 *
The OCIEvent
handle encapsulates the attributes from the event payload. This handle is implicitly allocated before the event callback is called.
See Also:
"HA Event Notification"The event callback obtains the attributes of an event using OCIAttrGet()
with the following attributes.
LNOCI18060OCI_ATTR_DBDOMAIN
READ
When called with this attribute, OCIAttrGet()
retrieves the name of the database domain that has been affected by this event. This is also a server handle attribute.
oratext **
LNOCI18061OCI_ATTR_DBNAME
READ
When called with this attribute, OCIAttrGet()
retrieves the name of the database that has been affected by this event. This is also a server handle attribute.
oratext **
LNOCI18062OCI_ATTR_EVENTTYPE
READ
The type of event that occurred, OCI_EVENTTYPE_HA
.
ub4 *
LNOCI18063OCI_ATTR_HA_SOURCE
READ
If the event type is OCI_EVENTTYPE_HA
, get the source of the event with this attribute. Valid values are:
OCI_HA_SOURCE_DATABASE
OCI_HA_SOURCE_NODE
OCI_HA_SOURCE_INSTANCE
OCI_HA_SOURCE_SERVICE
OCI_HA_SOURCE_SERVICE_MEMBER
OCI_HA_SOURCE_ASM_INSTANCE
OCI_HA_SOURCE_SERVICE_PRECONNECT
ub4 *
LNOCI18064OCI_ATTR_HA_SRVFIRST
READ
When called with this attribute, OCIAttrGet()
retrieves the first server handle in the list of server handles affected by an Oracle Real Application Clusters (Oracle RAC) HA DOWN event.
OCIServer **
LNOCI18065OCI_ATTR_HA_SRVNEXT
READ
When called with this attribute OCIAttrGet()
retrieves the next server handle in the list of server handles affected by an Oracle RAC HA DOWN event.
OCIServer **
LNOCI18066OCI_ATTR_HA_STATUS
READ
Valid value is OCI_HA_STATUS_DOWN
. Only DOWN
events are subscribed to currently.
ub4 *
LNOCI18067OCI_ATTR_HA_TIMESTAMP
READ
The time that the HA event occurred.
OCIDateTime **
LNOCI18068OCI_ATTR_HOSTNAME
READ
When called with this attribute, OCIAttrGet()
retrieves the name of the host that has been affected by this event.
oratext **
LNOCI18069OCI_ATTR_INSTNAME
READ
When called with this attribute, OCIAttrGet()
retrieves the name of the instance that has been affected by this event. This is also a server handle attribute.
oratext **
LNOCI18070OCI_ATTR_INSTSTARTTIME
READ
When called with this attribute, OCIAttrGet()
retrieves the start time of the instance that has been affected by this event. This is also a server handle attribute.
OCIDateTime **
LNOCI18071OCI_ATTR_SERVICENAME
READ
When called with this attribute, OCIAttrGet()
retrieves the name of the service that has been affected by this event. The name length is ub4 *
. This is also a server handle attribute.
oratext **