9.11. ODPI-C Object Type Functions
Object type handles are used to represent types such as those created by the
SQL command CREATE OR REPLACE TYPE. They are created using the function
dpiConn_getObjectType()
or implicitly when fetching from a column
containing objects by calling the function dpiStmt_getQueryInfo()
.
Object types are also retrieved when used as attributes in
another object by calling the function dpiObjectAttr_getInfo()
or as
the element type of a collection by calling the function
dpiObjectType_getInfo()
. They are destroyed when the last reference is
released by calling the function dpiObjectType_release()
.
-
int dpiObjectType_addRef(dpiObjectType *objType)
Adds a reference to the object type. This is intended for situations where a reference to the object type needs to be maintained independently of the reference returned when the object type was created.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
Parameter
Mode
Description
objType
IN
The object type to which a reference is to be added. If the reference is NULL or invalid, an error is returned.
-
int dpiObjectType_createObject(dpiObjectType *objType, dpiObject **obj)
Creates an object of the specified type and returns a reference to it. This reference should be released as soon as it is no longer needed.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
Parameter
Mode
Description
objType
IN
A reference to the object type whose information is to be retrieved. If the reference is NULL or invalid, an error is returned.
obj
OUT
A pointer to a reference to the created object, which will be populated when the function completes successfully.
-
int dpiObjectType_getAttributes(dpiObjectType *objType, uint16_t numAttributes, dpiObjectAttr **attributes)
Returns the list of attributes that belong to the object type.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
Parameter
Mode
Description
objType
IN
A reference to the object type whose attributes are to be retrieved. If the reference is NULL or invalid, an error is returned.
numAttributes
OUT
The number of attributes which will be returned. This value can be determined using the function
dpiObjectType_getInfo()
.attributes
OUT
An array of references to the object’s attributes, which will be populated with attribute references upon successful completion of this function. It is assumed that the array is large enough to hold numAttributes attribute references. These references must be released when they are no longer required by calling the function
dpiObjectAttr_release()
.
-
int dpiObjectType_getInfo(dpiObjectType *objType, dpiObjectTypeInfo *info)
Returns information about the object type.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
Parameter
Mode
Description
objType
IN
A reference to the object type whose information is to be retrieved. If the reference is NULL or invalid, an error is returned.
info
OUT
A pointer to a dpiObjectTypeInfo structure which will be populated with information about the object type when the function completes successfully.
-
int dpiObjectType_release(dpiObjectType *objType)
Releases a reference to the object type. A count of the references to the object type is maintained and when this count reaches zero, the memory associated with the object type is freed.
The function returns DPI_SUCCESS for success and DPI_FAILURE for failure.
Parameter
Mode
Description
objType
IN
The object type from which a reference is to be released. If the reference is NULL or invalid, an error is returned.