148 DBMS_SODA

DBMS_SODAパッケージは、Simple Oracle Document Access (SODA)を実装するPL/SQLパッケージです。SODAにより、Oracle DatabaseをNoSQLドキュメント・ストアとして使用できます。SODAが提供している主要な抽象化は、ドキュメント・コレクションの抽象化です。DBMS_SODAパッケージを使用すると、PL/SQLからドキュメント・コレクションを作成、リストおよび削除し、ドキュメントに対してCRUD (作成、置換、更新、削除)操作を実行できます。すべてのDDLファンクションがこのパッケージ内にカプセル化されています。

この章のトピックは、次のとおりです:

148.1 DBMS_SODAのセキュリティ・モデル

このパッケージは、SODA_APPロールを持つユーザーが使用できます。

すべてのSODAタイプ(パッケージおよびタイプ)は、SYSタイプです。PUBLICには、この章で説明するDBMS_SODAに対するEXECUTE権限が付与されます。

148.2 DBMS_SODAサブプログラムの要約

この表は、DBMS_SODAサブプログラムをアルファベット順に示し、簡単に説明しています。

表148-1 DBMS_SODAパッケージのサブプログラム

サブプログラム 用途

CREATE_COLLECTIONファンクション

コレクション名およびメタデータを使用してコレクションを作成します。

DROP_COLLECTIONファンクション

ユーザーのスキーマから既存のコレクションを削除します。これにより、コレクション内のすべてのドキュメントも削除されます。

LIST_COLLECTION_NAMESファンクション

ユーザーのスキーマ内のコレクション名をNVARCHAR2の表としてリストします。

OPEN_COLLECTIONファンクション

既存のコレクションをオープンします。

148.2.1 CREATE_COLLECTIONファンクション

コレクション名およびメタデータを使用してコレクションを作成します。メタデータで指定されている設定を使用し、指定されていない設定を自動的に割り当て、コレクション・オブジェクトを戻します。metadata引数が省略されている場合、またはNULLに設定されている場合、コレクションはデフォルトのメタデータを使用して作成されます。戻されたコレクションは、readまたはwrite操作(あるいはその両方)用にオープンされます。コレクションがすでに存在する場合、ファンクションは単にコレクション・オブジェクトをオープンして戻します。

構文

DBMS_SODA.CREATE_COLLECTION (
     collection_Name      IN NVARCHAR2,
     metadata             IN VARCHAR2 DEFAULT NULL,
     create_Mode          IN PLS_INTEGER DEFAULT CREATE_MODE_DDL)
 RETURN SODA_Collection_T;

パラメータ

表148-2 CREATE_COLLECTIONのパラメータ

パラメータ 説明

collection_Name

コレクションの名前。

collection_Nameの値は、大/小文字が区別されます。

metadata

VARCHAR2形式のコレクションのメタデータ。

create_Mode

有効な値は、次のとおりです。
  • DBMS_SODA.CREATE_MODE_DDL (デフォルト)。最初にコレクション用の新しい表を作成しようとします。すでに表が存在する場合は、既存の表をコレクションにマップしようとします。最小限のチェックが実行され、表の形状が指定されたコレクション・メタデータと一致することを確認します(一致しない場合は、エラーが返されます)。
  • DBMS_SODA.CREATE_MODE_MAP。既存の表をコレクションにマップしようとします。最小限のチェックが実行され、表の形状が指定されたコレクション・メタデータと一致することを確認します(一致しない場合は、エラーが返されます)。

戻り値

このファンクションは、コレクションを表すSoda_Collection_Tオブジェクトを戻します。

例外

  • Descriptor Error - 入力記述子が無効な場合

  • Error - コレクションの作成中にエラーが発生した場合

148.2.2 DROP_COLLECTIONファンクション

ユーザーのスキーマから既存のコレクションを削除します。これにより、コレクション内のすべてのドキュメントも削除されます。

構文

DBMS_SODA.DROP_COLLECTION (
     collection_Name      IN NVARCHAR2)
 RETURN NUMBER;

パラメータ

表148-3 DROP_COLLECTIONのパラメータ

パラメータ 説明

collection_Name

コレクションの名前。

collection_Nameの値は、大/小文字が区別されます。

戻り値

この関数は、次の値を返します。

  • 1 - コレクションが正常に削除された場合

  • 0 - コレクションが存在しない場合

例外

コレクションへのコミットされていない書込みや権限の問題などによって、コレクションの削除中にエラーが発生した場合。

148.2.3 LIST_COLLECTION_NAMESファンクション

このファンクションは、ユーザーのスキーマ内のコレクション名のリストをNVARCHAR2の表として戻します。

構文

DBMS_SODA.LIST_COLLECTION_NAMES ()
 RETURN SODA_CollName_List_T;

戻り値

このファンクションは、コレクション名のリストをNVARCHAR2(255)の表として戻します。スキーマ内にコレクションがない場合、コレクション・リストは空になります。

例外

Error - コレクション名のリストを作成しているときにエラーが発生した場合。

148.2.4 OPEN_COLLECTIONファンクション

readまたはwrite操作(あるいはその両方)用に既存のコレクションをオープンします。

構文

DBMS_SODA.OPEN_COLLECTION (
     collection_Name      IN NVARCHAR2)
 RETURN SODA_Collection_T;

パラメータ

表148-4 OPEN_COLLECTIONのパラメータ

パラメータ 説明

collection_Name

コレクションの名前。

collection_Nameの値は、大/小文字が区別されます。

戻り値

この関数は、次の値を返します。

  • オープンしているコレクション・オブジェクト

  • ファイルが存在しない場合はNULL

例外

Error - コレクションの作成中にエラーが発生した場合