101 DBMS_JSON_SCHEMA
DBMS_JSON_SCHEMA
パッケージでは、Oracle Databaseに格納されているJavaScript Object Notation (JSON)スキーマの検証と生成のためのサブプログラムが提供されます。
この章のトピックは、次のとおりです:
101.1 DBMS_JSON_SCHEMAのセキュリティ・モデル
DBMS_JSON_SCHEMA
パッケージはSYS
アカウントが所有しています。
PUBLIC
アカウントには、DBMS_JSON_SCHEMA
パッケージに対するEXECUTE
権限が付与されます。
DBMS_JSON_SCHEMA
パッケージは、AUTHID CURRENT_USER
句で定義します。
DBMS_JSON_SCHEMA.DESCRIBE()
ファンクションを呼び出すユーザーには、記述されているオブジェクトに対する十分な権限が必要です。
101.2 DBMS_JSON_SCHEMAの定数
DBMS_JSON_SCHEMAパッケージでは、スキーマ検証に次の定数が使用されます。
表101-1スキーマ検証のためのDBMS_JSON_SCHEMAの定数
名前 | 値 | 説明 |
---|---|---|
RAISE_ERROR | 1 | 無効なスキーマの場合にはエラーが発生します。 |
RAISE_NONE | 0 | 無効なスキーマの場合でもエラーは発生しません。 |
SCHEMA_INVALID | 0 | スキーマは無効です。 |
SCHEMA_VALID | 1 | スキーマは有効です。 |
参照:
JSON開発者ガイド101.3 DBMS_JSON_SCHEMAサブプログラムの要約
この表は、DBMS_JSON_SCHEMAのサブプログラムを示し、簡単に説明しています。
DBMS_JSON_SCHEMAパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
DESCRIBEファンクション | 指定されたオブジェクト(表、ビュー、オブジェクト・タイプ。あるいは、表、ビュー、二面性ビュー、オブジェクト・タイプ、コレクション・タイプまたはドメインに解決されるシノニム)からスキーマを作成します。 |
IS_SCHEMA_VALIDファンクション | JSONスキーマの有効性をチェックします。 |
IS_VALIDファンクション | 指定されたスキーマのJSONデータの有効性をチェックします(ファンクション)。 |
IS_VALIDプロシージャ | 指定されたスキーマのJSONデータの有効性をチェックします(プロシージャ)。 |
VALIDATE_REPORTファンクション | スキーマ検証の結果からのエラー・レポートを読み取ります。 |
101.3.1 DESCRIBEファンクション
このプロシージャは、指定されたオブジェクトからスキーマを作成します。
構文
FUNCTION DESCRIBE(
object_name IN VARCHAR2,
owner_name IN VARCHAR2 DEFAULT NULL,
column_name IN VARCHAR2 DEFAULT NULL)
RETURN JSON;
パラメータ
表101-2 DESCRIBEファンクションのパラメータ
パラメータ | 説明 |
---|---|
object_name |
スキーマの作成に使用するオブジェクト。指定できるオブジェクトは、表、ビュー、オブジェクト・タイプか、表、ビュー、二面性ビュー、オブジェクト・タイプ、コレクション・タイプまたはドメインに解決されるシノニムです。 |
owner_name |
スキーマを作成するユーザーの名前。owner_name の値がNULLの場合、表は現行ユーザーのスキーマ内に作成されます。
|
column_name |
列名が指定された場合は、表内またはビュー内のその列のみについてスキーマが返されます。column_name 引数は、表またはビュー・オブジェクトでのみ使用できます。
|
101.3.2 IS_SCHEMA_VALIDファンクション
このファンクションは、スキーマの有効性をチェックします。
構文
FUNCTION IS_SCHEMA_VALID(
json_data IN JSON)
RETURN PLS_INTEGER;
パラメータ
表101-3 DESCRIBEファンクションのパラメータ
パラメータ | 説明 |
---|---|
json_data |
有効性をチェックするスキーマ。 |
このファンクションは、スキーマが有効でない場合は0を返します。
101.3.3 IS_VALIDファンクション
このファンクションは、指定されたスキーマについてJSONデータの有効性をチェックします。
構文
FUNCTION IS_VALID(
json_data IN JSON,
json_schema IN JSON,
raise_err IN PLS_INTEGER
DEFAULT DBMS_JSON_SCHEMA.RAISE_NONE)
RETURN PLS_INTEGER;
パラメータ
表101-4 IS_VALIDファンクションのパラメータ
パラメータ | 説明 |
---|---|
json_data |
検証するJSONデータ。 |
json_schema |
データの検証に使用するスキーマ。 |
raise_err |
|
スキーマが有効な場合は、SCHEMA_VALID
定数1が返されます。スキーマが有効でない場合は、raise_err
値がRAISE_ERROR
である場合(その場合はエラーが発生する)を除き、SCHEMA_INVALID
定数0が返されます。
101.3.4 IS_VALIDプロシージャ
このプロシージャは、指定されたスキーマについてJSONデータの有効性をチェックします。
構文
PROCEDURE IS_VALID(
json_data IN JSON,
json_schema IN JSON,
result OUT BOOLEAN,
errors OUT JSON);
パラメータ
表101-5 IS_VALIDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
json_data |
検証するJSONデータ。 |
json_schema |
データの検証に使用するスキーマ。 |
result |
検証の結果。JSONデータが有効な場合はTRUE 、そうでない場合はFALSE です。
|
errors |
指定されたスキーマに対する検証時にJSONデータを無効とみなした理由を示すエラー・メッセージのリスト。 |