📄 ocikp.h
字号:
hndl (IN) - Session/Env handle.
err (IN/OUT) - error handle. If there is an error, it is
recorded in 'err' and this function returns OCI_ERROR.
The error recorded in 'err' can be retrieved by calling
OCIErrorGet().
sys_date (OUT) - Pointer to output timestamp
DESCRIPTION:
Gets the system current date and time as a timestamp with timezone
RETURNS:
OCI_SUCCESS if the function completes successfully.
OCI_INVALID_HANDLE if 'err' is NULL.
------------------------------OCIDateTimeSubtract-----------------------
sword OCIDateTimeSubtract(dvoid *hndl, OCIError *err, OCIDateTime *indate1,
OCIDateTime *indate2, OCIInterval *inter);
NAME: OCIDateTimeSubtract - subtracts two datetimes to return an interval
PARAMETERS:
hndl (IN) - Session/Env handle.
err (IN/OUT) - error handle. If there is an error, it is
recorded in 'err' and this function returns OCI_ERROR.
The error recorded in 'err' can be retrieved by calling
OCIErrorGet().
indate1(IN) - pointer to subtrahend
indate2(IN) - pointer to minuend
inter (OUT) - pointer to output interval
DESCRIPTION:
Takes two datetimes as input and stores their difference in an
interval. The type of the result interval is the type of the
'inter' descriptor.
RETURNS:
OCI_SUCCESS if the function completes successfully.
OCI_INVALID_HANDLE if 'err' is NULL.
OCI_ERROR if
datetimes are not comparable.
--------------------------- OCIDateTimeToText--------------------------
sword OCIDateTimeToText(dvoid *hndl, OCIError *err, CONST OCIDateTime *date,
CONST OraText *fmt, ub1 fmt_length, ub1 fsprec,
CONST OraText *lang_name, size_t lang_length,
size_t *buf_size, OraText *buf );
NAME: OCIDateTimeToText - OCIDateTime convert date TO String
PARAMETERS:
hndl (IN) - Session/Env handle. If Session Handle is passed, the
conversion takes place in session NLS_LANGUAGE and
session NLS_CALENDAR, otherwise the default is used.
err (IN/OUT) - error handle. If there is an error, it is
recorded in 'err' and this function returns OCI_ERROR.
The error recorded in 'err' can be retrieved by calling
OCIErrorGet().
date (IN) - Oracle datetime to be converted
fmt (IN) - conversion format, if null string pointer (OraText*)0, then
the date is converted to a character string in the
default format for that type.
fmt_length (IN) - length of the 'fmt' parameter
fsprec (IN) - specifies the fractional second precision in which the
fractional seconds is returned.
lang_name (IN) - specifies the language in which the names and
abbreviations of months and days are returned;
default language of session is used if 'lang_name'
is null i.e. (OraText *)0
lang_length (IN) - length of the 'nls_params' parameter
buf_size (IN/OUT) - size of the buffer; size of the resulting string
is returned via this parameter
buf (OUT) - buffer into which the converted string is placed
DESCRIPTION:
Converts the given date to a string according to the specified format.
Refer to "TO_DATE" conversion function described in
"Oracle SQL Language Reference Manual" for a description of format
and NLS arguments. The converted null-terminated date string is
stored in the buffer 'buf'.
RETURNS:
OCI_SUCCESS if the function completes successfully.
OCI_INVALID_HANDLE if 'err' is NULL.
OCI_ERROR if
buffer too small
invalid format
unknown language
overflow error
------------------------------OCIDefineArrayOfStruct--------------------------
OCIDefineArrayOfStruct()
Name
OCI Define for Array of Structures
Purpose
This call specifies additional attributes necessary for a static array define.
Syntax
sword OCIDefineArrayOfStruct ( OCIDefine *defnp,
OCIError *errhp,
ub4 pvskip,
ub4 indskip,
ub4 rlskip,
ub4 rcskip );
Comments
This call specifies additional attributes necessary for an array define,
used in
an array of structures (multi-row, multi-column) fetch.
For more information about skip parameters, see the section "Skip Parameters"
on page 4-17.
Parameters
defnp (IN) - the handle to the define structure which was returned by a call
to OCIDefineByPos().
errhp (IN) - an error handle which can be passed to OCIErrorGet() for
diagnostic information in the event of an error.
pvskip (IN) - skip parameter for the next data value.
indskip (IN) - skip parameter for the next indicator location.
rlskip (IN) - skip parameter for the next return length value.
rcskip (IN) - skip parameter for the next return code.
Related Functions
OCIAttrGet()
OCIDefineByPos()
Name
OCI Define By Position
Purpose
Associates an item in a select-list with the type and output data buffer.
Syntax
sb4 OCIDefineByPos (
OCIStmt *stmtp,
OCIDefine **defnp,
OCIError *errhp,
ub4 position,
dvoid *valuep,
sb4 value_sz,
ub2 dty,
dvoid *indp,
ub2 *rlenp,
ub2 *rcodep,
ub4 mode );
Comments
This call defines an output buffer which will receive data retreived from
Oracle. The define is a local step which is necessary when a SELECT statement
returns data to your OCI application.
This call also implicitly allocates the define handle for the select-list item.
Defining attributes of a column for a fetch is done in one or more calls. The
first call is to OCIDefineByPos(), which defines the minimal attributes
required to specify the fetch.
This call takes as a parameter a define handle, which must have been
previously allocated with a call to OCIHandleAlloc().
Following the call to OCIDefineByPos() additional define calls may be
necessary for certain data types or fetch modes:
A call to OCIDefineArrayOfStruct() is necessary to set up skip parameters
for an array fetch of multiple columns.
A call to OCIDefineObject() is necessary to set up the appropriate
attributes of a named data type fetch. In this case the data buffer pointer
in ocidefn() is ignored.
Both OCIDefineArrayOfStruct() and OCIDefineObject() must be called
after ocidefn() in order to fetch multiple rows with a column of named
data types.
For a LOB define, the buffer pointer must be a lob locator of type
OCILobLocator , allocated by the OCIDescAlloc() call. LOB locators, and not
LOB values, are always returned for a LOB column. LOB values can then be
fetched using OCI LOB calls on the fetched locator.
For NCHAR (fixed and varying length), the buffer pointer must point to an
array of bytes sufficient for holding the required NCHAR characters.
Nested table columns are defined and fetched like any other named data type.
If the mode parameter is this call is set to OCI_DYNAMIC_FETCH, the client
application can fetch data dynamically at runtime.
Runtime data can be provided in one of two ways:
callbacks using a user-defined function which must be registered with a
subsequent call to OCIDefineDynamic(). When the client library needs a
buffer to return the fetched data, the callback will be invoked and the
runtime buffers provided will return a piece or the whole data.
a polling mechanism using calls supplied by the OCI. This mode is
assumed if no callbacks are defined. In this case, the fetch call returns the
OCI_NEED_DATA error code, and a piecewise polling method is used
to provide the data.
Related Functions: For more information about using the
OCI_DYNAMIC_FETCH mode, see the section "Runtime Data
Allocation and Piecewise Operations" on page 5-16 of Volume 1..
For more information about the define step, see the section "Defining"
on page 2-30.
Parameters
stmtp (IN) - a handle to the requested SQL query operation.
defnp (IN/OUT) - a pointer to a pointer to a define handle which is implicitly
allocated by this call. This handle is used to store the define information
for this column.
errhp (IN) - an error handle which can be passed to OCIErrorGet() for
diagnostic information in the event of an error.
position (IN) - the position of this value in the select list. Positions are
1-based and are numbered from left to right. For example, in the SELECT
statement
SELECT empno, ssn, mgrno FROM employees;
empno is at position 1, ssn is at position 2, and mgrno is at position 3.
valuep (IN/OUT) - a pointer to a buffer or an array of buffers of the type
specified in the dty parameter. A number of buffers can be specified when
results for more than one row are desired in a single fetch call.
value_sz (IN) - the size of each valuep buffer in bytes. If the data is stored
internally in VARCHAR2 format, the number of characters desired, if different
from the buffer size in bytes, may be additionally specified by the using
OCIAttrSet().
In an NLS conversion environment, a truncation error will be generated if the
number of bytes specified is insufficient to handle the number of characters
desired.
dty (IN) - the data type. Named data type (SQLT_NTY) and REF (SQLT_REF)
are valid only if the environment has been intialized with in object mode.
indp - pointer to an indicator variable or array. For scalar data types,
pointer to sb2 or an array of sb2s. Ignored for named data types. For named
data types, a pointer to a named data type indicator structure or an array of
named data type indicator structures is associated by a subsequent
OCIDefineObject() call.
See the section "Indicator Variables" on page 2-43 for more information about
indicator variables.
rlenp (IN/OUT) - pointer to array of length of data fetched. Each element in
rlenp is the length of the data in the corresponding element in the row after
the fetch.
rcodep (OUT) - pointer to array of column-level return codes
mode (IN) - the valid modes are:
OCI_DEFAULT. This is the default mode.
OCI_DYNAMIC_FETCH. For applications requiring dynamically
allocated data at the time of fetch, this mode must be used. The user may
additionally call OCIDefineDynamic() to set up a callback function that
will be invoked to receive the dynamically allocated buffers and to set
up the memory allocate/free callbacks and the context for the callbacks.
valuep and value_sz are ignored in this mode.
Related Functions
OCIDefineArrayOfStruct(), OCIDefineDynamic(), OCIDefineObject()
OCIDefineDynamic()
Name
OCI Define Dynamic Fetch Attributes
Purpose
This call is used to set the additional attributes required if the
OCI_DYNAMIC_FETCH mode was selected in OCIDefineByPos().
Syntax
sword OCIDefineDynamic( OCIDefine *defnp,
OCIError *errhp,
dvoid *octxp,
OCICallbackDefine (ocbfp)(
dvoid *octxp,
OCIDefine *defnp,
ub4 iter,
dvoid **bufpp,
ub4 **alenpp,
ub1 *piecep,
dvoid **indpp,
ub2 **rcodep) );
Comments
This call is used to set the additional attributes required if the
OCI_DYNAMIC_FETCH mode has been selected in a call to
OCIDefineByPos().
When the OCI_DYNAMIC_FETCH mode is selected, buffers will be
dynamically allocated for REF, and named data type, values to receive the
data. The pointers to these buffers will be returned.
If OCI_DYNAMIC_FETCH mode was selected, and the call to
OCIDefineDynamic() is skipped, then the application can fetch data piecewise
using OCI calls.
For more information about OCI_DYNAMIC_FETCH mode, see the section
"Runtime Data Allocation and Piecewise Operations" on page 5-16.
Parameters
defnp (IN/OUT) - the handle to a define structure returned by a call to
OCIDefineByPos().
errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for
diagnostic information in the event of an error.
octxp (IN) - points to a context for the callback function.
ocbfp (IN) - points to a callback function. This is invoked at runtime to get
a pointer to the buffer into which the fetched data or a piece
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -