例: JSONデータのBSON表現の取得 - Teradata Database - Teradata Vantage NewSQL Engine - AsBSONメソッドを使用してJSONデータのBSON表現を取得する例です。

Teradata Vantage™ JSONデータ型

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/bgi1512081870828.ditamap
dita:ditavalPath
ja-JP/bgi1512081870828.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