例: JSONデータのBSON表現の取得

Teradata® Database JSONデータ型

brand
Software
prodname
Teradata Database
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1150-162K-JPN

この例では、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