例: JSONデータのBSON表現の取得 - 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

この例では、j1という列にテキスト形式のJSONデータが含まれています。AsBSONメソッドを呼び出して、STRICT妥当性検査またはLAX妥当性検査でこのデータのBSON表現を取得します。

AsBSONの設定例

CREATE TABLE jsonTable(id INTEGER, j1 JSON);

/*insert {"hello": "world"}*/
INSERT INTO jsonTable(1, '{"hello": "world"}');

例: 検証句のないAsBSON

STRICTまたはLAXを指定せずにAsBSONを呼び出します。この場合、メソッドにデフォルトでLAX妥当性検査を使用します。

SELECT j1.AsBSON() FROM jsonTable;

結果:

j1.AsBSON ()
--------------------------------------------
160000000268656C6C6F0006000000776F726C640000

例: 正しい結果にSTRICT妥当性検査を使用したAsBSON

SELECT j1.AsBSON('STRICT') FROM jsonTable;

結果:

j1.AsBSON ('STRICT')
--------------------------------------------
160000000268656C6C6F0006000000776F726C640000

例: 失敗した結果にSTRICT妥当性検査を使用したAsBSON

/*insert {"$hello": "world"}*/
INSERT INTO jsonTable(2, '{"$hello": "world"}');

SELECT j1.AsBSON('STRICT') FROM jsonTable;

結果:

*** Failure 7548 Dollar sign ('$') not permitted in a key of a BSON
document, according to the chosen validation scheme. 
Error encountered at offset 4.

例: LAX妥当性検査を使用したAsBSON

LAX妥当性検査で、テーブルに挿入した2番目の行に正しくない構文であることを示すフラグが付いていません。

SELECT j1.AsBSON('LAX') FROM jsonTable;

結果:

j1.AsBSON ('LAX')
--------------------------------------------
160000000268656C6C6F0006000000776F726C640000
17000000022468656C6C6F0006000000776F726C640000