例: INSERT...JSONを使用したJSONデータのシュレッディング - 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
CREATE TABLE jsonTable2 
(
    a INTEGER, 
    b INTEGER, 
    c INTEGER NOT NULL DEFAULT 5, 
    j JSON CHARACTER SET LATIN
);

次のINSERT文では、入力JSONデータに列cの値が含まれていません。ただし、入力JSONデータは文字列リテラルであるため、列cに定義されたDEFAULT値が挿入されます。

INSERT INTO jsonTable2 JSON '{"a":1234,"b":2}';
*** Insert completed. One row added.  ***
CREATE TABLE jsonTable5 
(
    a INTEGER, 
    b INTEGER, 
    j JSON AUTO COLUMN NOT NULL
);

この例では、入力JSONデータにjsonTable 5のどの列とも一致しない余分なデータが含まれています。余分なデータはj AUTO COLUMNに挿入されます。3番目のINSERT文には余分なデータが含まれず、AUTO COLUMNはNOT NULLとして定義されます。したがって、'{}'が挿入されます。

INS jsonTable5 JSON '{"a":1,"b":1,"extra":1}';
INS jsonTable5 JSON '{"a":2,"b":2,"extra1":2,"extra2":222}';
INS jsonTable5 JSON '{"a":3,"b":3};
SELECT * FROM jsonTable5 ORDER BY 1;
          a           b j
----------- ----------- ---------------------------------------------------
          1           1 {"extra":"1"}
          2           2 {"extra1":"2","extra2":"222"}
          3           3 {}