JSON - Teradata Database - Teradata Vantage NewSQL Engine - JSONオプション、INSERT SQL文

Teradata Vantage™ SQLデータ操作言語

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

JSON形式の入力を指定します。JSONオプションの使用上のルールを参照してください。

JSONデータの書式設定の詳細については、<Teradata Vantage™ JSONデータ型、B035-1150>を参照してください。

'JSON_string'
データのリテラル文字列をJSON形式で指定します。
?
パラメータ化SQLを指定します。
パラメータ化SQLの場合、INSERT...JSONはVARCHAR、CLOB、および外部JSONデータ型をサポートします。ただし、操作は2 AMPプロセスです。最適なパフォーマンスを行なうには、JSONリテラルを指定します。

例: JSON形式でのデータの挿入

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

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 {}