例: JSONExtractとJSONExtractValueの違い - 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

エラー: 複数の値を抽出するJSONExtractValueの使用

この例では、JSONExtractValueメソッドを使用して複数の単一スカラー値を抽出すると、警告とエラー メッセージ文字列が返されます。

SELECT NEW JSON('{"numbers":[1,2,3]}').JSONExtractValue('$.numbers.*');

結果:

*** Query completed. One row found. One column returned.
*** Warning: 7548 More than one result per JSON instance found.
*** Total elapsed time was 1 second.

NEW JSON('{"numbers":[1,2,3]}', LATIN).JSONEXTRACTVALUE('$.numbers.*')
---------------------------------------------------------------------------
*** ERROR MULTI RESULT ***

JSONExtractを使用した複数の値の取得

以下は、JSONExtractValueメソッドの代わりにJSONExtractメソッドを使用する点を除いて前の例と同じです。この場合、JSON配列の複数の値が返されます。

SELECT NEW JSON('{"numbers":[1,2,3]}').JSONExtract('$.numbers.*');

結果:

*** Query completed. One row found. One column returned.
*** Total elapsed time was 1 second.

NEW JSON('{"numbers":[1,2,3]}', LATIN).JSONEXTRACT('$.numbers.*')
---------------------------------------------------------------------------
[1,2,3]