プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# GetCustomObject(OracleUdtFetchOption, int)

このメソッドは、指定したフェッチ・オプションおよび深さレベルを使用して、カスタム・タイプとして指定した`REF`が参照するオブジェクトを戻します。

宣言

    // C#
    public object GetCustomObject(OracleUdtFetchOption fetchOption, int depthLevel);

パラメータ

- `fetchOption`

  `OracleUdtFetchOption`値。

- `depthLevel`

  ネストされた`REF`属性にフェッチされるレベルの数。

戻り値

指定した`REF`が参照するオブジェクトを表すカスタム・オブジェクト。

例外

`InvalidOperationException` - 指定した接続がオープンされていないか、有効なカスタム・タイプが参照オブジェクトのタイプに登録されていません。

備考

このメソッドは、指定した接続でのUDTマッピングにより定義されたカスタム・タイプを戻します。

`REF`が参照するオブジェクトに、ネストされた`REF`属性が含まれる場合、`depthLevel`を指定して後続のオブジェクトの取得を最適化できます。`depthLevel`の値によって最適化されるレベルの数が定義されます。

たとえば、`depthLevel`を2に指定する場合、最適化は、フェッチされるオブジェクト内のすべてのネストされた最上位レベルの`REF`属性に適用され、また、すべてのネストされた最上位レベルの`REF`属性が参照するオブジェクト内のすべてのネストされたREF属性にも適用されます。

接続は、アプリケーションによって明示的にオープンされる必要があります。このメソッドでは、接続を暗黙的にオープンしません。

アプリケーションでは`OracleUdtFetchOption`メソッドを使用して、指定したオプションに従って戻されるオブジェクトのコピーを制御できます。

- `OracleUdtFetchOption`オプション

  このオプションが指定され、オブジェクト・キャッシュに参照オブジェクトのコピーがある場合、コピーがただちに戻されます。キャッシュのコピーが存在しない場合、データベース内の参照オブジェクトの最新のコピーが、オブジェクト・キャッシュでキャッシュされ、戻されます。

- `OracleUdtFetchOption.Server`オプション

  このオプションが指定されると、データベースから参照したオブジェクトの最新のコピーは、オブジェクト・キャッシュでキャッシュされ、戻されます。キャッシュに参照オブジェクトのコピーがすでに存在する場合、最新のコピーは既存のコピーを上書きします。

- `OracleUdtFetchOption.TransactionCache`オプション

  このオプションが指定され、参照したオブジェクトのコピーが現行のトランザクションでキャッシュされると、コピーが戻されます。それ以外の場合は、データベースからの参照オブジェクトの最新のコピーは、オブジェクト・キャッシュでキャッシュされ、戻されます。キャッシュに参照オブジェクトのコピーがすでに存在する場合、最新のコピーは既存のコピーを上書きします。

  参照オブジェクトのキャッシュ済コピーが現行のトランザクションが開始される前に変更された場合、つまり、`OracleRef.HasChanges`プロパティが`true`を戻す場合、`Recent`オプションによって参照オブジェクトのキャッシュ済コピーが戻されることに注意してください。トランザクションの外では、`Recent`オプションは`Any`オプションと同様の動作をします。

関連項目:

- "Oracle.DataAccess.TypesおよびOracle.ManagedDataAccess.Typesのネームスペース"

- OracleRefクラス

- OracleRefメンバー

- OracleUdtFetchOptionの列挙