9.3. ODPI-C Data Functions

All of these functions are used for getting and setting the various members of the dpiData structure. The members of the structure can be manipulated directly but some languages (such as Go) do not have the ability to manipulate structures containing unions or the ability to process macros. For this reason, none of these functions perform any error checking. They are assumed to be replacements for direct manipulation of the various members of the structure.

int dpiData_getBool(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_BOOLEAN.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiBytes *dpiData_getBytes(dpiData *data)

Returns a pointer to the value of the data when the native type is DPI_NATIVE_TYPE_BYTES.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

double dpiData_getDouble(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_DOUBLE.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

float dpiData_getFloat(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_FLOAT.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

int64_t dpiData_getInt64(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_INT64.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiIntervalDS *dpiData_getIntervalDS(dpiData *data)

Returns a pointer to the value of the data when the native type is DPI_NATIVE_TYPE_INTERVAL_DS.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiIntervalYM *dpiData_getIntervalYM(dpiData *data)

Returns a pointer to the value of the data when the native type is DPI_NATIVE_TYPE_INTERVAL_YM.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

int dpiData_getIsNull(dpiData *data)

Returns whether the data refers to a null value (1) or not (0).

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the null indicator.

dpiLob *dpiData_getLOB(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_LOB.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiJson *dpiData_getJson(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_JSON.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiJsonArray *dpiData_getJsonArray(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_JSON_ARRAY.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiJsonObject *dpiData_getJsonObject(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_JSON_OBJECT.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiObject *dpiData_getObject(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_OBJECT.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiStmt *dpiData_getStmt(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_STMT.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

dpiTimestamp *dpiData_getTimestamp(dpiData *data)

Returns a pointer to the value of the data when the native type is DPI_NATIVE_TYPE_TIMESTAMP.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

uint64_t dpiData_getUint64(dpiData *data)

Returns the value of the data when the native type is DPI_NATIVE_TYPE_UINT64.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure from which to get the value.

void dpiData_setBool(dpiData *data, int value)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_BOOLEAN.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

value

IN

The value to set.

void dpiData_setBytes(dpiData *data, char *ptr, uint32_t length)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_BYTES. Do not use this function when setting data for variables. Instead, use the function dpiVar_setFromBytes().

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

ptr

IN

The byte string containing the data to set.

length

IN

The length of the byte string.

void dpiData_setDouble(dpiData *data, double value)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_DOUBLE.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

value

IN

The value to set.

void dpiData_setFloat(dpiData *data, float value)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_FLOAT.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

value

IN

The value to set.

void dpiData_setInt64(dpiData *data, int64_t value)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_INT64.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

value

IN

The value to set.

void dpiData_setIntervalDS(dpiData *data, int32_t days, int32_t hours, int32_t minutes, int32_t seconds, int32_t fsceconds)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_INTERVAL_DS.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

days

IN

The number of days to set in the value.

hours

IN

The number of hours to set in the value.

minutes

IN

The number of minutes to set in the value.

seconds

IN

The number of seconds to set in the value.

fseconds

IN

The number of fractional seconds to set in the value.

void dpiData_setIntervalYM(dpiData *data, int32_t years, int32_t months)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_INTERVAL_YM.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

years

IN

The number of years to set in the value.

months

IN

The number of months to set in the value.

void dpiData_setLOB(dpiData *data, dpiLob *lob)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_LOB. Do not use this function when setting data for variables. Instead, use the function dpiVar_setFromLob().

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

lob

IN

A reference to the LOB to assign to the value.

void dpiData_setNull(dpiData *data)

Sets the value of the data to be the null value.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

void dpiData_setObject(dpiData *data, dpiObject *obj)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_OBJECT. Do not use this function when setting data for variables. Instead, use the function dpiVar_setFromObject().

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

obj

IN

A reference to the object to assign to the value.

void dpiData_setStmt(dpiData *data, dpiStmt *stmt)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_STMT. Do not use this function when setting data for variables. Instead, use the function dpiVar_setFromStmt().

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

stmt

IN

A reference to the statement to assign to the value.

void dpiData_setTimestamp(dpiData *data, int16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t fsecond, int8_t tzHourOffset, int8_t tzMinuteOffset)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_TIMESTAMP.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

year

IN

The year to set in the value.

month

IN

The month to set in the value.

day

IN

The day to set in the value.

hour

IN

The hour to set in the value.

minute

IN

The minute to set in the value.

second

IN

The second to set in the value.

fsecond

IN

The fractional seconds to set in the value.

tzHourOffset

IN

The time zone hour offset to set in the value.

tzMinuteOffset

IN

The time zone minute offset to set in the value.

void dpiData_setUint64(dpiData *data, uint64_t value)

Sets the value of the data when the native type is DPI_NATIVE_TYPE_UINT64.

Parameter

Mode

Description

data

IN

A pointer to the dpiData structure to set.

value

IN

The value to set.