17.10 - 例: JSON形式でのデータの挿入 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

次の例のテーブル定義を以下に示します。

CREATE TABLE MyTable (
pkey INTEGER, 
val INTEGER, 
j JSON AUTO COLUMN);

この文は、値10を列pkeyに、値1234を列valに挿入します。テーブルには、extraという名前の列がないため、値1234は自動列jに挿入されます。

INSERT INTO MyTable JSON '{"pkey":10,"val":1234,"extra":"1234"}';

この文は、疑問符(?)で表わされるパラメータ化SQLを、パラメータ化SQLをサポートするクライアントのテーブルMyTableに挿入します。

INSERT INTO MyTable JSON ?;
次の例のテーブル定義を以下に示します。
CREATE TABLE LDITable, WITH ISOLATED LOADING (
pkey INTEGER, 
val INTEGER, 
j JSON AUTO COLUMN);

この文は、ロード分離テーブルLDITableに挿入します。

INSERT WITH ISOLATED LOADING INTO LDITable 
'{"pkey":10,"val":1234,"extra":"1234"}';

次の例のテーブル定義を以下に示します。テーブルjsonTableには、値を含む必要がある自動列jが含まれています。

CREATE TABLE jsonTable (
a INTEGER, 
b INTEGER, 
j JSON AUTO COLUMN NOT NULL);

これらの文は、テーブルJsonTableに3行のデータを挿入します。

INSERT jsonTable JSON '{"a":1,"b":1,"extra":1}';
INSERT jsonTable JSON '{"a":2,"b":2,"extra1":2,"extra2":222}';
INSERT jsonTable JSON '{"a":3,"b":3};

テーブルには、extra、extra1、またはextra2という名前の列がないため、extra、extra1、およびextra2に指定された値は自動列jに挿入されます。3番目のinsert文は、列aとbの値のみを指定します。列jはNOT NULLとして定義されているため、空の括弧({})のセットが列jの3行目に挿入されます。

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