SELECTメソッドとJSONメソッドを使用したJSONデータの抽出 - 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

SELECT文またはJSONメソッド(JSONExtract、JSONExtractValue、JSONExtractLargeValue、JSON_TABLE、JSON_SHRED_BATCH、および JSON_SHRED_BATCH_U)を使用して、データベースに格納されているJSON文書からJSONデータを抽出できます。

提案されたANSI SQL/JSON規格に準拠するために、これらの抽出メソッドは目的のパスに一致する1つの値を返します。JSONPath問合わせ文字列に次の要素のいずれかがある場合を除いて、最初に見つかった結果が返されます。

  • 再帰下降演算子
  • ワイルドカード
  • 名前またはインデックス リスト
  • インデックス スライス
  • フィルタ
JSONExtractValueとJSONExtractLargeValueのメソッドは、単一のスカラー値またはJSON nullしか抽出しません。複数の値がJSONPath問合わせ式と一致すると、複数の結果が見つかったことを示す警告やエラー メッセージ文字列が返されます。

検索は、必ずしも文書全体を検索する必要がないように最適化されます。ただし、これは次のシナリオが可能であることを意味します。

  1. JSON妥当性検査を無効にする。
  2. 不正な形式のJSONデータを挿入する。例えば、次のように挿入します。{"name":"Cameron" 123456}
  3. JSON妥当性検査を有効にする。
  4. キー"name"の値を抽出する。

この場合、文書全体を検索し、不正な形式のデータに到達する前に結果が見つかったため、"Cameron"の正しい結果が返されます。検索中、結果を見つける前に不正な形式のデータが見つかった場合は、構文エラーが報告されます。