例 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-31
dita:mapPath
ja-JP/xwv1596137968859.ditamap
dita:ditavalPath
ja-JP/xwv1596137968859.ditaval
dita:id
B035-1210
Product Category
Software
Teradata Vantage

次の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という名前になります。属性名は固有でなければならないので、これは認められません。システムは次のようなエラーを返します。「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;