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

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

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

以下は、1つのパラメータを持ち、n次元ARRAYデータ型を使用して定義されたSTRUCTURED型UDTのUDMの作成例です。同じ例が、SQLパラメータ形式とTD_GENERALパラメータ形式の両方をもつDDLと関数プロトタイプを示すために、例: 多次元ARRAY型およびTD_GENERALパラメータ型を使用したインスタンス メソッドの作成にも繰り返されています。

まず、STRUCTURED型measures_udtを作成します。

     CREATE TYPE measures_udt AS (
       amplitud  INTEGER,
       phase     INTEGER,
       frequency INTEGER)
     INSTANCE METHOD update_measures (
       a1 source_ary)
     …
     ;

次に、多次元ARRAY型source_aryを作成します。

     CREATE TYPE source_ary AS 
       INTEGER ARRAY [1:5][1:7][1:20];

最後に、1つの多次元ARRAYパラメータを持つ、measures_udtタイプのインスタンス メソッドupdate_measuresを作成します。

     CREATE INSTANCE METHOD update_measures (
         a1 source_ary)  
       RETURNS INTEGER
       FOR measures_udt
       NO SQL
       PARAMETER STYLE SQL
       DETERMINISTIC
       LANGUAGE C
       EXTERNAL NAME 'CS!update_measures!update_measures.c!F!update_measures';
void update_measures (	
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 */
}