7 SODAコレクション・メタデータ・コンポーネント(参考)

コレクション・メタデータは複数のコンポーネントから構成されます。コンポーネントの詳細な定義を示します。

注意:

コレクション・メタデータ・コンポーネント(スキーマ名、表名、ビュー名、データベースの順序名および列名)に使用する識別子は有効なOracleの引用符付き識別子にする必要があります。脚注1Oracleの引用符付き識別子に許可されている一部の文字および単語はお薦めしません。詳細は、『Oracle Database SQL言語リファレンス』を参照してください

7.1 スキーマ

コレクションがマップされる表またはビューを所有するOracle Databaseスキーマの名前を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

なし

指定できる値

Oracleの有効な引用符付き識別子脚注1。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

schemaName

関連項目:

Oracleの有効な引用符付き識別子の詳細は、『Oracle Database SQL言語リファレンス』を参照してください

7.2 表またはビュー

コレクションがマップされる表またはビューの名前を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

なし

指定できる値

Oracleの有効な引用符付き識別子脚注1。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

tableNameまたはviewName

関連項目:

Oracleの有効な引用符付き識別子の詳細は、『Oracle Database SQL言語リファレンス』を参照してください

7.3 キー列名

ドキュメント・キーを格納する列の名前を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

ID

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

keyColumn.name

7.4 キー列の型

ドキュメント・キーを格納する列のSQLデータ型を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

VARCHAR2

指定できる値

VARCHAR2

NUMBER

RAW(16)

JSONコレクション・メタデータのドキュメント・パス

keyColumn.sqlType

注意:

クライアント割当てキーが使用され、キー列タイプがVARCHAR2の場合、データベース・キャラクタ・セットにはAL32UTF8が推奨されます。これにより、キーからデータベース・キャラクタ・セットへの変換がロスレスになります。

それ以外の場合、クライアント割当てキーにデータベース・キャラクタ・セットでサポートされない文字が含まれる場合、読取りまたは書込み操作時に、データベース・キャラクタ・セットへのキーの変換は失われます。これにより、挿入操作中に重複キー・エラーが発生することがあります。もっと一般的に言うと、予測できない結果が生じることがあります。たとえば、読取り操作で、予定したキーとは異なるキーに関連付けられている値が返されることがあります。

7.5 キー列の最大長

キー列の最大長をバイト単位で指定するコレクション・メタデータ・コンポーネントです。このコンポーネントはVARCHAR2型のキーのみに適用されます。

プロパティ

デフォルト値

255

指定できる値

キーの割当てメソッドがUUIDまたはGUIDの場合、32バイト以上。「キー列の割当てメソッド」を参照してください。

JSONコレクション・メタデータのドキュメント・パス

keyColumn.maxLength

関連トピック

7.6 キー列の割当てメソッド

コレクションに挿入するオブジェクトにキーを割り当てる際に使用されるメソッドを指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

UUID

指定できる値

UUID

GUID

SEQUENCE

CLIENT

これらのメソッドの詳細は、表7-1を参照してください。

JSONコレクション・メタデータのドキュメント・パス

keyColumn.assignmentMethod

表7-1 キーの割当て方法

メソッド 説明

GUID

キーはSQLファンクションSYS_GUIDによってOracle Databaseに生成されます。Oracle Database SQL言語リファレンスを参照してください。

SEQUENCE

キーはデータベース順序によってOracle Databaseに生成されます。キーの割当てメソッドをSEQUENCEとして指定する場合、その順序名も指定する必要があります。キー列の順序名を参照してください。

CLIENT

キーはクライアント・アプリケーションによって割り当てられます。

UUID (デフォルト)

キーは、SODAによって、UUIDに基づいて生成されています。

7.7 キー列の順序名

キーの割当てメソッドがSEQUENCEの場合にコレクションに挿入するドキュメントのキーを生成するデータベース順序の名前を指定するコレクション・メタデータ・コンポーネントです。

キーの割当てメソッドをSEQUENCEとして指定する場合、その順序名も指定する必要があります。指定した順序が存在しない場合は、SODAによって作成されます。

プロパティ

デフォルト値

なし

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

keyColumn.sequenceName

注意:

SODAを使用してコレクションをドロップしても、キーの生成に使用する順序はドロップされません。これは、SODAを使用して作成されていないためです。順序をドロップするには、最初にコレクションをドロップしてから、SQLコマンドDROP SEQUENCEを使用します。

関連項目:

7.8 コンテンツ列名

データベース・コンテンツを格納する列の名前を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

JSON_DOCUMENT

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

contentColumn.name

7.9 コンテンツ列の型

ドキュメント・コンテンツを格納する列のSQLデータ型を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

BLOB

指定できる値

VARCHAR2

BLOB

CLOB

JSONコレクション・メタデータのドキュメント・パス

contentColumn.sqlType

7.10 コンテンツ列の最大長

コンテンツ列の最大長をバイト単位で指定するコレクション・メタデータ・コンポーネントです。このコンポーネントはVARCHAR2型のコンテンツのみに適用されます。

プロパティ

デフォルト値

4000

指定できる値

拡張データ型が有効になっている場合、32767。それ以外の場合で列型がVARCHAR2の場合、4000。

JSONコレクション・メタデータのドキュメント・パス

contentColumn.maxLength

関連トピック

関連項目:

拡張データ型の詳細は、『Oracle Database SQL言語リファレンス』を参照してください

7.11 コンテンツ列のJSON検証

JavaScript Object Notation (JSON)コンテンツが従う必要がある構文(厳密構文または緩慢構文)を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

STANDARD

指定できる値

STANDARD

STRICT

LAX (SQL条件is jsonのデフォルト)

JSONコレクション・メタデータのドキュメント・パス

contentColumn.validation

  • STANDARDは、JSON RFC 4627標準に従って検証します。(Oracle SQL条件is jsonに定義された厳密な構文に対応します。)

  • STRICTSTANDARDと同じですが、ドキュメントに重複したJSONフィールド名が含まれていないことも確認する点のみ異なります。(SQLキーワードWITH UNIQUE KEYSも使用する場合、Oracle SQL条件is jsonに定義された厳密な構文に対応します。)

  • LAXは、より緩慢に検証します。(Oracle SQL条件is jsonに定義された緩慢な構文に対応します。)LAXで許可される緩和の一部として、次のものがあります。

    • JSONフィールド名を二重引用符(")で囲む必要はありません。

    • truefalseおよびnullの、大文字、小文字および混在バージョンが許可されます。

    • 数字はその他の方法で表すことができます。

関連項目:

7.12 コンテンツ列のSecureFiles LOB圧縮

SecureFiles LOB圧縮設定を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

NONE

指定できる値

NONE

HIGH

MEDIUM

LOW

JSONコレクション・メタデータのドキュメント・パス

contentColumn.compress

関連項目:

SecureFiles LOB記憶域の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照

7.13 コンテンツ列のSecureFiles LOBのキャッシュ

SecureFiles LOBのキャッシュ設定を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

TRUE

指定できる値

TRUE

FALSE

JSONコレクション・メタデータのドキュメント・パス

contentColumn.cache

関連項目:

SecureFiles LOB記憶域の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照

7.14 コンテンツ列のSecureFiles LOBの暗号化

SecureFiles LOBの暗号化設定を指定するコレクション・メタデータ・コンポーネントです。

SecureFiles LOB暗号化を使用するコレクションを作成する前に、暗号化ウォレットを設定する必要があります。

プロパティ

デフォルト値

NONE

指定できる値

NONE

3DES168

AES128

AES192

AES256

JSONコレクション・メタデータのドキュメント・パス

contentColumn.encrypt

関連項目:

7.15 バージョン列名

ドキュメント・バージョンを格納する列の名前を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

VERSION

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

versionColumn.name

7.16 バージョン列の生成メソッド

コレクションに挿入するか、置き換わるときにオブジェクトのバージョン値の計算に使用されるメソッドを指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

SHA256

指定できる値

UUID

TIMESTAMP

MD5

SHA256

SEQUENTIAL

NONE

JSONコレクション・メタデータのドキュメント・パス

versionColumn.method

表7-2に、バージョン生成メソッドを示します。

表7-2 バージョン生成メソッド

メソッド 説明

UUID

ドキュメントが挿入されたときおよび置換操作ごとに、SODAではオブジェクト・コンテンツを無視して、Universally Unique Identifier (UUID)が生成されます。効率的ですが、元のドキュメントと置換後のドキュメントが同じであってもバージョンが変更されます。

バージョン列型の値は、VARCHAR2(255)です。

TIMESTAMP

SODAではオブジェクト・コンテンツを無視して、タイムスタンプから値を生成し、これをLONGに変換します。このメソッドでは、タイムスタンプを取得するためにデータベース・インスタンスへのラウンド・トリップが必要になる可能性があります。UUIDと同様に、元のドキュメントと置換後のドキュメントが同じであってもバージョンが変更されます。

バージョン列型の値は、NUMBERです。

MD5

SODAでは、MD5アルゴリズムを使用してドキュメント・コンテンツのハッシュ値を計算します。このメソッドはUUIDよりも効率的ではありませんが、ドキュメント・コンテンツが変更された場合にのみバージョンが変更されます。

バージョン列型の値は、VARCHAR2(255)です。

SHA256 (デフォルト)

SODAでは、SHA256アルゴリズムを使用してドキュメント・コンテンツのハッシュ値を計算します。このメソッドはUUIDよりも効率的ではありませんが、ドキュメント・コンテンツが変更された場合にのみバージョンが変更されます。

バージョン列型の値は、VARCHAR2(255)です。

SEQUENTIAL

SODAにより、オブジェクトのコンテンツを無視して、オブジェクトが挿入されたときにバージョン1が割り当てられ、オブジェクトが置換されるたびにバージョン値が増分されます。バージョン値はユーザーにわかりやすい値ですが、元のドキュメントと置換後のドキュメントが同じであってもバージョンが変更されます。

バージョン列型の値は、NUMBERです。

NONE

バージョン列が存在する場合、NONEはバージョンがSODAの外部で生成されたことを意味します(たとえば、データベース・トリガーなど)。

7.17 最終変更のタイムスタンプの列名

ドキュメントの最終変更のタイムスタンプを格納する列の名前を指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

LAST_MODIFIED

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

lastModifiedColumn.name

7.18 最終変更の列索引名

最終変更の列索引の名前を指定するコレクション・メタデータ・コンポーネントです。

このコンポーネントの値は、最終変更のタイムスタンプ列の一意でない索引の名前です。名前が指定されている場合、インデックスが作成されます。この索引は、最終変更のタイムスタンプによって決定された読取りおよび書込み操作のパフォーマンスを向上させることができます。

SODA for RESTのみに、このような操作(タイムスタンプ・パラメータsinceおよびuntilを伴う操作GETコレクション)が用意されています。他の実装では、最終変更のタイムスタンプによって決定される読取り操作または書込み操作を提供しないため、このコンポーネントは使用しません。SODA for RESTの場合であっても、索引の作成と保守にコストがかかるため、アプリケーションでタイムスタンプで決定される読込み操作や書込み操作を使用しないことが確実な場合は、このコンポーネントを設定しないほうが一般的です

プロパティ

デフォルト値

なし

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

lastModifiedColumn.index

関連項目:

Oracle REST Data Services RESTのためのSODA開発者ガイド

7.19 作成時のタイムスタンプの列名

ドキュメントの作成時のタイムスタンプを格納する列の名前を指定するコレクション・メタデータ・コンポーネントです。このタイムスタンプは、insertinsertAndGetsaveまたはsaveAndGet操作時に生成されます。

プロパティ

デフォルト値

CREATED_ON

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

creationTimeColumn.name

7.20 メディア・タイプ列名

ドキュメントのメディア・タイプを格納する列の名前を指定するコレクション・メタデータ・コンポーネントです。異種コレクションの場合、つまり、コレクションがJavaScript Object Notation (JSON)以外のドキュメントを格納できる場合、メディア・タイプ列が必要です。

注意:

異種コレクションで例による問合せ(QBE)は使用できません。試みると、エラーが発生します。

プロパティ

デフォルト値

なし

指定できる値

Oracleの有効な引用符付き識別子脚注1(『Oracle Database SQL言語リファレンス』を参照)。この値に二重引用符記号(")または制御文字が含まれている場合、SODAではそれをアンダースコア文字(_)に置き換えます。

JSONコレクション・メタデータのドキュメント・パス

mediaTypeColumn.name

7.21 読取り専用

コレクションが読取り専用かどうかを指定するコレクション・メタデータ・コンポーネントです。

プロパティ

デフォルト値

FALSE

指定できる値

TRUE

FALSE

JSONコレクション・メタデータのドキュメント・パス

readOnly



脚注凡例

脚注1:

リマインダ: 大文字/小文字を区別して解釈されるため、大文字/小文字は引用符で囲まれたSQL識別子では重要です。