例: JSONExtractとJSONExtractValueの違い

Teradata® Database JSONデータ型

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

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