例: JSONExtractとJSONExtractValueの違い - Teradata Database - Teradata Vantage NewSQL Engine - この例では、複数の結果が見つかった場合にJSONExtractValueメソッドで警告とエラー メッセージ文字列を返す方法を示しますが、JSONExtractメソッドを使用して複数の結果を取得できます。

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

エラー: 複数の値を抽出する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]