304 SODAタイプ
SODA
タイプには、SODA_DOCUMENT_T
、SODA_COLLECTION_T
、SODA_OPERATION_T
およびSODA_CURSOR_T
という複数のタイプがあります。SODA_DOCUMENT_T
とSODA_COLLECTION_T
は、SODA
が提供する2つの主要な抽象化(ドキュメントとコレクション)を表します。SODA_OPERATION_T
は、コレクションに対する操作の条件を指定するために使用します。SODA_CURSOR_T
は、コレクションに対する読取り操作の結果によるカーソルです。
この章のトピックは、次のとおりです:
304.1 SODAタイプの概要
SODA
タイプには、SODA_DOCUMENT_T
、SODA_COLLECTION_T
、SODA_OPERATION_T
およびSODA_CURSOR_T
という複数のタイプがあります。SODA_DOCUMENT_T
とSODA_COLLECTION_T
は、SODA
が提供する2つの主要な抽象化(ドキュメントとコレクション)を表します。SODA_OPERATION_T
は、コレクションに対する操作の条件を指定するために使用します。SODA_CURSOR_T
は、コレクションに対する読取り操作の結果によるカーソルです。
304.2 SODAタイプのセキュリティ・モデル
SODAタイプは、SODA_APP
ロールを持つユーザーが使用できます。
SODAタイプはすべてSYS
タイプです。PUBLIC
には、この章で説明するSODAタイプのEXECUTE
権限が付与されます。
-
タイプ
SODA_Collection_T
-
タイプ
SODA_Document_T
-
タイプ
SODA_Operation_T
-
タイプ
SODA_Cursor_T
304.3 SODAタイプの要約
この章では、SODAタイプをリストし、それらについて説明します。
表304-1 SODAタイプ
タイプ | 説明 |
---|---|
この |
|
この |
|
この |
|
この |
304.3.1 SODA_Collection_Tタイプ
このSODA
タイプは、SODA
コレクションを表します。SODA
コレクションの参照は、DBMS_SODA.CREATE_COLLECTION()
またはDBMS_SODA.OPEN_COLLECTION()
をコールすることによってのみ取得できます。
表304-2 SODA_Collection_Tタイプのサブプログラム
サブプログラム | 説明 |
---|---|
JSONで表現される索引指定を使用して索引を作成します。 サポートされている指定のタイプは3つあります。それぞれで、異なるタイプの索引(Bツリー索引、データ・ガイドによるJSON検索索引、空間索引)を指定します。 |
|
データ・ガイドでの指定に従い、スカラー |
|
名前付き索引を削除します。 |
|
|
|
キーと一致するドキュメントをフェッチします。 |
|
CLOBとしてJSONデータ・ガイドを返します。 |
|
GET_INDEXファンクション |
このファンクションは、コレクション上に作成された、提供された索引について指定内容を戻します。 |
コレクションのメタデータを |
|
コレクションの名前を戻します。 |
|
ドキュメントをコレクションに挿入します。 |
|
ドキュメントをコレクションに挿入し、コンテンツを除くすべてのコンポーネントを含む結果ドキュメントを戻します。 |
|
LIST_INDEXESファンクション |
このファンクションは、コレクション上に作成されたすべての索引について指定内容を戻します。 |
キーと一致するドキュメントを削除します。 |
|
キーと一致するドキュメントのコンテンツおよび(オプションで)メディア・タイプを置換します。 |
|
キーと一致するドキュメントのコンテンツおよび(オプションで)メディア・タイプを置換し、すべてのコンポーネント(コンテンツを除く)を含む結果ドキュメントを戻します。 |
|
ドキュメントをコレクションに保存します。 |
|
ドキュメントをコレクションに保存します。 |
|
コレクション内のドキュメントをすべて削除します。 |
304.3.1.1 CREATE_INDEXファンクション
このファンクションでは、JSONで表現される索引指定を使用して索引を作成します。サポートされている指定のタイプは3つあります。それぞれで、異なるタイプの索引(Bツリー索引、データ・ガイドによるJSON検索索引、空間索引)を指定します。
構文
CREATE_INDEX ( specification VARCHAR2) RETURN NUMBER;
パラメータ
表304-3 CREATE_INDEXファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
索引の指定内容。 |
例304-1 戻り値
-
1
—索引が正常に作成された場合。 -
0
—索引が作成されなかった場合。
例外
Error
—索引の作成中にエラーが発生した場合。
参照:
SODA
索引の指定内容の詳細は、次を参照してください。
304.3.1.2 CREATE_VIEW_FROM_DGファンクション
このファンクションは、データ・ガイドでの指定に従い、スカラーJSON
フィールドを使用してリレーショナル列を含むビューを作成します。このファンクションには、データ・ガイドが有効なJSON
検索索引は必要ありません。データ・ガイドはファンクションに渡されます。ファンクションに渡されたデータ・ガイドが無効である場合は、エラーがスローされます。
構文
このプロシージャは、Autonomous Database 19cリリース以降でのみ使用可能です。
CREATE_VIEW_FROM_DG ( data_guide IN CLOB, view_name IN VARCHAR2, materialize IN BOOLEAN DEFAULT FALSE, mv_refresh_mode IN NUMBER DEFAULT 1, path IN VARCHAR2 DEFAULT '$', resolve_name_conflicts IN BOOLEAN DEFAULT FALSE, col_name_prefix IN VARCHAR2 DEFAULT NULL, mixed_case_columns IN BOOLEAN DEFAULT FALSE) RETURN NUMBER;
パラメータ
表304-4 CREATE_VIEW_FROM_DGファンクションのパラメータ
パラメータ | 説明 |
---|---|
data_guide |
コレクションのデータ・ガイド。 |
view_name |
作成するビューの名前。 |
materialize |
ビューがマテリアライズドである必要があるかどうかを示すブール値。 デフォルト値は |
mv_refresh_mode |
マテリアライズド・ビューのリフレッシュ・モード。使用可能な値は次のとおりです。
|
path |
展開するJSONフィールドのパス。 JSONパス式の構文が使用されます。たとえば:
デフォルト値は |
resolve_name_conflicts |
デフォルトでは、 デフォルト値は |
col_name_prefix |
デフォルトでは、ビュー列名はJSONフィールド名と同じです。このパラメータを使用すると、ビュー列名に付加する接頭辞を指定できます。 デフォルト値は |
mixed_case_columns |
デフォルトでは、ビュー列名は大/小文字を区別します。このパラメータを使用すると、この動作を大/小文字の区別なしに変更できます。デフォルト値は |
戻り値
-
1
- プロシージャが正常に完了した場合 -
0
- プロシージャが正常に完了できなかった場合
例外
Error
- このファンクションでビューを作成できずエラーが発生した場合。
参照:
JSONデータ・ガイドの詳細は、「JSONデータ・ガイド」を参照してください。
304.3.1.3 DROP_INDEXファンクション
このファンクションでは、名前付き索引を削除します。
構文
DROP_INDEX ( index_Name IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE) RETURN NUMBER;
例304-2 パラメータ
表304-5 DROP_INDEXファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
索引の名前。 |
|
forceパラメータは、 詳細は、DROP INDEXを参照してください。 |
戻り値
-
1
—索引が正常に削除された場合。 -
0
—索引が削除されなかった場合。たとえば、指定された名前の既存の索引が存在していなかった場合などです。
例外
Error
—索引の削除中にエラーが発生した場合。
304.3.1.4 FINDファンクション
このファンクションでは、コレクションの操作タイプを返します。操作タイプを使用すると、各種の読取り/書込み操作を作成および実行できます。コンストラクタがないため、これ以外にSODA_Operation_T
の参照を取得する方法はありません。
構文
FIND () RETURN SODA_Operation_T;
戻り値
このファンクションは、SODA_OPERATION_T
オブジェクトを戻します。
例外
このファンクションは、例外をスローしません。
304.3.1.5 FIND_ONEファンクション
このファンクションは、指定されたキーと一致するドキュメントをフェッチします。
構文
FIND_ONE ( key IN VARCHAR2) RETURN SODA_Document_T;
パラメータ
表304-6 FIND_ONEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
フェッチするドキュメントのキー。 |
戻り値
このファンクションは、キーと一致するドキュメントを戻します。一致するものが見つからない場合は、NULL
を戻します。
例外
Error
- ドキュメントの検索中にエラーが発生した場合。
304.3.1.6 GET_DATA_GUIDEファンクション
このファンクションでは、CLOBとしてJSONデータ・ガイドをフェッチします。JSONデータ・ガイドは、本質的にはコレクション内のJSONドキュメントに対して推測されるスキーマです。JSONデータ・ガイドを返すには、コレクションにJSON検索索引が定義されていて、データ・ガイドが有効にされている必要があります。
構文
GET_DATA_GUIDE () RETURN CLOB;
例外
Error
—データ・ガイドのフェッチ中にエラーが発生した場合。
304.3.1.7 GET_INDEXファンクション
このファンクションは、コレクション上に作成された、提供された索引について指定内容を戻します。
構文
GET_INDEX ( index_name IN VARCHAR2, schema_name IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
パラメータ
表304-7 GET_INDEXファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
説明する索引の名前。 |
|
索引が含まれているスキーマの名前。このパラメータは省略可能です。このパラメータを設定しなかった場合、このメソッドでは、このメソッドのコール元のスキーマ内で、指定された索引が検索されます。 |
戻り値
このファンクションは、JSON
形式で索引の指定内容を戻します。
例外
Error
—索引の指定内容を戻すときにエラーが発生した場合。
304.3.1.8 GET_METADATAファンクション
このファンクションは、コレクションのメタデータをJSON
形式で戻します。
構文
GET_METADATA () RETURN VARCHAR2;
戻り値
このファンクションは、コレクションのメタデータをJSON
形式で戻します。
304.3.1.9 GET_NAMEファンクション
このファンクションは、コレクションの名前を戻します。
構文
GET_NAME () RETURN NVARCHAR2;
戻り値
このファンクションは、コレクションの名前を戻します。
304.3.1.10 INSERT_ONEファンクション
このファンクションは、ドキュメントをコレクションに挿入します。
構文
INSERT_ONE ( document IN SODA_Document_T) RETURN NUMBER;
パラメータ
表304-8 INSERT_ONEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
入力ドキュメント。 |
戻り値
このファクションは数値を戻します。ドキュメントが正常に挿入された場合は 1
、それ以外の場合は0
です。
例外
Error
- ドキュメントをコレクションに挿入しているときにエラーが発生した場合。
304.3.1.11 INSERT_ONE_AND_GETファンクション
このファンクションは、ドキュメントをコレクションに挿入します。
構文
INSERT_ONE_AND_GET ( document IN SODA_Document_T, hint IN VARCHAR2 DEFAULT NULL) RETURN SODA_Document_T;
パラメータ
表304-9 INSERT_ONE_AND_GETファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
入力ドキュメント。 |
hint |
Oracle SQL形式のヒント文字列(囲んでいる |
戻り値
このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。
例外
Error
- ドキュメントをコレクションに挿入しているときにエラーが発生した場合。
304.3.1.12 LIST_INDEXESファンクション
このファンクションは、コレクション上に作成されたすべての索引について指定内容を戻します。
構文
LIST_INDEXES ( ) RETURN SODA_Index_List_T;
戻り値
このファンクションは、索引の指定内容をJSON
形式でSODA_Index_List_T
のインスタンスとして戻します。
例外
Error
—索引の指定内容を戻すときにエラーが発生した場合。
304.3.1.13 REMOVE_ONEファンクション
このファンクションは、指定されたキーと一致するドキュメントを削除します。
構文
REMOVE_ONE ( key IN VARCHAR2) RETURN NUMBER;
パラメータ
表304-10 REMOVE_ONEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ドキュメントのキー。 |
戻り値
この関数は、次の値を返します。
-
1
- ドキュメントが正常に削除された場合。 -
0
- 指定されたキーを持つドキュメントが見つからなかった場合。
例外
Error
- ドキュメントをコレクションから削除しているときにエラーが発生した場合。
304.3.1.14 REPLACE_ONEファンクション
このファンクションでは、キーを使用して、既存のドキュメントを新しいコンテンツとメディア・タイプで更新します。コンテンツおよびメディア・タイプを除き、document
に設定されているいずれのコンポーネントも置換中に使用されません。それらは無視されます。
構文
REPLACE_ONE ( key IN VARCHAR2, document IN SODA_Document_T) RETURN NUMBER;
パラメータ
表304-11 REPLACE_ONEのパラメータ
パラメータ | 説明 |
---|---|
|
ドキュメントのキー。 |
|
古いものを置換するための新しいコンテンツとメディア・タイプを含むドキュメント。 |
戻り値
このファクションは数値を返します。ドキュメントが置換された場合は1
、それ以外の場合は0
です。
例外
Error
- コレクション内のドキュメントを置換しているときにエラーが発生した場合。
304.3.1.15 REPLACE_ONE_AND_GETファンクション
このファンクションでは、キーを使用して、既存のドキュメントを新しいコンテンツとメディア・タイプで更新します。コンテンツおよびメディア・タイプを除き、document
に設定されているいずれのコンポーネントも置換中に使用されません。それらは無視されます。
構文
REPLACE_ONE_AND_GET ( key IN VARCHAR2, document IN SODA_Document_T) RETURN SODA_Document_T;
パラメータ
表304-12 REPLACE_ONE_AND_GETファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ドキュメントのキー。 |
|
古いものを置換するための新しいコンテンツとメディア・タイプを含むドキュメント。 |
戻り値
このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。指定されたコレクションでサポートされている場合、最終変更およびバージョン・コンポーネントが新しい値で更新されます。指定されたキーを持つドキュメントがコレクション内になかった場合は、結果ドキュメントのかわりにNULL
が戻されます。
例外
Error
- コレクション内のドキュメントを置換しているときにエラーが発生した場合。
304.3.1.16 SAVEファンクション
このファンクションは、ドキュメントをコレクションに保存します。このファンクションは、INSERT_ONE(document)
ファンクションと同等ですが、クライアント割当てキーが使用され、指定されたキーを持つドキュメントがコレクションにすでに存在する場合、入力ドキュメントで置き換えられる点を除きます。このコレクションがクライアント割当てキーで構成され、キーが入力ドキュメントに指定されている場合を除き、キーは自動的に作成されます。
構文
SAVE ( document IN SODA_Document_T) RETURN NUMBER;
パラメータ
表304-13 SAVEのパラメータ
パラメータ | 説明 |
---|---|
|
入力ドキュメント。nullを指定することはできません。 |
戻り値
このファンクションは、正常に完了した場合は番号1
を戻し、それ以外の場合は0
を戻します。
例外
Error
- ドキュメントの保存中にエラーが発生した場合。
304.3.1.17 SAVE_AND_GETファンクション
このファンクションは、ドキュメントをコレクションに保存します。このメソッドは、INSERT_ONE_AND_GET(document)
と同等ですが、クライアント割当てキーが使用され、指定したキーを持つドキュメントがコレクションにすでに存在する場合、入力ドキュメントで置き換えられる点を除きます。このコレクションがクライアント割当てキーで構成され、キーが入力ドキュメントに指定されていないかぎり、キーは自動的に作成されます。
構文
SAVE_AND_GET ( document IN SODA_Document_T, hint IN VARCHAR2 DEFAULT NULL) RETURN SODA_Document_T;
パラメータ
表304-14 SAVE_AND_GETファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
入力ドキュメント。nullを指定することはできません。 |
|
Oracle SQL形式のヒント文字列(囲んでいる |
戻り値
このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。
例外
Error
- ドキュメントの保存中または取得中にエラーが発生した場合。
304.3.2 SODA_Document_Tタイプ
このSODA
タイプは、コンテンツを含むドキュメント(通常はJSON
形式)を表します。
このタイプは、永続化可能なpl/sql
タイプではありません。ただし、SODA
は、基本的に永続性を提供するシステムであり、読取りおよび書込み操作があります。そのため、ドキュメント・コンテンツおよびその他のコンポーネントをデータベースに書き込むには、SODA_DOCUMENT_T
を直接永続化せずに、SODA_COLLECTION_T
で定義されている書込み操作(insert
やreplace
など)にこれを渡します。
ドキュメントには、次のコンポーネントがあります。
-
key
-
コンテンツ
-
作成日のタイムスタンプ
-
最終変更のタイムスタンプ
-
バージョン
-
メディア・タイプ
表304-15 SODA_Document_Tタイプのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
作成日のタイムスタンプを |
|
ドキュメント・コンテンツの作成に使用されたSQLデータ・タイプをフェッチします。 |
|
|
|
ドキュメント・キーを |
|
最終変更のタイムスタンプを |
|
ドキュメント・コンテンツのメディア・タイプを |
|
|
|
ドキュメントのバージョンを |
|
3つの異なる |
304.3.2.1 GET_BLOBファンクション
このファンクションは、ドキュメントのBLOB
コンテンツをフェッチします。ドキュメントがBLOB
コンテンツで構成されているか、BLOB
コンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。
構文
GET_BLOB () RETURN BLOB;
戻り値
このファンクションは、ドキュメントのBLOB
コンテンツを戻します。
例外
SODA Error:
ドキュメントが最初にBLOB
コンテンツで作成されていなかった場合。
304.3.2.2 GET_CLOBファンクション
このファンクションは、ドキュメントのCLOB
コンテンツをフェッチします。ドキュメントがCLOB
コンテンツで構成されているか、CLOB
コンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。
構文
GET_CLOB () RETURN CLOB;
戻り値
このファンクションは、ドキュメントのCLOB
コンテンツを戻します。
例外
SODA Error:
ドキュメントが最初にCLOB
コンテンツで作成されていなかった場合。
304.3.2.3 GET_CREATED_ONファンクション
このファンクションは、作成日のタイムスタンプをフェッチします。タイムスタンプ文字列は、ISO-8601
形式、具体的にはYYYY-MM-DDThh:mm:ss.ssssssZ
という形式です。末尾のZ
が示すように、タイムスタンプはUTCで戻されます(Z
は、ゼロのUTCオフセットを示します)。
構文
GET_CREATED_ON () RETURN VARCHAR2;
戻り値
このファンクションは、作成日のタイムスタンプを戻します。
304.3.2.4 GET_DATA_TYPEファンクション
このファンクションは、ドキュメント・コンテンツの作成に使用されたSQLデータ・タイプをフェッチします。
構文
GET_DATA_TYPE () RETURN PLS_INTEGER;
戻り値
表304-16 GET_DATA_TYPEの戻り値
定数 | 値 | 説明 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
304.3.2.5 GET_JSONファンクション
このファンクションは、ドキュメントのJSON
コンテンツをフェッチします。ドキュメントがJSON
タイプのコンテンツで構成されているか、JSON
タイプのコンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。
構文
GET_JSON () RETURN JSON;
戻り値
このファンクションは、ドキュメントのJSON
コンテンツを戻します。
例外
SODA Error:
ドキュメントが最初にJSON
コンテンツで作成されていなかった場合。
304.3.2.6 GET_KEYファンクション
このファンクションは、ドキュメント・キーをフェッチします。
構文
GET_KEY () RETURN VARCHAR2;
戻り値
このファンクションは、ドキュメント・キーを戻します。
304.3.2.7 GET_LAST_MODIFIEDファンクション
このファンクションは、最終変更のタイムスタンプをフェッチします。タイムスタンプ文字列は、ISO-8601
形式、具体的にはYYYY-MM-DDThh:mm:ss.ssssssZ
という形式です。末尾のZ
が示すように、タイムスタンプはUTCで戻されます(Z
は、ゼロのUTCオフセットを示します)。
構文
GET_LAST_MODIFIED () RETURN VARCHAR2;
戻り値
このファンクションは、最終変更のタイムスタンプを戻します。
304.3.2.8 GET_MEDIA_TYPEファンクション
このファンクションは、ドキュメント・コンテンツのメディア・タイプをフェッチします。
構文
GET_MEDIA_TYPE () RETURN VARCHAR2;
戻り値
このファンクションは、ドキュメント・コンテンツのメディア・タイプを戻します。application
/JSON
がJSON
ドキュメントのメディア・タイプです(デフォルト)。
304.3.2.9 GET_VARCHAR2ファンクション
このファンクションは、ドキュメントのVARCHAR2
コンテンツをフェッチします。ドキュメントがVARCHAR2
コンテンツで構成されているか、VARCHAR2
コンテンツを含むコレクションから戻されたことを前提とします。それ以外の場合はエラーが戻されます。
構文
GET_VARCHAR2 () RETURN VARCHAR2;
戻り値
このファンクションは、ドキュメントのVARCHAR2
コンテンツを戻します。
例外
SODA Error:
ドキュメントが最初にVARCHAR2
コンテンツで作成されていなかった場合。
304.3.2.10 GET_VERSIONファンクション
このファンクションは、ドキュメントのバージョンをフェッチします。
構文
GET_VERSION () RETURN VARCHAR2;
戻り値
このファンクションは、ドキュメントのバージョンを戻します。
304.3.2.11 SODA_Document_Tファンクション
このファンクションは、キー、コンテンツおよびメディア・タイプを使用して、ドキュメント・オブジェクトをインスタンス化します。3つの異なるSODA_DOCUMENT_T
コンストラクタ・ファンクションがあります。2番目のパラメータ(<v|b|c>_Content
)が各コンストラクタで異なります。最初のバリアントではVARCHAR2
、2番目ではBLOB
、3番目ではCLOB
です。
構文
キーおよびメディア・タイプは、オプションのパラメータです(デフォルトはNULL
です)。3つのパラメータすべてをNULL
に設定できます。media_Type
がNULL
に設定されている場合、デフォルトでapplication/json
に設定されます。
key
およびj_Content
をコンストラクタとともに使用し、キーとコンテンツを使用してドキュメント・オブジェクトをインスタンス化します。メディア・タイプ・パラメータは、データがJSON
タイプであるため、このコンストラクタには存在しません。したがって、メディア・タイプは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; SODA_DOCUMENT_T ( key IN VARCHAR2 DEFAULT NULL, j_Content IN JSON) RETURN SODA_Document_T;
パラメータ
表304-17 SODA_Document_Tのパラメータ
パラメータ | 説明 |
---|---|
|
ドキュメントのキー。 |
|
|
|
|
|
|
|
|
|
ドキュメントのメディア・タイプ。
|
ノート:
v_Content
、b_Content
およびc_Content
がすべて、1つのSODA_DOCUMENT_T
コンストラクタ・ファクションのパラメータであるわけではありません。構文
の項に示されているように、それぞれがコンストラクタ・ファンクションの特定のバリアントに対応します。
戻り値
このファクションは、SODA_Document_T
タイプのドキュメントを戻します。
304.3.3 SODA_OPERATION_Tタイプ
このSODA
タイプは、SODA
コレクションに対するフィルタリングやページ区切りによるドキュメントの検索、削除と置換など読取り/書込み操作の実行に使用します。
表304-18 SODA_OPERATION_Tタイプのサブプログラム
サブプログラム | 説明 |
---|---|
ACQUIRE_LOCKファンクション |
このファンクションでは、 |
AS_OF_SCNファンクション |
このファンクションは、操作のSCN値を設定します。 |
AS_OF_TIMESTAMPファンクション |
このファンクションは、操作のタイムスタンプ値を設定します。 |
コレクション内で基準に一致するドキュメントの数を返します。このcount()とskip(...)またはlimit(...)が連鎖されていた場合は、例外が発生します。 |
|
操作に対するフィルタ(例による問合せ(QBE)とも呼ばれます)の基準を設定します。同じ |
|
基準に一致するドキュメントの反復処理に使用できる |
|
GET_DATA_GUIDEファンクション |
このファンクションは、データ・ガイドを取得します。 |
基準に一致する1つの |
|
HINTファンクション |
このファンクションは、操作のヒント属性を設定します。 |
指定したキーのドキュメントを返すように指定します。このファンクションと 同じ |
|
このファンクションに指定したキーと一致するドキュメントを返すように指定します。このファンクションと 同じ |
|
操作によって返されるドキュメントの数の制限を設定します。この設定は、 同じ |
|
コレクション内で基準に一致するすべてのドキュメントを削除します。削除されたドキュメントの数を返します。 |
|
コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換されたかどうかを示す数値を返します。 現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクション |
|
コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換された場合は結果ドキュメントを返します。それ以外の場合は 現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクション このファンクションは、 コンテンツとメディア・タイプを除き、入力ドキュメントで設定されたいずれのコンポーネントも置換中には使用されません。それらは無視されます。 |
|
操作に使用するサンプリング・パラメータを設定します。 |
|
操作基準に一致するドキュメントのうち、操作結果からスキップするドキュメントの数を設定します。この設定は、 同じ |
|
指定したバージョンのドキュメントのみを返すように指定します。通常は、 同じ |
304.3.3.1 ACQUIRE_LOCKファンクション
このファンクションでは、読取り操作の影響を受けるドキュメントが更新のためにロックされます(これはSQLのselect for update
'と同等です)。LOCK()
を含む操作の後に、コレクション内のドキュメントを更新する別の操作が続きます。たとえば、REPLACE
またはREMOVE
ファンクションによるものです。ロックにより、その間は他のトランザクションがドキュメントを変更できなくなります。
このACQUIRE_LOCK()
ファンクションを含む操作の後に実行されるコミットまたはロールバックにより、ドキュメントのロックが解除されます。つまり、このドキュメントのロックを保持しているトランザクションがコミットまたはロールバックされます。
このファンクションは、COUNT()
ファンクションおよびGET_DATA_GUIDE()
ファンクション以外のread
操作とのみ使用してください。
SKIP
およびLIMIT
ファンクションと組み合せて指定することもできません(エラーがスローされます)。
REPLACE
やREMOVE
などのwrite
操作とともに指定した場合、それは無視されるため影響はありません。
構文
ACQUIRE_LOCK ( ) RETURN SODA_Operation_T;
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.2 AS_OF_SCNファンクション
このファンクションは、操作のSCN値を設定します。
構文
AS_OF_SCN ( scn IN NUMBER) RETURN SODA_Operation_T;
パラメータ
表304-19 AS_OF_SCNファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
SCNの入力値。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.3 AS_OF_TIMESTAMPファンクション
このファンクションは、操作のタイムスタンプ値を設定します。
構文
AS_OF_TIMESTAMP ( timestamp IN VARCHAR2) RETURN SODA_Operation_T;
パラメータ
表304-20 AS_OF_TIMESTAMPファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
入力タイムスタンプ。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.4 COUNTファンクション
このファンクションは、コレクション内で基準に一致するドキュメントの数を返します。このcount()とskip(...)またはlimit(...)が連鎖されていた場合は、例外が発生します。
構文
COUNT () RETURN NUMBER;
戻り値
このファンクションは、操作に指定した基準に一致するドキュメントの数を返します。
例外
Error
—カウントの調査中にエラーが発生した場合。
304.3.3.5 FILTERファンクション
操作に対するフィルタ(例による問合せ(QBE)とも呼ばれます)の基準を設定します。同じSODA_OPERATION_T
オブジェクトが返されるため、必要に応じてさらに基準を付加できます。
構文
FILTER ( qbe IN VARCHAR2) RETURN SODA_Operation_T;
パラメータ
表304-21 FILTERファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
例による問合せを表す文字列。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_Tオブジェクトを返します。
304.3.3.6 GET_CURSORファンクション
基準に一致するドキュメントの反復処理に使用できるSODA_CURSOR_T
オブジェクトを返します。
構文
(オプション) ここに構文の情報を入力します。
GET_CURSOR () RETURN SODA_Cursor_T;
戻り値
このファンクションは、読取り操作基準と一致するドキュメントの反復処理に使用できるSODA_CURSOR_T
オブジェクトを返します。
例外
SODA Error:
カーソルのフェッチ中にエラーが発生した場合。
304.3.3.7 GET_DATA_GUIDEファンクション
このファンクションは、データ・ガイドを取得します。
構文
GET_DATA_GUIDE ( format IN PLS_INTEGER DEFAULT 1, flag IN PLS_INTEGER DEFAULT 0) RETURN CLOB;
パラメータ
表304-22 GET_DATA_GUIDEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
データ・ガイドのフォーマット。このパラメータには、次のいずれかの値を指定できます。
デフォルト値は |
|
このパラメータには、次のいずれかの値を指定できます。
デフォルト値は |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.8 GET_ONEファンクション
基準に一致する1つのSODA_DOCUMENT_T
オブジェクトを返します。複数のドキュメントが基準と一致する場合は、最初のドキュメントのみが返されます。
構文
GET_ONE () RETURN SODA_Document_T;
戻り値
最初に一致するドキュメント。
例外
Error
—ドキュメントのフェッチ中にエラーが発生した場合。
304.3.3.9 HINTファンクション
このファンクションは、操作のヒント属性を設定します。
構文
HINT ( hint IN VARCHAR2) RETURN SODA_Operation_T;
パラメータ
表304-23 HINTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle SQL形式のヒント文字列(囲んでいる |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.10 KEYファンクション
指定したキーのドキュメントを返すように指定します。このファンクションとKEYS
(...)に対する以前のコールが同じチェーンに現れるときには、それらのコールが無視されます。同じSODA_OPERATION_T
オブジェクトが返されるため、必要に応じてさらに基準を連結できます。
構文
KEY ( key IN VARCHAR2) RETURN SODA_Operation_T;
パラメータ
表304-24 KEYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
操作に使用されるキー。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.11 KEYSファンクション
このファンクションに指定したキーと一致するドキュメントを返すように指定します。このファンクションとkey
(...)に対する以前のコールが同じチェーンに現れるときには、それらのコールが無視されます。同じSODA_OPERATION_T
オブジェクトが返されるため、必要に応じてさらに基準を連結できます。
構文
KEYS ( key_List IN SODA_Key_List_T) RETURN SODA_Operation_T;
パラメータ
表304-25 KEYSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
このパラメータは、キーを表す
|
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.12 LIMITファンクション
このファンクションでは、操作によって返されるドキュメントの数の制限を設定します。この設定は、GET_CURSOR
などの読取り操作にのみ使用できます。書込み操作については、このメソッドを使用して設定した値は無視されます。同じSODA_OPERATION_T
オブジェクトが返されるため、必要に応じてさらに基準を連結できます。
構文
LIMIT ( limit IN NUMBER) RETURN SODA_Operation_T;
パラメータ
表304-26 LIMITファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
読取り操作によって返される結果の数の制限。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します。
304.3.3.13 REMOVEファンクション
このファンクションでは、コレクション内で基準に一致するすべてのドキュメントを削除します。削除されたドキュメントの数を返します。
構文
REMOVE () RETURN NUMBER;
戻り値
このファンクションは、操作で削除された一致ドキュメントの数を返します。
例外
Error
—ドキュメントの削除中にエラーが発生した場合。
304.3.3.14 REPLACE_ONEファンクション
このファンクションでは、コレクション内の1つのドキュメントを指定されたドキュメントに置き換えます。ドキュメントが置換されたかどうかを示す数値を返します。現時点では、このファンクションをコールする前に、置換対象のドキュメントを一意に識別するために、ファンクションKEY
(...)をコールする必要があります。コンテンツとメディア・タイプを除き、入力ドキュメントで設定されたいずれのコンポーネントも置換中には使用されません。それらは無視されます。
構文
REPLACE_ONE ( document IN SODA_Document_T) RETURN NUMBER;
パラメータ
表304-27 REPLACE_ONEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
置換に使用する新しいコンテンツとメディア・タイプが含まれているドキュメント・オブジェクト。 |
戻り値
このファクションは数値を返します。ドキュメントが置換された場合は1
、それ以外の場合は0
です。
例外
Error
—コレクションの更新中にエラーが発生した場合。
304.3.3.15 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;
パラメータ
表304-28 REPLACE_ONE_AND_GETファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
置換に使用する新しいコンテンツとメディア・タイプが含まれているドキュメント・オブジェクト。 |
戻り値
このファクションは、コンテンツを除き、指定されたコレクションでサポートされているすべてのドキュメント・コンポーネントを含む結果ドキュメントを戻します。指定されたコレクションでサポートされている場合、最終変更およびバージョン・コンポーネントが新しい値で更新されます。指定されたキーを持つドキュメントがコレクション内になかった場合は、結果ドキュメントのかわりにNULL
が戻されます。
例外
Error
—コレクションの更新中にエラーが発生した場合
304.3.3.16 SAMPLEファンクション
このファンクションは、操作に使用するサンプリング・パラメータを設定します。
構文
SAMPLE ( pct IN DOUBLE, seed IN NUMBER DEFAULT NULL, method IN PLS_INTEFER DEFAULT DBMS_SODA.SAMPLE_ROW) RETURN SODA_Operation_T;
パラメータ
表304-29 SAMPLEファンクションのパラメータ
パラメータ | 説明 |
---|---|
pct |
サンプルに含める文書またはブロック数の合計の割合。この値は この割合は、各行(ブロック・サンプリングの場合は行の各クラスタ)が、サンプルの一部として選択される可能性を示します。これは、データベースによってコレクション内のドキュメントの割合が正確に取得されるということではありません。 |
seed |
この属性を指定すると、実行ごとに同じサンプルを戻すことを試みるようにデータベースに指示できます。 seed値は、 |
method |
使用するサンプリング方法のタイプ。有効な値は、次のとおりです。
|
戻り値
このファンクションは、SELF
操作オブジェクトを戻します。
304.3.3.17 SKIPファンクション
このファンクションでは、操作基準に一致するドキュメントのうち、操作結果からスキップするドキュメントの数を設定します。この設定は、GET_CURSOR
などの読取り操作にのみ使用できます。書込み操作については、このメソッドを使用して設定した値は無視されます。同じSODA_OPERATION_T
オブジェクトが返されるため、必要に応じてさらに基準を連結できます。
構文
SKIP ( offset IN NUMBER) RETURN SODA_Operation_T;
パラメータ
表304-30 SKIPファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
スキップするドキュメントの数。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します
304.3.3.18 VERSIONファンクション
このファンクションでは、指定したバージョンのドキュメントのみを返すように指定します。通常は、KEY
(...)とともに連鎖させて、REMOVE
やREPLACE
などの書込み操作のためのオプティミスティック・ロックを実施します。同じSODA_OPERATION_T
オブジェクトが返されるため、必要に応じてさらに基準を連結できます。
構文
VERSION ( version IN VARCHAR2) RETURN SODA_Operation_T;
パラメータ
表304-31 VERSIONファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
操作に使用するドキュメントのバージョン。 |
戻り値
このファンクションは、起動時と同じSODA_OPERATION_T
オブジェクトを返します
304.3.4 SODA_CURSOR_Tタイプ
このSODA
タイプは、ドキュメントの結果セットを表すために使用します。
表304-32 SODA_CURSOR_Tタイプのサブプログラム
サブプログラム | 説明 |
---|---|
カーソルをクローズします。 |
|
次のドキュメントがカーソルに使用できる場合は、 |
|
カーソルが指している次のSODAドキュメントを返します。 |
304.3.4.1 CLOSEファンクション
このファンクションでは、カーソルをクローズします。
構文
CLOSE () RETURN BOOLEAN;
例304-3 戻り値
このファンクションは、ブール値を返します。