例1 - Teradata Database - Teradata Vantage NewSQL Engine - スカラーUDF関数、例1。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-30
dita:mapPath
ja-JP/drp1544241916620.ditamap
dita:ditavalPath
ja-JP/drp1544241916620.ditaval
dita:id
B035-1210
Product Category
Software
Teradata Vantage

次のテーブルの定義とデータについて考えてみます。

CREATE TABLE pRecords (pname CHAR(30),
                       pkey INTEGER);
SELECT * FROM pRecords;

このSELECT文の出力は、次のとおりです。

pname                                  pkey
------------------------------  -----------
Tom                                       6
Bob                                       5
Jane                                      4

次に、整数引数の階乗を計算するスカラーUDFのSQL定義を示します。

CREATE FUNCTION factorial (i INTEGER)
RETURNS INTEGER
SPECIFIC factorial
LANGUAGE C
NO SQL
PARAMETER STYLE TD_GENERAL
NOT DETERMINISTIC
RETURNS NULL ON NULL INPUT
EXTERNAL NAME 'ss!factorial!factorial.c!F!fact'

次の問合わせでは、スカラーUDF式を使用してpkey列の階乗+1を計算します。

SELECT pname, factorial(pkey)+1 
FROM pRecords;

このSELECT文の出力は、次のとおりです。

pname                           (factorial(pkey)+1)
------------------------------  -------------------
Tom                                             721
Bob                                             121
Jane                                             25