この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