17.05 - Example: Creating an Instance Method Using a One-Dimensional ARRAY Type and an SQL Parameter Type - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL Data Definition Language Syntax and Examples

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
January 2021
Content Type
Programming Reference
Publication ID
B035-1144-175K
Language
English (United States)

This example creates an instance method named update_phone with an SQL parameter type using a one-dimensional ARRAY data type that has 5 elements.

First create the ARRAY type with CHARACTER element type named phonenumbers_ary.

     CREATE TYPE phonenumbers_ary 
     AS CHARACTER(10) ARRAY[5];

Then create the structured UDT named address_udt.

     CREATE TYPE address_udt AS (
       house_num INTEGER, 
       street VARCHAR(100), 
       phone CHAR(10))
     INSTANCE METHOD update_phone (
       a1 source_ary)
     …
     ;

Finally, create the instance method update_phone for address_udt with an SQL parameter style.

     CREATE INSTANCE METHOD update_phone (
         p1 phonenumbers_ary)
       FOR address_udt
       RETURNS INTEGER
       NO SQL
       PARAMETER STYLE SQL
       DETERMINISTIC
       LANGUAGE C
       EXTERNAL NAME 'CS!update_phone!update_phone.c!F!update_phone';
void update_phone (	
       UDT_HANDLE     *thisUdt,
       ARRAY_HANDLE   *aryval, 
       INTEGER        *result,
       int            *indicator_this,
       int            *indicator_aryval,
       int            *indicator_result,
       char           sqlstate[6],
       SQL_TEXT       extname[129],
       SQL_TEXT       specific_name[129],
       SQL_TEXT       error_message[257])
{
/* body function */
}