The user message API provides a simple interface for cartridge developers to retrieve their own messages and Oracle Database messages.
Table 22-7 lists the OCI messaging functions that are described in this section.
Table 22-7 OCI Messaging Functions
Function | Purpose |
---|---|
Close a message handle and free any memory associated with the handle |
|
Retrieve a message. If the buffer is not zero, then the function copies the message into the buffer |
|
Open a message handle in a specified language |
Pointer to an OCI environment or user session handle for the message language.
The OCI error handle. If there is an error, then it is recorded in errhp
, and the function returns a NULL
pointer. Diagnostic information can be obtained by calling OCIErrorGet().
A pointer to a message handle that was previously opened by OCIMessageOpen().
Pointer to a message handle that was previously opened by OCIMessageOpen().
The message number.
Pointer to a destination buffer for the retrieved message. If buflen
is zero, then it can be a NULL
pointer.
The size of the destination buffer.
If buflen
is not zero, then the function copies the message into the buffer pointed to by msgbuf
. If buflen
is zero, then the message is copied into a message buffer inside the message handle pointed to by msgh
.
sword OCIMessageOpen ( void *hndl, OCIError *errhp, OCIMsg *msghp, const OraText *product, const OraText *facility, OCIDuration dur );
Pointer to an OCI environment or user session handle for the message language.
The OCI error handle. If there is an error, then it is recorded in errhp
, and the function returns a NULL
pointer. Diagnostic information can be obtained by calling OCIErrorGet().
A message handle for return.
A pointer to a product name. The product name is used to locate the directory for messages. Its location depends on the operating system. For example, in Solaris, the directory of message files for the rdbms
product is $ORACLE_HOME/rdbms
.
A pointer to a facility name in the product. It is used to construct a message file name. A message file name follows the conversion with facility
as prefix. For example, the message file name for the img
facility in the American language is imgus.msb
, where us
is the abbreviation for the American language and msb
is the message binary file extension.
The duration for memory allocation for the return message handle. It can have the following values:
OCI_DURATION_PROCESS
OCI_DURATION_SESSION
OCI_DURATION_STATEMENT
OCIMessageOpen()
first tries to open the message file corresponding to hndl
. If it succeeds, then it uses that file to initialize a message handle. If it cannot find the message file that corresponds to the language, then it looks for a primary language file as a fallback. For example, if the Latin American Spanish file is not found, then it tries to open the Spanish file. If the fallback fails, then it uses the default message file, whose language is AMERICAN
. The function returns a pointer to a message handle into the msghp
parameter.