16.20 - 例 - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL演算子およびユーザー定義関数

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
管理
featnum
B035-1210-162K-JPN

次のNEW VARIANT_TYPE式は、weightという名前の属性を1つ持つ動的UDTを作成します。

NEW VARIANT_TYPE (Table1.a AS weight)

次の例では、NEW VARIANT_TYPE式は、heightという名前の属性を1つ持つ動的UDTを作成します。この例では、別名は指定されていません。したがって、列名が属性名として使用されます。

NEW VARIANT_TYPE (Table1.height)

次の例では、1番目の属性は列名から、heightという名前になります。しかし、2番目の属性も指定された別名から、heightという名前になります。属性名は固有でなければならないので、これは認められません。Teradata Databaseは次のようなエラーを返します。"ERRTEQDUPLATTRNAME - "Duplicate attribute names in the attribute list.(「属性リスト内の重複属性名%VSTR」がユーザーに戻されます)

NEW VARIANT_TYPE (Table1.height, Table1.a AS height)

この例では、VARIANT_TYPEデータ型として宣言されたparameter_1という名前の入力パラメータがある、ユーザー定義の集約関数を示しています。SELECT文は、NEW VARIANT_TYPE式を使用して新しい関数を呼び出し、abという名前の2つの属性を持った動的UDTを作成します。

CREATE TYPE INTEGERUDT AS INTEGER FINAL;
CREATE FUNCTION udf_agch002002dynudt (parameter_1  VARIANT_TYPE)
RETURNS INTEGERUDT CLASS AGGREGATE (4) LANGUAGE C  NO SQL
EXTERNAL NAME   'CS!udf_agch002002dynudt!udf_agch002002dynudt.c'
PARAMETER STYLE SQL;
SELECT udf_agch002002dynudt(NEW VARIANT_TYPE (Tbl1.a AS a,
                                             (Tbl1.b + Tbl1.c) AS b))
FROM Tbl1;