Example: Difference between JSONExtract and JSONExtractValue - Teradata Vantage

Teradata® VantageCloud Lake

Deployment
VantageCloud
Edition
Lake
Product
Teradata Vantage
Published
January 2023
ft:locale
en-US
ft:lastEdition
2024-12-11
dita:mapPath
phg1621910019905.ditamap
dita:ditavalPath
pny1626732985837.ditaval
dita:id
phg1621910019905

Error: Using JSONExtractValue to Extract More than One Value

In this example, a warning and error message string are returned when the JSONExtractValue method is used to extract more than a single scalar value.

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

Result:

*** 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 ***

Using JSONExtract to Retrieve Multiple Values

The following is the same as the previous example except the JSONExtract method is used instead of the JSONExtractValue method. The multiple values are returned in a JSON array.

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

Result:

*** 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]