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パス式ビデオをご覧ください

関連トピック