17.10 - Compressing BLOB and CLOB Types - Advanced SQL Engine - Teradata Database

Teradata Vantageā„¢ - SQL External Routine Programming

Advanced SQL Engine
Teradata Database
Release Number
Release Date
July 2021
Content Type
Programming Reference
Publication ID
English (United States)

For information on UDFs with LOB input and return parameters, see Defining Functions that Use LOB Types.

When writing a scalar UDF that compresses BLOB or CLOB types, use the following general structure:

  1. Define a buffer size (no larger than 64KB) for reading portions of the source LOB.
  2. Use FNC_LobOpen to open reading of the source LOB.
  3. While more data exists in the LOB:
    1. Use FNC_LobRead to read a portion of the LOB into the allocated buffer.
    2. Perform the compression on the data in the buffer.
    3. If the UDF cannot compress the input string, return an SQLSTATE of 'U1005', otherwise, append the compressed contents of the buffer to the output LOB using FNC_LobAppend.
  4. Use FNC_LobClose to close reading of the source LOB.
  5. Handle errors reported by any FNC routines during processing.
  6. Release allocated resources once you have processed the data.

For information about the FNC functions, see LOB Access.

To see sample code for compressing CLOB data, see C Scalar Function for Compressing CLOB Data.