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

Teradata Vantage™ - JSONデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年9月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/gzn1554761068186.ditamap
dita:ditavalPath
ja-JP/gzn1554761068186.ditaval
dita:id
evi1472243742653
Product Category
Software
Teradata Vantage

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

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.name.firstname;
SELECT test_udf(new json('{ "thenum" : "10" , "name": {"firstname" : "abc" }}'));

結果:

test_udf( NEW JSON('{ "thenum" : "10" , "name": {"firstname"
---------------------------------------------------------------------------
abc
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)
---------------------------------------------------------------------------
abc
SELECT test_udf(test_data.y1) FROM test_data;

結果:

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

結果:

test_udf(y1)
---------------------------------------------------------------------------
abc