例: ドット表記法を使用して値を返すUDF(レベル 1) - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ JSONデータ型

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

このUDFは、JSON文字列から"thenum"の値を取得するドット表記法の構文の使用を示しています。

REPLACE FUNCTION test_udf(string JSON(32000))
RETURNS VARCHAR(32000)
LANGUAGE SQL
CONTAINS SQL
DETERMINISTIC
SQL SECURITY DEFINER
COLLATION INVOKER
INLINE TYPE 1
RETURN string.thenum;
SELECT test_udf(new json('{ "thenum" : "10" , "name": {"firstname" : "abc" }}'));

結果:

test_udf( NEW JSON('{ "thenum" : "10" , "name": {"firstname"
---------------------------------------------------------------------------
10
CREATE TABLE test_data(x1 int, y1 json(32000));

INSERT INTO test_data(1,new json('{ "thenum" : "10" , "name": {"firstname" : "abc" }}'));
SELECT test_udf(y1) FROM test_data;

結果:

test_udf(y1)
---------------------------------------------------------------------------
10
SELECT test_udf(test_data.y1) FROM test_data;

結果:

test_udf(y1)
---------------------------------------------------------------------------
10
SELECT test_udf(test_database.test_data.y1) FROM test_data;

結果:

test_udf(y1)
---------------------------------------------------------------------------
10