FNC_GetStructuredInputLobAttribute Function | C Library Functions | Vantage - FNC_GetStructuredInputLobAttribute - Analytics Database - Teradata Vantage

SQL External Routine Programming

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
VMware
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
ft:locale
en-US
ft:lastEdition
2025-03-30
dita:mapPath
iiv1628111441820.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
qnu1472247494689
lifecycle
latest
Product Category
Teradata Vantageā„¢

Returns the locator of a LOB attribute of a structured type that is defined to be an input parameter to a UDF, UDM, or external stored procedure.

For best performance, use FNC_GetStructuredInputLobAttributeByNdx instead of this routine. This routine is supported for its ease of use.

Syntax

void
FNC_GetStructuredInputLobAttribute ( UDT_HANDLE   udtHandle,
                                     char        *attributePath,
                                     int         *nullIndicator,
                                     LOB_LOCATOR *object )

Syntax Elements

udtHandle
the handle to a structured UDT that is defined to be an input parameter to a UDF, UDM, or external stored procedure.
attributePath
the dot delimited full path to the LOB attribute.

For example, consider a structured UDT called "PersonUDT" that has an attribute called "passport" that is a PassportUDT type, which in turn has a LOB attribute called" photo". To get the locator of the photo attribute, the full path is "passport.photo".

nullIndicator
-1 if the attribute is null or the full path to the specified attribute includes a preceding null attribute, 0 if the attribute is not null.
object
a pointer to the LOB locator for the LOB attribute.

Usage Notes

  • You can use FNC_GetStructuredInputLobAttribute to obtain the LOB locator for a distinct type attribute that represents a LOB type.
  • After you obtain the LOB locator for the LOB attribute, use the LOB access functions, such as FNC_LobOpen, to read the data.
  • To read the data of a JSON attribute which has its data stored in a LOB, do the following:
    1. Call FNC_GetStructuredAttributeInfo_EON.
    2. If the lob_length returned from the previous function call is 0, you must use FNC_GetStructuredAttribute instead of FNC_GetStructuredInputLobAttribute.
    3. If the lob_length is not 0, use FNC_GetStructuredInputLobAttribute to get a LOB_LOCATOR which represents the LOB where the data of a JSON attribute is stored. You can use this LOB_LOCATOR with the LOB FNC routines to read the data from the JSON attribute.
  • An external stored procedure that uses CLIv2 to run SQL must wait for any outstanding CLIv2 requests to complete before calling this function.

Example Using FNC_GetStructuredInputLobAttribute

void document_t_lowerCase( UDT_HANDLE *documentUdt,
                           UDT_HANDLE *resultDocumentUdt,
                           char        sqlstate[6])
{
    LOB_LOCATOR inDocLoc;
    int nullIndicator;

    /* Get a LOB_LOCATOR for the input doc attribute */
    FNC_GetStructuredInputLobAttribute(*documentUdt, "doc",                                        &nullIndicator, &inDocLoc);    if (nullIndicator == -1) {
        /* the CLOB attribute is set to null if we don't append to it. */
        return;
    }
    ....
}