17.05 - 例: 1次元ARRAY型およびSQLパラメータ型を使用したインスタンス メソッドの作成 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)

この例は、5個の構成要素を持つ1次元ARRAYデータ型を使用して、update_phoneという名前でSQLパラメータ型のインスタンス メソッドを作成します。

最初に、phonenumbers_aryという名前のCHARACTERエレメント タイプを使用してARRAY型を作成します。

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

次に、address_udtという名前のSTRUCTURED型UDTを作成します。

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

最後に、SQLパラメータ形式を使用して、address_udtのインスタンス メソッドupdate_phoneを作成します。

     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 */
}