2.187 JSON_BEHAVIOR
JSON_BEHAVIOR
を使用すると、特定のSQL/JSON関数および条件について、セッション・レベルで様々なデフォルトの動作を指定できます。
特性 | 説明 |
---|---|
パラメータ・タイプ |
文字列 |
構文 |
二重引用符の中にスペースを含めることはできません。 |
デフォルト値 |
なし |
変更可能 |
|
PDBで変更可能 |
いいえ |
基本 |
いいえ |
このパラメータを使用すると、特定のSQL/JSON関数および条件について、セッション中のデフォルトの戻りデータ型、デフォルトの型互換性およびデフォルトのエラー動作を変更できます。これにより、一貫性のあるセッション・レベルのJSON処理動作が実施され、個々のSQL文内でデフォルトの動作を明示的にオーバーライドする必要がなくなります。
たとえば、JSON_QUERY
関数ではデータを比較するときにデフォルトでlax型互換性が使用されます。このパラメータを使用すると、セッション内のすべてのJSON_QUERY
関数の呼出しで厳密な型互換性がデフォルトで使用されるように指定できます。
次の1つ以上のフラグを任意の順序で指定できます:
-
JSON_QUERY_RET_VARCHAR
値:
TRUE
またはFALSE
(デフォルト)RETURNING
data_type
句を省略した場合のJSON_QUERY
関数のデフォルトの戻りデータ型を指定します。このフラグを
TRUE
に設定すると、JSON_QUERY
関数の戻りデータ型は、入力データ型に関係なくVARCHAR2(4000)
になります。デフォルト値の
FALSE
の場合、JSON_QUERY
関数は戻りデータ型に入力のデータ型を使用します。 -
LAX_JSON_EXISTS
値:
TRUE
(デフォルト)またはFALSE
TYPE(STRICT|LAX)
句を省略した場合のJSON_EXISTS
条件のデフォルトの型互換性を指定します。このフラグを
FALSE
に設定すると、JSON_EXISTS
条件は、TYPE(STRICT)
構文で実行されたかのように動作します。つまり、配列内の値の検索時に、配列値が検索値のデータ型と一致しない場合、条件はON
ERROR
句で指定されたとおりに動作します。デフォルト値の
TRUE
の場合、JSON_EXISTS
条件はデフォルトのTYPE(LAX)
構文で実行されたかのように動作し、必要に応じて配列値を検索値のデータ型に変換しようとします。 -
LAX_JSON_QUERY
値:
TRUE
(デフォルト)またはFALSE
TYPE(STRICT|LAX)
句を省略した場合のJSON_QUERY
関数のデフォルトの型互換性を指定します。このフラグを
FALSE
に設定すると、JSON_QUERY
関数はTYPE(STRICT)
構文で実行されたかのように動作します。つまり、配列内の値の検索時に、配列値が検索値のデータ型と一致しない場合、関数はON
ERROR
句で指定されたとおりに動作します。デフォルト値の
TRUE
の場合、JSON_QUERY
関数はデフォルトのTYPE(LAX)
構文で実行されたかのように動作し、必要に応じて配列値を検索値のデータ型に変換しようとします。 -
LAX_JSON_TABLE
値:
TRUE
(デフォルト)またはFALSE
TYPE(STRICT|LAX)
句を省略した場合のJSON_TABLE
関数のデフォルトの型互換性を指定します。このフラグを
FALSE
に設定すると、JSON_TABLE
関数はTYPE(STRICT)
構文で実行されたかのように動作します。つまり、関数の選択したキーの値が指定された戻りデータ型でない場合、関数はON
ERROR
句で指定されたとおりに動作します。デフォルト値の
TRUE
の場合、JSON_TABLE
関数はデフォルトのTYPE(LAX)
構文で実行されたかのように動作し、必要に応じて、選択したキーを指定した戻りデータ型に変換しようとします。 -
LAX_JSON_VALUE
値:
TRUE
(デフォルト)またはFALSE
TYPE(STRICT|LAX)
句を省略した場合のJSON_VALUE
関数のデフォルトの型互換性を指定します。このフラグを
FALSE
に設定すると、JSON_VALUE
関数はTYPE(STRICT)
構文で実行されたかのように動作します。つまり、この関数の戻り値が指定された戻りデータ型ではない場合、関数はON
ERROR
句で指定されたとおりに動作します。デフォルト値の
TRUE
の場合、JSON_VALUE
関数はデフォルトのTYPE(LAX)
構文で実行されたかのように動作し、必要に応じて戻り値を指定された戻りデータ型に変換しようとします。 -
ON_ERROR
値:
ERROR
またはNULL
(デフォルト)ON
ERROR
句を省略した場合の関数JSON_QUERY
、JSON_TABLE
(EXISTS
句なし)およびJSON_VALUE
のデフォルト動作を指定します。デフォルトでは、これらの関数はエラーが発生した場合にnull値を返すため、無効な問合せを識別することが困難になる可能性があります。このフラグを
ERROR
に設定すると、これらの関数は無効な問合せのエラーを返します。デフォルト値の
NULL
の場合、エラーが発生した場合にこれらの関数はNULL値を返します。
例
ALTER SESSION SET JSON_BEHAVIOR = "ON_ERROR:ERROR";
ALTER SESSION SET JSON_BEHAVIOR = "LAX_JSON_QUERY:FALSE;LAX_JSON_TABLE:FALSE;LAX_JSON_VALUE:FALSE";
ノート:
このパラメータは、Oracle Database 23ai以降で使用できます。
関連項目:
JSON_QUERY
、JSON_TABLE
およびJSON_VALUE
関数およびJSON_EXISTS
条件の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。