298 SODAタイプ

SODAタイプには、SODA_DOCUMENT_TSODA_COLLECTION_TSODA_OPERATION_TおよびSODA_CURSOR_Tという複数のタイプがあります。SODA_DOCUMENT_TSODA_COLLECTION_Tは、SODAが提供する2つの主要な抽象化(ドキュメントとコレクション)を表します。SODA_OPERATION_Tは、コレクションに対する操作の条件を指定するために使用します。SODA_CURSOR_Tは、コレクションに対する読取り操作の結果によるカーソルです。

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

298.1 SODAタイプの概要

SODAタイプには、SODA_DOCUMENT_TSODA_COLLECTION_TSODA_OPERATION_TおよびSODA_CURSOR_Tという複数のタイプがあります。SODA_DOCUMENT_TSODA_COLLECTION_Tは、SODAが提供する2つの主要な抽象化(ドキュメントとコレクション)を表します。SODA_OPERATION_Tは、コレクションに対する操作の条件を指定するために使用します。SODA_CURSOR_Tは、コレクションに対する読取り操作の結果によるカーソルです。

298.2 SODAタイプのセキュリティ・モデル

SODAタイプは、SODA_APPロールを持つユーザーが使用できます。

SODAタイプはすべてSYSタイプです。PUBLICには、この章で説明するSODAタイプのEXECUTE権限が付与されます。

  • タイプSODA_Collection_T

  • タイプSODA_Document_T

  • タイプSODA_Operation_T

  • タイプSODA_Cursor_T

298.3 SODAタイプの要約

この章では、SODAタイプをリストし、それらについて説明します。

表298-1 SODAタイプ

タイプ 説明

SODA_Collection_Tタイプ

このSODAタイプは、SODAコレクションを表します。このタイプは永続化できません。

SODA_Document_Tタイプ

このSODAタイプは、コンテンツを含むドキュメント(通常はJSON形式)を表します。このタイプは永続化できません。

SODA_Operation_Tタイプ

このSODAタイプは、SODAコレクションに対するフィルタリングやページ区切りによるドキュメントの検索、削除と置換など読取り/書込み操作を実行します。このタイプは永続化できません。

SODA_Cursor_Tタイプ

このSODAタイプは、ドキュメントの結果セットを表します。このタイプは永続化できません。

298.3.1 SODA_Collection_Tタイプ

このSODAタイプは、SODAコレクションを表します。SODAコレクションの参照は、DBMS_SODA.CREATE_COLLECTION()またはDBMS_SODA.OPEN_COLLECTION()をコールすることによってのみ取得できます。

表298-2 SODA_Collection_Tタイプのサブプログラム

サブプログラム 説明

CREATE_INDEXファンクション

JSONで表現される索引指定を使用して索引を作成します。

サポートされている指定のタイプは3つあります。それぞれで、異なるタイプの索引(Bツリー索引、データ・ガイドによるJSON検索索引、空間索引)を指定します。

DROP_INDEXファンクション

名前付き索引を削除します。

FINDファンクション

SODA_OPERATION_Tオブジェクトを返します。コンストラクタがないため、これ以外にSODA_Operation_Tの参照を取得する方法はありません。

FIND_ONEファンクション

キーと一致するドキュメントをフェッチします。

GET_DATA_GUIDEファンクション

CLOBとしてJSONデータ・ガイドを返します。

GET_METADATAファンクション

コレクションのメタデータをJSON形式で戻します。

GET_NAMEファンクション

コレクションの名前を戻します。

INSERT_ONEファンクション

ドキュメントをコレクションに挿入します。

INSERT_ONE_AND_GETファンクション

ドキュメントをコレクションに挿入し、コンテンツを除くすべてのコンポーネントを含む結果ドキュメントを戻します。

REMOVE_ONEファンクション

キーと一致するドキュメントを削除します。

REPLACE_ONEファンクション

キーと一致するドキュメントのコンテンツおよび(オプションで)メディア・タイプを置換します。

REPLACE_ONE_AND_GETファンクション

キーと一致するドキュメントのコンテンツおよび(オプションで)メディア・タイプを置換し、すべてのコンポーネント(コンテンツを除く)を含む結果ドキュメントを戻します。

298.3.1.1 CREATE_INDEXファンクション

このファンクションでは、JSONで表現される索引指定を使用して索引を作成します。サポートされている指定のタイプは3つあります。それぞれで、異なるタイプの索引(Bツリー索引、データ・ガイドによるJSON検索索引、空間索引)を指定します。

構文

CREATE_INDEX (
     specification VARCHAR2) 
  RETURN NUMBER;

パラメータ

表298-3 CREATE_INDEXファンクションのパラメータ

パラメータ 説明

specification

索引の指定内容。

例298-1 戻り値

このファンクションは、次の値を戻します。
  • 1: 索引が正常に作成された場合。

  • 0: 索引が作成されなかった場合。

例外

Error: 索引の作成中にエラーが発生した場合。

参照:

SODA索引の指定内容の詳細は、次を参照してください。
298.3.1.2 DROP_INDEXファンクション

このファンクションでは、名前付き索引を削除します。

構文

DROP_INDEX (
     index_Name IN VARCHAR2,
     force      IN BOOLEAN DEFAULT FALSE) 
  RETURN NUMBER;

例298-2 パラメータ

表298-4 DROP_INDEXファンクションのパラメータ

パラメータ 説明

index_Name

索引の名前。

force

forceパラメータは、TRUEまたはFALSEのどちらかにします。JSON検索索引または空間索引(Bツリー索引以外)を削除する場合は、TRUEに設定する必要があります。

詳細は、DROP INDEXを参照してください。

戻り値

このファンクションは、次の値を戻します。
  • 1: 索引が正常に削除された場合。

  • 0: 索引が削除されなかった場合。たとえば、指定された名前の既存の索引が存在していなかった場合などです。

例外

Error: 索引の削除中にエラーが発生した場合。

298.3.1.3 FINDファンクション

このファンクションでは、コレクションの操作タイプを返します。操作タイプを使用すると、各種の読取り/書込み操作を作成および実行できます。コンストラクタがないため、これ以外にSODA_Operation_Tの参照を取得する方法はありません。

構文

FIND ()
 RETURN SODA_Operation_T;

戻り値

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

例外

このファンクションは、例外をスローしません。

298.3.1.4 FIND_ONEファンクション

このファンクションは、指定されたキーと一致するドキュメントをフェッチします。

構文

FIND_ONE (
     key         IN VARCHAR2)
 RETURN SODA_Document_T;

パラメータ

表298-5 FIND_ONEファンクションのパラメータ

パラメータ 説明

key

フェッチするドキュメントのキー。

戻り値

このファンクションは、キーと一致するドキュメントを戻します。一致するものが見つからない場合は、NULLを戻します。

例外

Error - ドキュメントの検索中にエラーが発生した場合。

298.3.1.5 GET_DATA_GUIDEファンクション

このファンクションでは、CLOBとしてJSONデータ・ガイドをフェッチします。JSONデータ・ガイドは、本質的にはコレクション内のJSONドキュメントに対して推測されるスキーマです。JSONデータ・ガイドを返すには、コレクションにJSON検索索引が定義されていて、データ・ガイドが有効にされている必要があります。

構文

GET_DATA_GUIDE () 
 RETURN CLOB;

戻り値

このファンクションは、CLOBとしてJSONデータ・ガイドを返します。

参照:

JSONデータ・ガイドの詳細は、「JSONデータ・ガイド」を参照してください。

例外

Error: データ・ガイドのフェッチ中にエラーが発生した場合。

298.3.1.6 GET_METADATAファンクション

このファンクションは、コレクションのメタデータをJSON形式で戻します。

構文

GET_METADATA () 
  RETURN VARCHAR2;

戻り値

このファンクションは、コレクションのメタデータをJSON形式で戻します。

298.3.1.7 GET_NAMEファンクション

このファンクションは、コレクションの名前を戻します。

構文

GET_NAME ()
 RETURN NVARCHAR2;

戻り値

このファンクションは、コレクションの名前を戻します。

298.3.1.8 INSERT_ONEファンクション

このファンクションは、ドキュメントをコレクションに挿入します。

構文

INSERT_ONE (
     document      IN SODA_Document_T)
 RETURN NUMBER;

パラメータ

表298-6 INSERT_ONEファンクションのパラメータ

パラメータ 説明

document

入力ドキュメント。

戻り値

このファクションは数値を戻します。ドキュメントが正常に挿入された場合は1、それ以外の場合は0です。

例外

Error - ドキュメントをコレクションに挿入しているときにエラーが発生した場合。

298.3.1.9 INSERT_ONE_AND_GETファンクション

このファンクションは、ドキュメントをコレクションに挿入します。

構文

INSERT_ONE_AND_GET (
     document      IN SODA_Document_T)
 RETURN SODA_Document_T;

パラメータ

表298-7 INSERT_ONE_AND_GETファンクションのパラメータ

パラメータ 説明

document

入力ドキュメント。

戻り値

このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。

例外

Error - ドキュメントをコレクションに挿入しているときにエラーが発生した場合。

298.3.1.10 REMOVE_ONEファンクション

このファンクションは、指定されたキーと一致するドキュメントを削除します。

構文

REMOVE_ONE (
     key       IN VARCHAR2)
 RETURN NUMBER;

パラメータ

表298-8 REMOVE_ONEファンクションのパラメータ

パラメータ 説明

key

ドキュメントのキー。

戻り値

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

  • 1 - ドキュメントが正常に削除された場合。

  • 0 - 指定されたキーを持つドキュメントが見つからなかった場合。

例外

Error - ドキュメントをコレクションから削除しているときにエラーが発生した場合。

298.3.1.11 REPLACE_ONEファンクション

このファンクションでは、キーを使用して、既存のドキュメントを新しいコンテンツとメディア・タイプで更新します。コンテンツおよびメディア・タイプを除き、documentに設定されているいずれのコンポーネントも置換中に使用されません。それらは無視されます。

構文

REPLACE_ONE (
     key            IN VARCHAR2,
     document       IN SODA_Document_T)
 RETURN NUMBER;

パラメータ

表298-9 REPLACE_ONEのパラメータ

パラメータ 説明

key

ドキュメントのキー。

document

古いものを置換するための新しいコンテンツとメディア・タイプを含むドキュメント。

戻り値

このファクションは数値を返します。ドキュメントが置換された場合は1、それ以外の場合は0です。

例外

Error - コレクション内のドキュメントを置換しているときにエラーが発生した場合。

298.3.1.12 REPLACE_ONE_AND_GETファンクション

このファンクションでは、キーを使用して、既存のドキュメントを新しいコンテンツとメディア・タイプで更新します。コンテンツおよびメディア・タイプを除き、documentに設定されているいずれのコンポーネントも置換中に使用されません。それらは無視されます。

構文

REPLACE_ONE_AND_GET (
     key            IN VARCHAR2,
     document       IN SODA_Document_T)
 RETURN SODA_Document_T;

パラメータ

表298-10 REPLACE_ONE_AND_GETファンクションのパラメータ

パラメータ 説明

key

ドキュメントのキー。

document

古いものを置換するための新しいコンテンツとメディア・タイプを含むドキュメント。

戻り値

このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。指定されたコレクションでサポートされている場合、最終変更およびバージョン・コンポーネントが新しい値で更新されます。指定されたキーを持つドキュメントがコレクション内になかった場合は、結果ドキュメントのかわりにNULLが戻されます。

例外

Error - コレクション内のドキュメントを置換しているときにエラーが発生した場合。

298.3.2 SODA_Document_Tタイプ

このSODAタイプは、コンテンツを含むドキュメント(通常はJSON形式)を表します。

このタイプは、永続化可能なpl/sqlタイプではありません。ただし、SODAは、基本的に永続性を提供するシステムであり、読取りおよび書込み操作があります。そのため、ドキュメント・コンテンツおよびその他のコンポーネントをデータベースに書き込むには、SODA_DOCUMENT_Tを直接永続化せずに、SODA_COLLECTION_Tで定義されている書込み操作(insertreplaceなど)にこれを渡します。

ドキュメントには、次のコンポーネントがあります。

  • key

  • コンテンツ

  • 作成日のタイムスタンプ

  • 最終変更のタイムスタンプ

  • バージョン

  • メディア・タイプ

表298-11 SODA_Document_Tタイプのサブプログラム

サブプログラム 説明

GET_BLOBファンクション

BLOBベースのドキュメントのBLOBコンテンツをフェッチします。

GET_CLOBファンクション

CLOBベースのドキュメントのCLOBコンテンツをフェッチします。

GET_CREATED_ONファンクション

作成日のタイムスタンプをVARCHAR2でフェッチします。

GET_DATA_TYPEファンクション

ドキュメント・コンテンツの作成に使用されたSQLデータ・タイプをフェッチします。

GET_KEYファンクション

ドキュメント・キーをVARCHAR2でフェッチします。

GET_LAST_MODIFIEDファンクション

最終変更のタイムスタンプをVARCHAR2でフェッチします。

GET_MEDIA_TYPEファンクション

ドキュメント・コンテンツのメディア・タイプをVARCHAR2でフェッチします。

GET_VARCHAR2ファンクション

VARCHAR2ベースのドキュメントのVARCHAR2コンテンツをフェッチします。

GET_VERSIONファンクション

ドキュメントのバージョンをVARCHAR2でフェッチします。

SODA_Document_Tファンクション

3つの異なるSODA_DOCUMENT_Tコンストラクタ・ファンクションがあります。各コンストラクタ・ファンクションは、キー、コンテンツおよびメディア・タイプを使用して、ドキュメント・オブジェクトをインスタンス化します。

298.3.2.1 GET_BLOBファンクション

このファンクションは、ドキュメントのBLOBコンテンツをフェッチします。ドキュメントがBLOBコンテンツで構成されているか、BLOBコンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。

構文

GET_BLOB () 
 RETURN BLOB;

戻り値

このファンクションは、ドキュメントのBLOBコンテンツを戻します。

例外

SODA Error: ドキュメントが最初にBLOBコンテンツで作成されていなかった場合。

298.3.2.2 GET_CLOBファンクション

このファンクションは、ドキュメントのCLOBコンテンツをフェッチします。ドキュメントがCLOBコンテンツで構成されているか、CLOBコンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。

構文

GET_CLOB () 
 RETURN CLOB;

戻り値

このファンクションは、ドキュメントのCLOBコンテンツを戻します。

例外

SODA Error: ドキュメントが最初にCLOBコンテンツで作成されていなかった場合。

298.3.2.3 GET_CREATED_ONファンクション

このファンクションは、作成日のタイムスタンプをフェッチします。タイムスタンプ文字列は、ISO-8601形式、具体的にはYYYY-MM-DDThh:mm:ss.ssssssZという形式です。末尾のZが示すように、タイムスタンプはUTCで戻されます(Zは、ゼロのUTCオフセットを示します)。

構文

GET_CREATED_ON () 
 RETURN VARCHAR2;

戻り値

このファンクションは、作成日のタイムスタンプを戻します。

298.3.2.4 GET_DATA_TYPEファンクション

このファンクションは、ドキュメント・コンテンツの作成に使用されたSQLデータ・タイプをフェッチします。

構文

GET_DATA_TYPE () 
 RETURN PLS_INTEGER;

戻り値

表298-12 GET_DATA_TYPEの戻り値

定数 説明

DOC_VARCHAR2 CONSTANT PLS_INTEGER

1

VARCHAR2

DOC_BLOB CONSTANT PLS_INTEGER

2

BLOB

DOC_CLOB CONSTANT PLS_INTEGER

3

CLOB

298.3.2.5 GET_KEYファンクション

このファンクションは、ドキュメント・キーをフェッチします。

構文

GET_KEY () 
 RETURN VARCHAR2;

戻り値

このファンクションは、ドキュメント・キーを戻します。

298.3.2.6 GET_LAST_MODIFIEDファンクション

このファンクションは、最終変更のタイムスタンプをフェッチします。タイムスタンプ文字列は、ISO-8601形式、具体的にはYYYY-MM-DDThh:mm:ss.ssssssZという形式です。末尾のZが示すように、タイムスタンプはUTCで戻されます(Zは、ゼロのUTCオフセットを示します)。

構文

GET_LAST_MODIFIED () 
 RETURN VARCHAR2;

戻り値

このファンクションは、最終変更のタイムスタンプを戻します。

298.3.2.7 GET_MEDIA_TYPEファンクション

このファンクションは、ドキュメント・コンテンツのメディア・タイプをフェッチします。

構文

GET_MEDIA_TYPE () 
 RETURN VARCHAR2;

戻り値

このファンクションは、ドキュメント・コンテンツのメディア・タイプを戻します。application/JSONJSONドキュメントのメディア・タイプです(デフォルト)。

298.3.2.8 GET_VARCHAR2ファンクション

このファンクションは、ドキュメントのVARCHAR2コンテンツをフェッチします。ドキュメントがVARCHAR2コンテンツで構成されているか、VARCHAR2コンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。

構文

GET_VARCHAR2 () 
 RETURN VARCHAR2;

戻り値

このファンクションは、ドキュメントのVARCHAR2コンテンツを戻します。

例外

SODA Error: ドキュメントが最初にVARCHAR2コンテンツで作成されていなかった場合。

298.3.2.9 GET_VERSIONファンクション

このファンクションは、ドキュメントのバージョンをフェッチします。

構文

GET_VERSION () 
 RETURN VARCHAR2;

戻り値

このファンクションは、ドキュメントのバージョンを戻します。

298.3.2.10 SODA_Document_Tファンクション

このファンクションは、キー、コンテンツおよびメディア・タイプを使用して、ドキュメント・オブジェクトをインスタンス化します。3つの異なるSODA_DOCUMENT_Tコンストラクタ・ファンクションがあります。2番目のパラメータ(<v|b|c>_Content)が各コンストラクタで異なります。最初のバリアントではVARCHAR2、2番目ではBLOB、3番目ではCLOBです。

構文

キーおよびメディア・タイプは、オプションのパラメータです(デフォルトはNULLです)。3つのパラメータすべてをNULLに設定できます。media_TypeNULLに設定されている場合、デフォルトでapplication/jsonに設定されます。

SODA_DOCUMENT_T (
     key           IN VARCHAR2 DEFAULT NULL,
     v_Content     IN VARCHAR2,
     media_Type    IN VARCHAR2 DEFAULT NULL) 
 RETURN SODA_Document_T;

SODA_DOCUMENT_T (
     key           IN VARCHAR2 DEFAULT NULL,
     b_Content     IN BLOB,
     media_Type    IN VARCHAR2 DEFAULT NULL) 
 RETURN SODA_Document_T;

SODA_DOCUMENT_T (
     key           IN VARCHAR2 DEFAULT NULL,
     c_Content     IN CLOB,
     media_Type    IN VARCHAR2 DEFAULT NULL) 
 RETURN SODA_Document_T;

パラメータ

表298-13 SODA_Document_Tのパラメータ

パラメータ 説明

key

ドキュメントのキー。

v_Content

VARCHAR2形式のドキュメントのコンテンツ。

b_Content

BLOB形式のドキュメントのコンテンツ。

c_Content

CLOB形式のドキュメントのコンテンツ。

media_Type

ドキュメントのメディア・タイプ。

JSONドキュメントの場合、メディア・タイプはapplication/jsonに設定できます。

ノート:

v_Contentb_Contentおよびc_Contentがすべて、1つのSODA_DOCUMENT_Tコンストラクタ・ファクションのパラメータであるわけではありません。構文の項に示されているように、それぞれがコンストラクタ・ファンクションの特定のバリアントに対応します。

戻り値

このファクションは、SODA_Document_Tタイプのドキュメントを戻します。

298.3.3 SODA_Operation_Tタイプ

このSODAタイプは、SODAコレクションに対するフィルタリングやページ区切りによるドキュメントの検索、削除と置換など読取り/書込み操作の実行に使用します。

表298-14 SODA_Operation_Tタイプのサブプログラム

サブプログラム 説明

COUNTファンクション

コレクション内で基準に一致するドキュメントの数を返します。このcount()とskip(...)またはlimit(...)が連鎖されていた場合は、例外が発生します。

FILTERファンクション

操作に対するフィルタ(例による問合せ(QBE)とも呼ばれます)の基準を設定します。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

GET_CURSORファンクション

基準に一致するドキュメントの反復処理に使用できるSODA_CURSOR_Tオブジェクトを返します。

GET_ONEファンクション

基準に一致する1つのSODA_DOCUMENT_Tオブジェクトを返します。複数のドキュメントが基準と一致する場合は、最初のドキュメントのみが返されます。

KEYファンクション

指定したキーのドキュメントを返すように指定します。このファンクションとKEYS(...)に対する以前のコールが同じチェーンに現れるときには、それらのコールが無視されます。

同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

KEYSファンクション

このファンクションに指定したキーと一致するドキュメントを返すように指定します。このファンクションとKEY(...)に対する以前のコールが同じチェーンに現れるときには、それらのコールが無視されます。

同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

LIMITファンクション

操作によって返されるドキュメントの数の制限を設定します。この設定は、GET_CURSORなどの読取り操作にのみ使用できます。書込み操作については、このメソッドを使用して設定した値は無視されます。

同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

REMOVEファンクション

コレクション内で基準に一致するすべてのドキュメントを削除します。削除されたドキュメントの数を返します。

REPLACE_ONEファンクション

コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換されたかどうかを示す数値を返します。

現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクションKEY(...)をコールする必要があります。コンテンツとメディア・タイプを除き、入力ドキュメントで設定されたいずれのコンポーネントも置換中には使用されません。それらは無視されます。

REPLACE_ONE_AND_GETファンクション

コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換された場合は結果ドキュメントを返します。それ以外の場合はNULLを返します。

現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクションKEY(...)をコールする必要があります。

このファンクションは、REPLACE_ONEと類似しています。唯一の違いは、REPLACE_ONE_AND_GETは、結果ドキュメントとともに更新されたコンポーネント(バージョンや最終変更のタイムスタンプなど)も返すことです。結果ドキュメントにはコンテンツ・コンポーネントが含まれません。

コンテンツとメディア・タイプを除き、入力ドキュメントで設定されたいずれのコンポーネントも置換中には使用されません。それらは無視されます。

SKIPファンクション

操作基準に一致するドキュメントのうち、操作結果からスキップするドキュメントの数を設定します。この設定は、GET_CURSORなどの読取り操作にのみ使用できます。書込み操作については、このメソッドを使用して設定した値は無視されます。

同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

VERSIONファンクション

指定したバージョンのドキュメントのみを返すように指定します。通常は、KEY(...)とともに連鎖させて、REMOVEREPLACEなどの書込み操作のためのオプティミスティック・ロックを実施します。

同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

298.3.3.1 COUNTファンクション

このファンクションは、コレクション内で基準に一致するドキュメントの数を返します。このcount()とskip(...)またはlimit(...)が連鎖されていた場合は、例外が発生します。

構文

COUNT ()
 RETURN NUMBER;

戻り値

このファンクションは、操作に指定した基準に一致するドキュメントの数を返します。

例外

Error: カウントの調査中にエラーが発生した場合。

298.3.3.2 FILTERファンクション

操作に対するフィルタ(例による問合せ(QBE)とも呼ばれます)の基準を設定します。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を付加できます。

構文

FILTER (
     qbe         IN VARCHAR2)
 RETURN SODA_Operation_T;

パラメータ

表298-15 FILTERファンクションのパラメータ

パラメータ 説明

qbe

例による問合せを表す文字列。

戻り値

このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します。

298.3.3.3 GET_CURSORファンクション

基準に一致するドキュメントの反復処理に使用できるSODA_CURSOR_Tオブジェクトを返します。

構文

(オプション) ここに構文の情報を入力します。

GET_CURSOR ()
 RETURN SODA_Cursor_T;

戻り値

このファンクションは、読取り操作基準と一致するドキュメントの反復処理に使用できるSODA_CURSOR_Tオブジェクトを返します。

例外

SODA Error: カーソルのフェッチ中にエラーが発生した場合。

298.3.3.4 GET_ONEファンクション

基準に一致する1つのSODA_DOCUMENT_Tオブジェクトを返します。複数のドキュメントが基準と一致する場合は、最初のドキュメントのみが返されます。

構文

GET_ONE ()
 RETURN SODA_Document_T;

戻り値

最初に一致するドキュメント。

例外

Error: ドキュメントのフェッチ中にエラーが発生した場合。

298.3.3.5 KEYファンクション

指定したキーのドキュメントを返すように指定します。このファンクションとKEYS(...)に対する以前のコールが同じチェーンに現れるときには、それらのコールが無視されます。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

構文

KEY (
     key         IN VARCHAR2)
 RETURN SODA_Operation_T;

パラメータ

表298-16 KEYファンクションのパラメータ

パラメータ 説明

key

操作に使用されるキー。

戻り値

このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します。

298.3.3.6 KEYSファンクション

このファンクションに指定したキーと一致するドキュメントを返すように指定します。このファンクションとkey(...)に対する以前のコールが同じチェーンに現れるときには、それらのコールが無視されます。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

構文

KEYS (
     key_List  IN SODA_Key_List_T)
 RETURN SODA_Operation_T;

パラメータ

表298-17 KEYSファンクションのパラメータ

パラメータ 説明

key_List

このパラメータは、キーを表すVARCHAR2のリストであるSODA_Key_List_Tです。

key_listがタイプSODA_Key_List_Tの変数の場合は、次のように初期化できます。

key_list := SODA_Key_List_T('key1', 'key2', 'key3', etc);

戻り値

このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します。

298.3.3.7 LIMITファンクション

このファンクションでは、操作によって返されるドキュメントの数の制限を設定します。この設定は、GET_CURSORなどの読取り操作にのみ使用できます。書込み操作については、このメソッドを使用して設定した値は無視されます。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

構文

LIMIT (
     limit         IN NUMBER)
 RETURN SODA_Operation_T;

パラメータ

表298-18 LIMITファンクションのパラメータ

パラメータ 説明

limit

読取り操作によって返される結果の数の制限。

戻り値

このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します。

298.3.3.8 REMOVEファンクション

このファンクションでは、コレクション内で基準に一致するすべてのドキュメントを削除します。削除されたドキュメントの数を返します。

構文

REMOVE ()
 RETURN NUMBER;

戻り値

このファンクションは、操作で削除された一致ドキュメントの数を返します。

例外

Error: ドキュメントの削除中にエラーが発生した場合。

298.3.3.9 REPLACE_ONEファンクション

このファンクションでは、コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換されたかどうかを示す数値を返します。現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクションKEY(...)をコールする必要があります。コンテンツとメディア・タイプを除き、入力ドキュメントで設定されたいずれのコンポーネントも置換中には使用されません。それらは無視されます。

構文

REPLACE_ONE (
      document IN SODA_Document_T)
 RETURN NUMBER;

パラメータ

表298-19 REPLACE_ONEファンクションのパラメータ

パラメータ 説明

document

置換に使用する新しいコンテンツとメディア・タイプが含まれているドキュメント・オブジェクト。

戻り値

このファクションは数値を返します。ドキュメントが置換された場合は1、それ以外の場合は0です。

例外

Error: コレクションの更新中にエラーが発生した場合。

298.3.3.10 REPLACE_ONE_AND_GETファンクション

コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換された場合は結果ドキュメントを返します。それ以外の場合はNULLを返します。現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクションKEY(...)をコールする必要があります。このファンクションは、REPLACE_ONEと類似しています。唯一の違いは、REPLACE_ONE_AND_GETは、結果ドキュメントとともに更新されたコンポーネント(バージョンや最終変更のタイムスタンプなど)も返すことです。結果ドキュメントにはコンテンツ・コンポーネントが含まれません。コンテンツとメディア・タイプを除き、入力ドキュメントで設定されたいずれのコンポーネントも置換中には使用されません。それらは無視されます。

構文

REPLACE_ONE_AND_GET (
     document         IN SODA_Document_T)
 RETURN SODA_Document_T;

パラメータ

表298-20 REPLACE_ONE_AND_GETファンクションのパラメータ

パラメータ 説明

document

置換に使用する新しいコンテンツとメディア・タイプが含まれているドキュメント・オブジェクト。

戻り値

このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。指定されたコレクションでサポートされている場合、最終変更およびバージョン・コンポーネントが新しい値で更新されます。指定されたキーを持つドキュメントがコレクション内になかった場合は、結果ドキュメントのかわりにNULLが戻されます。

例外

Error: コレクションの更新中にエラーが発生した場合

298.3.3.11 SKIPファンクション

このファンクションでは、操作基準に一致するドキュメントのうち、操作結果からスキップするドキュメントの数を設定します。この設定は、GET_CURSORなどの読取り操作にのみ使用できます。書込み操作については、このメソッドを使用して設定した値は無視されます。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

構文

SKIP (
     offset         IN NUMBER)
 RETURN SODA_Operation_T;

パラメータ

表298-21 SKIPファンクションのパラメータ

パラメータ 説明

offset

スキップするドキュメントの数。

戻り値

このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します

298.3.3.12 VERSIONファンクション

このファンクションでは、指定したバージョンのドキュメントのみを返すように指定します。通常は、KEY(...)とともに連鎖させて、REMOVEREPLACEなどの書込み操作のためのオプティミスティック・ロックを実施します。同じSODA_OPERATION_Tオブジェクトが返されるため、必要に応じてさらに基準を連結できます。

構文

VERSION (
     version         IN VARCHAR2)
 RETURN SODA_Operation_T;

パラメータ

表298-22 VERSIONファンクションのパラメータ

パラメータ 説明

version

操作に使用するドキュメントのバージョン。

戻り値

このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します

298.3.4 SODA_Cursor_Tタイプ

このSODAタイプは、ドキュメントの結果セットを表すために使用します。

表298-23 SODA_Cursor_Tタイプのサブプログラム

サブプログラム 説明

CLOSEファンクション

カーソルをクローズします。

HAS_NEXTファンクション

次のドキュメントがカーソルに使用できる場合は、TRUEを返します。それ以外の場合は、FALSEを返します。

NEXTファンクション

カーソルが指している次のSODAドキュメントを返します。

298.3.4.1 CLOSEファンクション

このファンクションでは、カーソルをクローズします。

構文

CLOSE ()
 RETURN BOOLEAN;

例298-3 戻り値

このファンクションは、ブール値を返します。

298.3.4.2 HAS_NEXTファンクション

このファンクションは、次のドキュメントがカーソルに使用できる場合はTRUEを返します。それ以外の場合は、FALSEを返します。

構文

HAS_NEXT ()
 RETURN BOOLEAN;

戻り値

このファンクションは、ブール値を返します。次のドキュメントがカーソルに使用できる場合は、TRUE。それ以外の場合は、FALSEを返します。

例外

Error: 次のドキュメントが使用できるかどうかのチェック中にエラーが発生した場合。

298.3.4.3 NEXTファンクション

このファンクションは、カーソルが指している次のSODAドキュメントを返します。

構文

NEXT ()
 RETURN SODA_Document_T;

戻り値

このファンクションは、カーソルが指している次のSODAドキュメントを返します。HAS_NEXTファンクションFALSEを返すときには、NULLを返します。

例外

Error: 次のドキュメントの取得中にエラーが発生した場合。