17.1 SQL/JSONパス式の概要
Oracle Databaseでは、SQL/JSONパス式を使用したJSONデータへのSQLアクセスが提供されます。
SQL/JSONパス式は、XMLデータのXQueryまたはXPath式とある程度似ています。これらは、SQL/XMLがXQuery式を使用してXMLデータへのSQLアクセスを許可するのと同様に、JSONデータへのSQLアクセスを提供します。
SQL/JSONパス式の構文は単純です。パス式では、この式と一致するかこの式を満たす0(ゼロ)個以上のJSON値が選択されます。
SQL/JSON条件json_exists
の場合、少なくとも1つの値が一致する場合はtrueが返され、一致する値がない場合はfalseが返されます。単一の値が一致した場合、この値がスカラーである場合はSQL/JSONファンクションjson_value
によってこの値が返され、スカラーでない場合はエラーが発生します。パス式に一致する値がない場合は、json_value
によってSQL NULL
が戻されます。
SQL/JSONファンクションjson_query
は、一致する値のすべてを返します。つまり、この関数は複数の値を返すことができます。この動作は、XQueryの場合のように値のシーケンスを戻す動作とみなすことも、複数の値を戻す動作とみなすこともできます。(ユーザーから見えるシーケンスが現れることはありません。)
どのような場合でも、パス式の照合では、パス式の各ステップを順番に照合しようとします。いずれかのステップの照合が失敗すると、後続のステップの照合は行われず、パス式の照合は失敗します。各ステップの照合が成功すると、パス式の照合は成功します。
SQL/JSONパス式のテキストの最大長は32Kバイトです。ただし、パス式の有効な長さは基本的に無制限です。これは、式が文字列値にバインドされたSQL/JSON変数(それぞれ32Kバイトに制限される)を使用できるためです。
関連項目:
概要については、TomのSQL-JSONパス式ビデオをご覧ください
関連トピック
親トピック: SQL/JSONパス式