17.10 - 例: 2つの属性を持つSTRUCTURED型UDTの作成 - 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
日本語 (日本)

以下の例は、事前定義データ型で定義されたstreetzipの2つの属性を持ち、addressという名前のSTRUCTURED型UDTを作成します。このタイプは、1つのコンストラクタ メソッド(address (VARCHAR(20), CHAR(5))と3つのインスタンス メソッド(city()state()、およびin_state())とによっても定義されます。

この例では、インスタンス メソッドcity()in_state(CHAR(2))にはSPECIFICメソッド名が指定されないため、システムはSYSUDTLIBデータベースのインスタンス メソッドに以下のTVMNameI SPECIFIC名を自動生成および登録します。

  • city()メソッドの代わりにADDRESS_CITY_R
  • in_state(CHAR(2))メソッドの代わりにADDRESS_IN_STATE_R
        CREATE TYPE address AS (
           street VARCHAR(20), 
           zip    CHARACTER(5) ) 
          NOT FINAL
         CONSTRUCTOR METHOD address( VARCHAR(20), CHARACTER(5) ) 
          RETURNS address
          SPECIFIC address_constructor_1
          SELF AS RESULT
          LANGUAGE C
          PARAMETER STYLE SQL
          DETERMINISTIC
          NO SQL,
         INSTANCE METHOD city() 
          RETURNS VARCHAR(20)
          LANGUAGE C
          PARAMETER STYLE SQL
          DETERMINISTIC
          NO SQL,
         METHOD state() 
          RETURNS CHARACTER(2) 
          SPECIFIC address_state
          RETURNS NULL ON NULL INPUT
          LANGUAGE C
          PARAMETER STYLE SQL
          DETERMINISTIC
          NO SQL,
         METHOD in_state(CHARACTER(2)) 
          RETURNS CHARACTER(1)
          LANGUAGE C
          PARAMETER STYLE SQL
          DETERMINISTIC
          NO SQL;