Oracle® Data Provider for .NET

開発者ガイド

11gリリース2 (11.2.0.4)

B66456-02(原本部品番号:E23174-03)

2013年7月

Oracle Data Provider for .NET開発者ガイド, 11gリリース2(11.2.0.4)

B66456-02

Copyright © 2002, 2013, Oracle and/or its affiliates.All rights reserved.

原本著者: Maitreyee Chaliha、Sumit Jeloka、Janis Greenberg

原本協力者: Alex Keh、Kiminari Akiyama、Sinclair Hsu、Shailendra Jain、Riaz Ahmed、Ashish Shah、Lakshminarayanan Suriamoorthy、Steven Caminez、Naveen Doraiswamy、Neeraj Gupta、Chithra Ramamurthy、Martha Woo、Arun Singh、Sujith Somanathan、Nishant Singh

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- コード例のパスワード

- 表記規則

Oracle Data Provider for .NETの新機能

- Oracle Data Provider for .NETリリース11.2.0.3の新機能

- Oracle Data Provider for .NETリリース11.2.0.2の新機能

- Oracle Data Provider for .NETリリース11.2.0.1.2の新機能

- Oracle Data Provider for .NETリリース11.2の新機能

- Oracle Data Provider for .NETリリース11.1.0.7.20の新機能

- Oracle Data Provider for .NETリリース11.1.0.6.20の新機能

- Oracle Data Provider for .NETリリース11.1の新機能

- Oracle Data Provider for .NETリリース10.2.0.4の新機能

- Oracle Data Provider for .NETリリース10.2.0.3の新機能

- Oracle Data Provider for .NETリリース10.2.0.2の新機能

- Oracle Data Provider for .NETリリース10.2の新機能

- Oracle Data Provider for .NETリリース10.1.0.3の新機能

- Oracle Data Provider for .NETリリース10.1の新機能

- Oracle Data Provider for .NETリリース9.2.0.4の新機能

1 Oracle Data Provider for .NETの概要

- Oracleでの.NETデータ・アクセス: 製品およびドキュメント

- Oracle Data Provider for .NET(ODP.NET)

- Oracle Developer Tools for Visual Studio

- Oracle Database Extensions for .NET

- Oracle Providers for ASP.NET

- Microsoftトランザクション・サーバー用のOracleサービス

- Oracle TimesTen In-Memory Database

- Oracle Data Provider for .NET(ODP.NET)の概要

- Oracle Data Provider for .NETアセンブリ

- Oracle.DataAccess.Clientネームスペース

- Oracle.DataAccess.Client

- Oracle.DataAccess.Clientの列挙

- Oracle.DataAccess.Typesネームスペース

- Oracle.DataAccess.Typesの構造

- Oracle.DataAccess.Typesの例外

- Oracle.DataAccess.Typesのクラス

- Oracle.DataAccess.Typesのインタフェース

- Oracle.DataAccess.Typesの列挙

- 単純なアプリケーションでのODP.NETクライアント・プロバイダの使用

2 Oracle Data Provider for .NETのインストールおよび構成

- システム要件

- Oracle Data Provider for .NETバージョニング体系

- Oracle Data Provider for .NETのインストール

- インストール後のファイルの場所

- 非管理DLLの検索順序

- ODP.NETおよび依存する非管理DLLの不一致

- Oracle Data Provider for .NETの構成

- サポートされる構成設定

- Windowsレジストリ

- 構成ファイル・サポート

- 構成ファイルのサンプル

- データベース通知をリスニングするポートの構成

- 一般的な.NETプログラミング推奨およびODP.NETのヒント

3 Oracle Data Provider for .NETの機能

- Oracle Databaseへの接続

- 接続文字列属性

- データ・ソース属性の指定

- TNS別名の使用

- 接続記述子の使用

- 簡易接続ネーミング・メソッドの使用

- 接続プーリング

- 接続プーリングの使用

- 接続プールの管理

- 接続プール・パフォーマンス・カウンタ

- パフォーマンス・カウンタの公開

- app.configエントリを使用したパフォーマンス・カウンタの設定

- パフォーマンス・カウンタのインスタンス名

- エディションベースの再定義

- Oracle Real Application Clusters(Oracle RAC)データベースへの接続

- Oracle Real Application Clusters(Oracle RAC)およびData Guard Databaseでの接続

- Oracle RACおよびOracle Data Guardの接続の最適化

- Oracle RACデータベースのプール・サイズ属性

- オペレーティング・システム認証

- 特権接続

- パスワードの失効

- プロキシ認証

- 動的な分散トランザクション登録

- クライアント識別子とエンドツーエンド・トレース

- 透過的アプリケーション・フェイルオーバー(TAF)コールバックのサポート

- TAF通知

- フェイルオーバーが発生した場合

- フェイルオーバーのイベント・ハンドラの登録

- ADO.NET 2.0の機能

- ADO.NET 2.0について

- ベース・クラスおよびプロバイダ・ファクトリ・クラス

- 接続文字列ビルダー

- データ・ソース列挙子

- コード・アクセス・セキュリティのサポート

- OraclePermissionの構成

- 信頼レベルを高または中にするWebアプリケーションのOraclePermissionの構成

- 部分信頼環境で実行されるWindowsアプリケーションに対するOraclePermissionの構成

- スキーマ検出のサポート

- メタデータのユーザー・カスタマイズ

- System.TransactionsとPromotable Transaction

- TransactionScopeを使用した暗黙的なトランザクション登録

- CommittableTransactionを使用した明示的なトランザクション登録

- 旧リリースのデータベースにおけるローカル・トランザクション・サポート

- バッチ処理のサポート

- ADO.NET 2.0専用クラスおよびクラス・メンバー

- 一括コピー・サポート

- 一括コピーでサポートされているデータ型

- 単一パーティションのOracle一括コピーの制限

- Oracle一括コピーに影響する整合性制約

- データベース挿入トリガー

- フィールドのデフォルト値

- ADO.NET Entity FrameworkおよびLINQ to Entities

- EDM型へのOracleデータ型のマッピング

- EDM型のファセット

- Oracle Numberデータ型のデフォルト・マッピングおよびカスタマイズ

- カスタム・マッピングの使用時の比較エラーの解決

- カスタムINSERT、UPDATEおよびDELETEストアド・プロシージャでのブール・パラメータおよびguidパラメータのマッピング

- OracleCommandオブジェクト

- トランザクション

- パラメータ・バインド

- データ型BINARY_FLOATおよびBINARY_DOUBLE

- OracleDbTypeの列挙型

- DbType、OracleDbTypeおよび.NETタイプの判断

- PL/SQL連想配列バインド

- 配列バインド

- 文キャッシング

- 文キャッシングの接続文字列属性

- レジストリを使用した文キャッシングの有効化

- 文キャッシングのメソッドおよびプロパティ

- 接続と文キャッシング

- プーリングと文キャッシング

- 自動チューニング

- 文キャッシングの自動チューニング

- アプリケーションの自動チューニングの有効化または無効化

- 最適化のための変更のトレース

- ODP.NETタイプの概要

- OracleDataReaderオブジェクトからのデータの取得

- OracleDataReader型指定アクセッサ

- .NETタイプのアクセッサ

- ODP.NETタイプのアクセッサ

- LONGおよびLONG RAWデータの取得

- InitialLONGFetchSizeを0(ゼロ)または0(ゼロ)より大きな値に設定

- InitialLONGFetchSizeを-1に設定

- LOBデータの取得

- InitialLOBFetchSizeを0(ゼロ)に設定

- InitialLOBFetchSizeを0(ゼロ)より大きな値に設定

- InitialLOBFetchSizeを-1に設定

- InitialLOBFetchSizeプロパティに関連したパフォーマンス上の考慮事項

- 1回のデータベース・ラウンドトリップでフェッチされる行数の制御

- FetchSizeの使用

- FetchSizeの微調整

- RowSizeプロパティの使用

- PL/SQL REF CURSORおよびOracleRefCursor

- OracleRefCursorオブジェクトの取得

- REF CURSORデータ型の取得

- REF CURSORからのOracleDataReaderへの移入

- REF CURSORからのDataSetへの移入

- REF CURSORからのOracleRefCursorへの移入

- REF CURSORから取得したDataSetの更新

- REF CURSORに対するExecuteScalarメソッドの動作

- ストアド・プロシージャへのREFカーソルの引渡し

- 暗黙的なREF CURSORのバインド

- .NET構成ファイルでのREF CURSORのバインド情報およびメタデータ情報の指定

- 構成ファイルおよびアプリケーションのサンプル

- 使用上の考慮事項

- CommandTextプロパティに関する考慮事項

- バインドに関する考慮事項

- オーバーロードされたストアド・プロシージャ

- タイプの初期化時の例外

- 関数インポートでのストアド・ファンクションの使用

- LOBサポート

- ラージ・キャラクタ・データ型とラージ・バイナリ・データ型

- Oracle Data Provider for .NET LOBオブジェクト

- DataSetを使用したLOBの更新

- OracleCommandおよびOracleParameterを使用したLOBの更新

- ODP.NET LOBオブジェクトを使用したLOBの更新

- 一時LOB

- ODP.NET XMLサポート

- サポートされるXML機能

- XQueryサポート

- OracleXmlTypeおよび接続依存性

- データベースでのXMLTypeデータの更新

- DataSet、OracleDataAdapterおよびOracleCommandBuilderによる更新

- OracleCommandおよびOracleParameterによる更新

- OracleXmlTypeでのXMLデータの更新

- XMLの特殊文字

- 問合せの結果セットのXML形式での取得

- 日時書式の処理

- 列データの特殊文字

- 表名またはビュー名の特殊文字

- 列名とXML要素名のマッピングにおける大/小文字区別

- 列名とXML要素名のマッピング

- オブジェクト・リレーショナル・データ

- NULL値

- XMLを使用したデータ操作

- 日時書式の処理

- XMLを使用した変更の保存

- 列データの特殊文字

- 表名またはビュー名の特殊文字

- XML要素名と列名のマッピングにおける大/小文字区別

- XML要素名と列名のマッピング

- XML文書を使用した表への変更の保存

- オブジェクト・リレーショナル・データ

- 複数の表

- トランザクションのコミット

- Oracleユーザー定義タイプ(UDT)および.NETカスタム・タイプ

- Oracleユーザー定義タイプ(UDT)

- カスタム・タイプ

- 必須カスタム・タイプ実装

- オプションのカスタム・タイプの実装

- カスタム・タイプ・マッピングの指定

- カスタム・タイプ・ファクトリを使用したカスタム・タイプ・マッピングの指定

- 構成ファイルのXMLを使用したカスタム・タイプ・マッピングの指定

- カスタム・タイプ・マッピングの使用

- カスタム・タイプおよびOracle UDT間の変換

- Oracle UDT属性マッピング

- OracleDataReaderからのOracle UDTの検索

- OracleDataReaderからのOracle UDTメタデータの検索

- OracleParameterとのOracle UDTパラメータのバインド

- UDT入力および出力パラメータのバインドのガイドライン

- OracleParametersを指定したUDT入力パラメータのバインド

- OracleParametersを指定したUDT出力パラメータのバインド

- Oracle UDTでのDataSetの移入

- Oracle UDTメソッドの起動

- Oracle UDTの構成設定

- StatementCacheWithUdts

- UdtCacheSize

- Oracle Streamsアドバンスト・キューイングのサポート

- アドバンスト・キューイングでのODP.NETの使用

- エンキューおよびデキューの例

- Database Change Notificationサポート

- Database Change Notificationクラス

- サポートされている操作

- 通知登録の要件

- Database Change Notificationの使用

- アプリケーション側の手順

- 通知処理フロー

- ベスト・プラクティスの指針とパフォーマンス上の考慮点

- OracleDataAdapter Safeタイプ・マッピング

- Oracleデータ型と.NETタイプとの比較

- SafeMappingプロパティ

- Safeタイプ・マッピングの使用

- OracleDataAdapterのRequeryプロパティ

- データベースへのDataSetの更新における一意性の保証

- DataRowオブジェクトの一意性を構成する要素

- PrimaryKeyおよびConstraintsプロパティの構成

- PrimaryKeyおよびConstraintsが構成されていない場合の更新

- グローバリゼーション・サポート

- グローバリゼーション設定

- クライアントのグローバリゼーション設定

- セッションのグローバリゼーション設定

- スレッドベースのグローバリゼーション設定

- グローバリゼーションに依存した操作

- クライアント・コンピュータのグローバリゼーション設定に依存する操作

- スレッドのグローバリゼーション設定に依存する操作

- セッション・グローバリゼーション・パラメータに依存する操作

- デバッグ・トレース

4 Oracle Data Provider for .NETのサーバー側機能

- ODP.NETを使用した.NETストアド・プロシージャの実行の概要

- .NETストアド・プロシージャにおけるODP.NETに関する制限事項

- 暗黙的なデータベース接続

- トランザクションのサポート

- 未サポートのSQLコマンド

- Oracleユーザー定義タイプ(UDT)のサポート

- .NETストアド・プロシージャに対するクライアント・アプリケーションのポーティング

5 Oracle Data Provider for .NETクラス

- OracleCommandクラス

- OracleCommandメンバー

- OracleCommandコンストラクタ

- OracleCommand()

- OracleCommand(String)

- OracleCommand(string, OracleConnection)

- OracleCommand静的メソッド

- OracleCommandプロパティ

- AddRowid

- AddToStatementCache

- ArrayBindCount

- BindByName

- CommandText

- CommandTimeout

- CommandType

- Connection

- DesignTimeVisible

- FetchSize

- InitialLOBFetchSize

- InitialLONGFetchSize

- Notification

- NotificationAutoEnlist

- Parameters

- RowSize

- Transaction

- UpdatedRowSource

- XmlCommandType

- XmlQueryProperties

- XmlSaveProperties

- OracleCommandパブリック・メソッド

- Cancel

- Clone

- CreateParameter

- ExecuteNonQuery

- ExecuteReader

- ExecuteReader()

- ExecuteReader(CommandBehavior)

- ExecuteScalar

- ExecuteStream

- ExecuteToStream

- ExecuteXmlReader

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

- OracleCommandBuilderコンストラクタ

- OracleCommandBuilder()

- OracleCommandBuilder(OracleDataAdapter)

- OracleCommandBuilder静的メソッド

- DeriveParameters

- OracleCommandBuilderプロパティ

- CaseSensitive

- CatalogLocation

- CatalogSeparator

- ConflictOption

- DataAdapter

- QuotePrefix

- QuoteSuffix

- SchemaSeparator

- OracleCommandBuilderパブリック・メソッド

- GetDeleteCommand

- GetInsertCommand

- GetUpdateCommand

- QuoteIdentifier

- RefreshSchema

- UnquoteIdentifier

- OracleCommandBuilderイベント

- OracleConnectionクラス

- OracleConnectionメンバー

- OracleConnectionコンストラクタ

- OracleConnection()

- OracleConnection(String)

- OracleConnection静的プロパティ

- IsAvailable

- OracleConnection静的メソッド

- ClearPool

- ClearAllPools

- OracleConnectionプロパティ

- ActionName

- ClientId

- ClientInfo

- ConnectionString

- ConnectionTimeout

- ConnectionType

- Database

- DatabaseDomainName

- DatabaseName

- DataSource

- HostName

- InstanceName

- ModuleName

- ServerVersion

- ServiceName

- State

- StatementCacheSize

- OracleConnectionパブリック・メソッド

- BeginTransaction

- BeginTransaction()

- BeginTransaction(IsolationLevel)

- ChangeDatabase

- Clone

- Close

- CreateCommand

- EnlistDistributedTransaction

- EnlistTransaction

- FlushCache

- GetSchema

- GetSchema()

- GetSchema (string collectionName)

- GetSchema(string collectionName, string[] restrictions)

- GetSessionInfo

- GetSessionInfo()

- GetSessionInfo(OracleGlobalization)

- Open

- OpenWithNewPassword

- PurgeStatementCache

- SetSessionInfo

- OracleConnectionイベント

- Failover

- HAEvent

- InfoMessage

- StateChange

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- OracleDataAdapterコンストラクタ

- OracleDataAdapter()

- OracleDataAdapter(OracleCommand)

- OracleDataAdapter(string, OracleConnection)

- OracleDataAdapter(string, string)

- OracleDataAdapter静的メソッド

- OracleDataAdapterプロパティ

- DeleteCommand

- InsertCommand

- Requery

- ReturnProviderSpecificTypes

- SafeMapping

- SelectCommand

- UpdateBatchSize

- UpdateCommand

- OracleDataAdapterパブリック・メソッド

- Fill

- Fill(DataTable, OracleRefCursor)

- Fill(DataSet, OracleRefCursor)

- Fill(DataSet, string, OracleRefCursor)

- Fill(DataSet, int, int, string, OracleRefCursor)

- OracleDataAdapterイベント

- RowUpdated

- RowUpdating

- OracleDatabaseクラス

- OracleDatabaseメンバー

- OracleDatabaseコンストラクタ

- OracleDatabaseプロパティ

- ServerVersion

- OracleDatabaseパブリック・メソッド

- ExecuteNonQuery

- Shutdown

- Shutdown()

- Shutdown(OracleDBShutdownMode, bool)

- Startup

- Startup()

- Startup(OracleDBStartupMode, string, bool)

- OracleDataReaderクラス

- OracleDataReaderメンバー

- OracleDataReader静的メソッド

- OracleDataReaderプロパティ

- Depth

- FetchSize

- FieldCount

- HasRows

- HiddenFieldCount

- IsClosed

- Item

- Item [index]

- Item[string]

- InitialLOBFetchSize

- InitialLONGFetchSize

- RecordsAffected

- RowSize

- VisibleFieldCount

- OracleDataReaderパブリック・メソッド

- Close

- Dispose

- GetBoolean

- GetByte

- GetBytes

- GetChar

- GetChars

- GetDataTypeName

- GetDateTime

- GetDecimal

- GetDouble

- GetEnumerator

- GetFieldType

- GetFloat

- GetGuid

- GetInt16

- GetInt32

- GetInt64

- GetName

- GetOracleBFile

- GetOracleBinary

- GetOracleBlob

- GetOracleBlobForUpdate

- GetOracleBlobForUpdate(int)

- GetOracleBlobForUpdate(int, int)

- GetOracleClob

- GetOracleClobForUpdate

- GetOracleClobForUpdate(int)

- GetOracleClobForUpdate(int, int)

- GetOracleDate

- GetOracleDecimal

- GetOracleIntervalDS

- GetOracleIntervalYM

- GetOracleRef

- GetOracleString

- GetOracleTimeStamp

- GetOracleTimeStampLTZ

- GetOracleTimeStampTZ

- GetOracleXmlType

- GetOracleValue

- GetOracleValues

- GetOrdinal

- GetProviderSpecificFieldType

- GetProviderSpecificValue

- GetProviderSpecificValues

- GetSchemaTable

- GetString

- GetTimeSpan

- GetValue

- GetValues

- GetXmlReader

- IsDBNull

- NextResult

- Read

- OracleErrorクラス

- OracleErrorメンバー

- OracleError静的メソッド

- OracleErrorプロパティ

- ArrayBindIndex

- DataSource

- Message

- Number

- Procedure

- Source

- OracleErrorメソッド

- ToString

- OracleErrorCollectionクラス

- OracleErrorCollectionメンバー

- OracleErrorCollection静的メソッド

- OracleErrorCollectionプロパティ

- OracleErrorCollectionパブリック・メソッド

- OracleExceptionクラス

- OracleExceptionメンバー

- OracleException静的メソッド

- OracleExceptionプロパティ

- DataSource

- Errors

- Message

- Number

- Procedure

- Source

- OracleExceptionメソッド

- GetObjectData

- ToString

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

- OracleInfoMessageEventArgs静的メソッド

- OracleInfoMessageEventArgsプロパティ

- Errors

- Message

- Source

- OracleInfoMessageEventArgsパブリック・メソッド

- OracleInfoMessageEventHandlerデリゲート

- OracleParameterクラス

- OracleParameterメンバー

- OracleParameterコンストラクタ

- OracleParameter()

- OracleParameter(string, OracleDbType)

- OracleParameter(string, object)

- OracleParameter(string, OracleDbType, ParameterDirection)

- OracleParameter(string, OracleDbType, object, ParameterDirection)

- OracleParameter(string, OracleDbType, int)

- OracleParameter(string, OracleDbType, int, string)

- OracleParameter(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)

- OracleParameter(string, OracleDbType, int, object, ParameterDirection)

- OracleParameter静的メソッド

- OracleParameterプロパティ

- ArrayBindSize

- ArrayBindStatus

- CollectionType

- DbType

- Direction

- IsNullable

- Offset

- OracleDbType

- OracleDbTypeEx

- ParameterName

- Precision

- Scale

- Size

- SourceColumn

- SourceColumnNullMapping

- SourceVersion

- Status

- UdtTypeName

- Value

- OracleParameterパブリック・メソッド

- Clone

- Dispose

- ResetDbType

- ResetOracleDbType

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

- OracleParameterCollection静的メソッド

- OracleParameterCollectionプロパティ

- Count

- Item

- Item[int]

- Item[string]

- OracleParameterCollectionパブリック・メソッド

- Add

- Add(object)

- Add(OracleParameter)

- Add(string, object)

- Add(string, OracleDbType)

- Add(string, OracleDbType, ParameterDirection)

- Add(string, OracleDbType, object, ParameterDirection)

- Add(string, OracleDbType, int, object, ParameterDirection)

- Add(string, OracleDbType, int)

- Add (string, OracleDbType, int, string)

- Add(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)

- AddRange

- Clear

- Contains

- Contains(object)

- Contains(string)

- CopyTo

- IndexOf

- IndexOf(object)

- IndexOf(String)

- Insert

- Remove

- RemoveAt

- RemoveAt(int)

- RemoveAt(String)

- OraclePermissionクラス

- OraclePermissionメンバー

- OraclePermissionコンストラクタ

- OraclePermission静的メソッド

- OraclePermissionパブリック・プロパティ

- OraclePermissionパブリック・メソッド

- Add

- Copy

- IsSubsetOf

- OraclePermissionAttributeクラス

- OraclePermissionAttributeメンバー

- OraclePermissionAttributeコンストラクタ

- OraclePermissionAttribute静的メソッド

- OraclePermissionAttributeパブリック・プロパティ

- OraclePermissionAttributeパブリック・メソッド

- CreatePermission

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventArgsメンバー

- OracleRowUpdatedEventArgsコンストラクタ

- OracleRowUpdatedEventArgs静的メソッド

- OracleRowUpdatedEventArgsプロパティ

- Command

- OracleRowUpdatedEventArgsパブリック・メソッド

- OracleRowUpdatedEventHandlerデリゲート

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventArgsメンバー

- OracleRowUpdatingEventArgsコンストラクタ

- OracleRowUpdatingEventArgs静的メソッド

- OracleRowUpdatingEventArgsプロパティ

- Command

- OracleRowUpdatingEventArgsパブリック・メソッド

- OracleRowUpdatingEventHandlerデリゲート

- OracleTransactionクラス

- OracleTransactionメンバー

- OracleTransaction静的メソッド

- OracleTransactionプロパティ

- IsolationLevel

- Connection

- OracleTransactionパブリック・メソッド

- Commit

- Dispose

- Rollback

- Rollback()

- Rollback(string)

- Save

- OracleConnectionTypeの列挙

- OracleCollectionTypeの列挙

- OracleDBShutdownModeの列挙

- OracleDBStartupModeの列挙

- OracleDbTypeの列挙

- OracleParameterStatusの列挙

6 Oracle Data Provider for .NETのXML関連クラス

- OracleXmlCommandTypeの列挙

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

- OracleXmlQueryPropertiesコンストラクタ

- OracleXmlQueryPropertiesプロパティ

- MaxRows

- RootTag

- RowTag

- Xslt

- XsltParams

- OracleXmlQueryPropertiesパブリック・メソッド

- Clone

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

- OracleXmlSavePropertiesコンストラクタ

- OracleXmlSavePropertiesプロパティ

- KeyColumnsList

- RowTag

- Table

- UpdateColumnsList

- Xslt

- XsltParams

- OracleXmlSavePropertiesパブリック・メソッド

- Clone

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

- OracleXmlStreamコンストラクタ

- OracleXmlStream静的メソッド

- OracleXmlStreamインスタンス・プロパティ

- CanRead

- CanSeek

- Connection

- Length

- Position

- Value

- OracleXmlStreamインスタンス・メソッド

- Clone

- Close

- Dispose

- Read

- Read(byte[ ], int, int)

- Read(char[ ], int, int)

- Seek

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

- OracleXmlTypeコンストラクタ

- OracleXmlType(OracleClob)

- OracleXmlType(OracleConnection, string)

- OracleXmlType(OracleConnection, XmlReader)

- OracleXmlType(OracleConnection, XmlDocument)

- OracleXmlType静的メソッド

- OracleXmlTypeインスタンス・プロパティ

- Connection

- IsEmpty

- IsFragment

- IsSchemaBased

- RootElement

- Schema

- SchemaUrl

- Value

- OracleXmlTypeインスタンス・メソッド

- Clone

- Dispose

- Extract

- Extract(string, string)

- Extract(string, XmlNameSpaceManager)

- GetStream

- GetXmlDocument

- GetXmlReader

- IsExists

- IsExists(string, string)

- IsExists(string, XmlNameSpaceManager)

- Transform

- Transform(OracleXmlType, string)

- Transform(string, string)

- Update

- Update(string, string, string)

- Update(string, XmlNameSpaceManager, string)

- Update(string, string, OracleXmlType)

- Update(string, XmlNameSpaceManager, OracleXmlType)

- Validate

7 ADO.NET 2.0のクラス

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

- OracleClientFactoryパブリック・プロパティ

- CanCreateDataSourceEnumerator

- OracleClientFactoryパブリック・メソッド

- CreateCommand

- CreateCommandBuilder

- CreateConnection

- CreateConnectionStringBuilder

- CreateDataAdapter

- CreateDataSourceEnumerator

- CreateParameter

- CreatePermission

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

- OracleConnectionStringBuilderコンストラクタ

- OracleConnectionStringBuilder()

- OracleConnectionStringBuilder(string)

- OracleConnectionStringBuilderパブリック・プロパティ

- ConnectionLifetime

- ConnectionTimeout

- ContextConnection

- DataSource

- DBAPrivilege

- DecrPoolSize

- Enlist

- HAEvents

- IncrPoolSize

- IsFixedSize

- Item

- Keys

- LoadBalancing

- MaxPoolSize

- MetadataPooling

- MinPoolSize

- Password

- PersistSecurityInfo

- Pooling

- ProxyPassword

- ProxyUserId

- SelfTuning

- StatementCachePurge

- StatementCacheSize

- UserID

- ValidateConnection

- Values

- OracleConnectionStringBuilderパブリック・メソッド

- Clear

- ContainsKey

- Remove

- TryGetValue

- OracleDataSourceEnumeratorクラス

- OracleDataSourceEnumeratorメンバー

- OracleDataSourceEnumeratorパブリック・メソッド

- GetDataSources

8 Oracle Data Provider for .NETのHAイベント・クラス

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- OracleHAEventArgsプロパティ

- DatabaseDomainName

- DatabaseName

- HostName

- InstanceName

- ServiceName

- Source

- Status

- Time

- OracleHAEventHandlerデリゲート

- OracleHAEventSourceの列挙

- OracleHAEventStatusの列挙

9 Database Change Notification

- OracleDependencyクラス

- OracleDependencyメンバー

- OracleDependencyコンストラクタ

- OracleDependency()

- OracleDependency(OracleCommand)

- OracleDependency(OracleCommand, bool, int, bool)

- OracleDependency静的フィールド

- Port

- OracleDependency静的メソッド

- GetOracleDependency

- OracleDependencyプロパティ

- DataSource

- HasChanges

- Id

- IsEnabled

- QueryBasedNotification

- RegisteredQueryIDs

- RegisteredResources

- RowidInfo

- UserName

- OracleDependencyメソッド

- AddCommandDependency

- RemoveRegistration

- OracleDependencyイベント

- OnChange

- OracleNotificationRequestクラス

- OracleNotificationRequestメンバー

- OracleNotificationRequest静的メソッド

- OracleNotificationRequestプロパティ

- IsNotifiedOnce

- IsPersistent

- Timeout

- GroupingNotificationEnabled

- GroupingType

- GroupingInterval

- OracleNotificationRequestメソッド

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

- OracleNotificationEventArgs静的フィールド

- OracleNotificationEventArgs静的メソッド

- OracleNotificationEventArgsプロパティ

- Details

- Info

- ResourceNames

- Source

- Type

- OracleNotificationEventArgsメソッド

- OnChangeEventHandlerデリゲート

- OracleRowidInfoの列挙

- OracleNotificationTypeの列挙

- OracleNotificationSourceの列挙

- OracleNotificationInfoの列挙

10 Oracle Data Provider for .NETのグローバリゼーション・クラス

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

- OracleGlobalization静的メソッド

- GetClientInfo

- GetClientInfo()

- GetClientInfo(OracleGlobalization)

- GetThreadInfo

- GetThreadInfo()

- GetThreadInfo(OracleGlobalization)

- SetThreadInfo

- OracleGlobalizationプロパティ

- Calendar

- ClientCharacterSet

- Comparison

- Currency

- DateFormat

- DateLanguage

- DualCurrency

- ISOCurrency

- Language

- LengthSemantics

- NCharConversionException

- NumericCharacters

- Sort

- Territory

- TimeStampFormat

- TimeStampTZFormat

- TimeZone

- OracleGlobalizationパブリック・メソッド

- Clone

11 Oracle Data Provider for .NETのフェイルオーバー・クラス

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

- OracleFailoverEventArgs静的メソッド

- OracleFailoverEventArgsプロパティ

- FailoverType

- FailoverEvent

- OracleFailoverEventArgsパブリック・メソッド

- OracleFailoverEventHandlerデリゲート

- FailoverEventの列挙

- FailoverReturnCodeの列挙

- FailoverTypeの列挙

12 アドバンスト・キューイングのサポート

- OracleAQAgentクラス

- OracleAQAgentメンバー

- OracleAQAgentコンストラクタ

- OracleAQAgent (string)

- OracleAQAgent (string, string)

- OracleAQAgentプロパティ

- アドレス

- 名前

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

- OracleAQDequeueOptionsコンストラクタ

- OracleAQDequeueOptionsプロパティ

- ConsumerName

- Correlation

- DeliveryMode

- DequeueMode

- MessageId

- NavigationMode

- ProviderSpecificType

- Visibility

- Wait

- OracleAQDequeueOptionsパブリック・メソッド

- Clone

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

- OracleAQEnqueueOptionsコンストラクタ

- OracleAQEnqueueOptionsプロパティ

- DeliveryMode

- Visibility

- OracleAQEnqueueOptionsパブリック・メソッド

- Clone

- OracleAQMessageクラス

- OracleAQMessageメンバー

- OracleAQMessageコンストラクタ

- OracleAQMessage()

- OracleAQMessage(Object)

- OracleAQMessageプロパティ

- Correlation

- Delay

- DeliveryMode

- DequeueAttempts

- EnqueueTime

- ExceptionQueue

- Expiration

- MessageId

- OriginalMessageId

- Payload

- Priority

- Recipients

- SenderId

- State

- TransactionGroup

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

- OracleAQMessageAvailableEventArgsプロパティ

- AvailableMessages

- ConsumerName

- Correlation

- Delay

- DeliveryMode

- EnqueueTime

- ExceptionQueue

- Expiration

- MessageId

- NotificationType

- OriginalMessageId

- Priority

- QueueName

- SenderId

- State

- OracleAQMessageAvailableEventHandlerデリゲート

- OracleAQQueueクラス

- OracleAQQueueメンバー

- OracleAQQueueコンストラクタ

- OracleAQQueue(string)

- OracleAQQueue(string, OracleConnection)

- OracleAQQueue(string, OracleConnection, OracleAQMessageType)

- OracleAQQueue(string, OracleConnection, OracleAQMessageType, string)

- OracleAQQueue静的メソッド

- Listen

- Listen(OracleConnection, OracleAQAgent[ ])

- Listen(OracleConnection, OracleAQAgent[ ], int)

- OracleAQQueueプロパティ

- Connection

- DequeueOptions

- EnqueueOptions

- MessageType

- 名前

- Notification

- NotificationConsumers

- UdtTypeName

- OracleAQQueueパブリック・メソッド

- Dequeue

- Dequeue()

- Dequeue(OracleAQDequeueOptions)

- DequeueArray

- DequeueArray(int)

- DequeueArray(int, OracleAQDequeueOptions)

- Dispose

- Enqueue

- Enqueue(OracleAQMessage)

- Enqueue(OracleAQMessage, OracleAQEnqueueOptions)

- EnqueueArray

- EnqueueArray(OracleAQMessage[ ])

- EnqueueArray(OracleAQMessage[ ], OracleAQEnqueueOptions)

- Listen

- Listen(string[])

- Listen (string[], int)

- OracleAQQueueイベント

- MessageAvailable Event

- OracleAQDequeueModeの列挙

- OracleAQMessageDeliveryModeの列挙

- OracleAQMessageStateの列挙

- OracleAQMessageTypeの列挙

- OracleAQNavigationModeの列挙

- OracleAQNotificationGroupingTypeの列挙

- OracleAQNotificationTypeの列挙

- OracleAQVisibilityModeの列挙

13 Oracle Data Provider for .NETタイプのクラス

- OracleBFileクラス

- OracleBFileメンバー

- OracleBFileコンストラクタ

- OracleBFile(OracleConnection)

- OracleBFile(OracleConnection, string, string)

- OracleBFile静的フィールド

- MaxSize

- Null

- OracleBFile静的メソッド

- OracleBFileインスタンス・プロパティ

- CanRead

- CanSeek

- CanWrite

- Connection

- DirectoryName

- FileExists

- FileName

- IsEmpty

- IsNull

- IsOpen

- Length

- Position

- Value

- OracleBFileインスタンス・メソッド

- Clone

- Close

- CloseFile

- Compare

- CopyTo

- CopyTo(OracleBlob)

- CopyTo(OracleBlob, Int64)

- CopyTo(Int64, OracleBlob, Int64, Int64)

- CopyTo(OracleClob)

- CopyTo(OracleClob, Int64)

- CopyTo(Int64, OracleClob, Int64, Int64)

- Dispose

- IsEqual

- OpenFile

- Read

- Search

- Seek

- OracleBlobクラス

- OracleBlobメンバー

- OracleBlobコンストラクタ

- OracleBlob(OracleConnection)

- OracleBlob(OracleConnection, bool)

- OracleBlob静的フィールド

- MaxSize

- Null

- OracleBlob静的メソッド

- OracleBlobインスタンス・プロパティ

- CanRead

- CanSeek

- CanWrite

- Connection

- IsEmpty

- IsInChunkWriteMode

- IsNull

- IsTemporary

- Length

- OptimumChunkSize

- Position

- Value

- OracleBlobインスタンス・メソッド

- Append

- Append(OracleBlob)

- Append(byte[ ], int, int)

- BeginChunkWrite

- Clone

- Close

- Compare

- CopyTo

- CopyTo(OracleBlob)

- CopyTo(OracleBlob, Int64)

- CopyTo(Int64, OracleBlob, Int64, Int64)

- Dispose

- EndChunkWrite

- Erase

- Erase()

- Erase(Int64, Int64)

- IsEqual

- Read

- Search

- Seek

- SetLength

- Write

- OracleClobクラス

- OracleClobメンバー

- OracleClobコンストラクタ

- OracleClob(OracleConnection)

- OracleClob(OracleConnection, bool, bool)

- OracleClob静的フィールド

- MaxSize

- Null

- OracleClob静的メソッド

- OracleClobインスタンス・プロパティ

- CanRead

- CanSeek

- CanWrite

- Connection

- IsEmpty

- IsInChunkWriteMode

- IsNCLOB

- IsNull

- IsTemporary

- Length

- OptimumChunkSize

- Position

- Value

- OracleClobインスタンス・メソッド

- Append

- Append(OracleClob)

- Append(byte[ ], int, int)

- Append(char [ ], int, int)

- BeginChunkWrite

- Clone

- Close

- Compare

- CopyTo

- CopyTo(OracleClob)

- CopyTo(OracleClob, Int64)

- CopyTo(Int64, OracleClob, Int64, Int64)

- Dispose

- EndChunkWrite

- Erase

- Erase()

- Erase(Int64, Int64)

- GetHashCode

- IsEqual

- Read

- Read(byte[ ], int, int)

- Read(char[ ], int, int)

- Search

- Search(byte[ ], Int64, Int64)

- Search(char[ ], Int64, Int64)

- Seek

- SetLength

- Write

- Write(byte[ ], int, int)

- Write(char[ ], int, int)

- OracleRefCursorクラス

- OracleRefCursorメンバー

- OracleRefCursor静的メソッド

- OracleRefCursorプロパティ

- Connection

- FetchSize

- RowSize

- OracleRefCursorインスタンス・メソッド

- Dispose

- GetDataReader

14 Oracle Data Provider for .NETタイプの構造

- OracleBinary構造

- OracleBinaryメンバー

- OracleBinaryコンストラクタ

- OracleBinary静的フィールド

- Null

- OracleBinary静的メソッド

- Concat

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- OracleBinary静的演算子

- operator+

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- OracleBinary静的型変換演算子

- explicit operator byte[ ]

- implicit operator OracleBinary

- OracleBinaryプロパティ

- IsNull

- Item

- Length

- Value

- OracleBinaryインスタンス・メソッド

- CompareTo

- Equals

- GetHashCode

- ToString

- OracleDate構造

- OracleDateメンバー

- OracleDateコンストラクタ

- OracleDate(DateTime)

- OracleDate(string)

- OracleDate(int, int, int)

- OracleDate(int, int, int, int, int, int)

- OracleDate(byte [ ])

- OracleDate静的フィールド

- MaxValue

- MinValue

- Null

- OracleDate静的メソッド

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- GetSysDate

- Parse

- OracleDate静的演算子

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- OracleDate静的型変換

- explicit operator DateTime

- explicit operator OracleDate

- explicit operator OracleDate(DateTime)

- explicit operator OracleDate(OracleTimeStamp)

- explicit operator OracleDate(string)

- OracleDateプロパティ

- BinData

- Day

- IsNull

- Hour

- Minute

- Month

- Second

- Value

- Year

- OracleDateメソッド

- CompareTo

- Equals

- GetHashCode

- GetDaysBetween

- ToOracleTimeStamp

- ToString

- OracleDecimal構造

- OracleDecimalメンバー

- OracleDecimalコンストラクタ

- OracleDecimal(byte [ ])

- OracleDecimal(decimal)

- OracleDecimal(double)

- OracleDecimal(int)

- OracleDecimal(float)

- OracleDecimal(long)

- OracleDecimal(string)

- OracleDecimal(string, string)

- OracleDecimal静的フィールド

- MaxPrecision

- MaxScale

- MaxValue

- MinScale

- MinValue

- NegativeOne

- Null

- One

- Pi

- Zero

- OracleDecimal静的(比較)メソッド

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- OracleDecimal静的(操作)メソッド

- Abs

- Add

- AdjustScale

- Ceiling

- ConvertToPrecScale

- Divide

- Floor

- Max

- Min

- Mod

- Multiply

- Negate

- Parse

- Round

- SetPrecision

- Shift

- Sign

- Sqrt

- Subtract

- Truncate

- OracleDecimal静的(対数)メソッド

- Exp

- Log

- Log(OracleDecimal)

- Log(OracleDecimal, int)

- Log(OracleDecimal, OracleDecimal)

- Pow

- Pow(OracleDecimal, int)

- Pow(OracleDecimal, OracleDecimal)

- OracleDecimal静的(三角法)メソッド

- Acos

- Asin

- Atan

- Atan2

- Cos

- Sin

- Tan

- Cosh

- Sinh

- Tanh

- OracleDecimal静的(比較)演算子

- operator+

- operator /

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- operator *

- operator -

- operator -

- operator%

- OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)

- implicit operator OracleDecimal

- implicit operator OracleDecimal(decimal)

- implicit operator OracleDecimal(int)

- implicit operator OracleDecimal(long)

- explicit operator OracleDecimal

- explicit operator OracleDecimal(double)

- explicit operator OracleDecimal(string)

- OracleDecimal静的演算子(OracleDecimalから.NETへの変換)

- explicit operator byte

- explicit operator decimal

- explicit operator double

- explicit operator short

- explicit operator int

- explicit operator long

- explicit operator float

- OracleDecimalプロパティ

- BinData

- Format

- IsInt

- IsNull

- IsPositive

- IsZero

- Value

- OracleDecimalインスタンス・メソッド

- CompareTo

- Equals

- GetHashCode

- ToByte

- ToDouble

- ToInt16

- ToInt32

- ToInt64

- ToSingle

- ToString

- OracleIntervalDS構造

- OracleIntervalDSメンバー

- OracleIntervalDSコンストラクタ

- OracleIntervalDS(TimeSpan)

- OracleIntervalDS(string)

- OracleIntervalDS(double)

- OracleIntervalDS(int, int, int, int, double)

- OracleIntervalDS(int, int, int, int, int)

- OracleIntervalDS(byte[ ])

- OracleIntervalDS静的フィールド

- MaxValue

- MinValue

- Null

- Zero

- OracleIntervalDS静的メソッド

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- Parse

- SetPrecision

- OracleIntervalDS静的演算子

- operator+

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- operator -

- operator -

- operator *

- operator /

- OracleIntervalDS型変換

- explicit operator TimeSpan

- explicit operator OracleIntervalDS

- implicit operator OracleIntervalDS

- OracleIntervalDSプロパティ

- BinData

- Days

- Hours

- IsNull

- Milliseconds

- Minutes

- Nanoseconds

- Seconds

- TotalDays

- Value

- OracleIntervalDSメソッド

- CompareTo

- Equals

- GetHashCode

- ToString

- OracleIntervalYM構造

- OracleIntervalYMメンバー

- OracleIntervalYMコンストラクタ

- OracleIntervalYM(long)

- OracleIntervalYM(string)

- OracleIntervalYM(double)

- OracleIntervalYM(int, int)

- OracleIntervalYM(byte[ ])

- OracleIntervalYM静的フィールド

- MaxValue

- MinValue

- Null

- Zero

- OracleIntervalYM静的メソッド

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- Parse

- SetPrecision

- OracleIntervalYM静的演算子

- operator+

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- operator -

- operator -

- operator *

- operator /

- OracleIntervalYM型変換

- explicit operator long

- explicit operator OracleIntervalYM

- implicit operator OracleIntervalYM

- OracleIntervalYMプロパティ

- BinData

- IsNull

- Months

- TotalYears

- Value

- Years

- OracleIntervalYMメソッド

- CompareTo

- Equals

- GetHashCode

- ToString

- OracleString構造

- OracleStringメンバー

- OracleStringコンストラクタ

- OracleString(string)

- OracleString(string, bool)

- OracleString(byte [ ], bool)

- OracleString(byte [ ], bool, bool)

- OracleString(byte [ ], int, int, bool)

- OracleString(byte [ ], int, int, bool, bool)

- OracleString静的フィールド

- Null

- OracleString静的メソッド

- Concat

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- OracleString静的演算子

- operator+

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- OracleString型変換

- explicit operator string

- implicit operator OracleString

- OracleStringプロパティ

- IsCaseIgnored

- IsNull

- Item

- Length

- OracleStringメソッド

- Clone

- CompareTo

- Equals

- GetHashCode

- GetNonUnicodeBytes

- GetUnicodeBytes

- ToString

- OracleTimeStamp構造

- OracleTimeStampメンバー

- OracleTimeStampコンストラクタ

- OracleTimeStamp(DateTime)

- OracleTimeStamp(string)

- OracleTimeStamp(int, int, int)

- OracleTimeStamp(int, int, int, int, int, int)

- OracleTimeStamp(int, int, int, int, int, int, double)

- OracleTimeStamp(int, int, int, int, int, int, int)

- OracleTimeStamp(byte [ ])

- OracleTimeStamp静的フィールド

- MaxValue

- MinValue

- Null

- OracleTimeStamp静的メソッド

- Equals

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- GetSysDate

- Parse

- SetPrecision

- OracleTimeStamp静的演算子

- operator+

- operator + (OracleTimeStamp, OracleIntervalDS)

- operator + (OracleTimeStamp, OracleIntervalYM)

- operator + (OracleTimeStamp, TimeSpan)

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- operator -

- operator - (OracleTimeStamp, OracleIntervalDS)

- operator - (OracleTimeStamp, OracleIntervalYM)

- operator - (OracleTimeStamp, TimeSpan)

- OracleTimeStamp静的型変換

- explicit operator OracleTimeStamp

- explicit operator OracleTimeStamp(OracleTimeStampLTZ)

- explicit operator OracleTimeStamp(OracleTimeStampTZ)

- explicit operator OracleTimeStamp(string)

- implicit operator OracleTimeStamp

- implicit operator OracleTimeStamp(OracleDate)

- implicit operator OracleTimeStamp(DateTime)

- explicit operator DateTime

- OracleTimeStampプロパティ

- BinData

- Day

- IsNull

- Hour

- Millisecond

- Minute

- Month

- Nanosecond

- Second

- Value

- Year

- OracleTimeStampメソッド

- AddDays

- AddHours

- AddMilliseconds

- AddMinutes

- AddMonths

- AddNanoseconds

- AddSeconds

- AddYears

- CompareTo

- Equals

- GetHashCode

- GetDaysBetween

- GetYearsBetween

- ToOracleDate

- ToOracleTimeStampLTZ

- ToOracleTimeStampTZ

- ToString

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

- OracleTimeStampLTZコンストラクタ

- OracleTimeStampLTZ(DateTime)

- OracleTimeStampLTZ(string)

- OracleTimeStampLTZ(int, int, int)

- OracleTimeStampLTZ(int, int, int, int, int, int)

- OracleTimeStampLTZ(int, int, int, int, int, int, double)

- OracleTimeStampLTZ(int, int, int, int, int, int, int)

- OracleTimeStampLTZ(byte [ ])

- OracleTimeStampLTZ静的フィールド

- MaxValue

- MinValue

- Null

- OracleTimeStampLTZ静的メソッド

- Equals

- GetLocalTimeZoneName

- GetLocalTimeZoneOffset

- GetSysDate

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- Parse

- SetPrecision

- OracleTimeStampLTZ静的演算子

- operator+

- operator + (OracleTimeStampLTZ, OracleIntervalDS)

- operator + (OracleTimeStampLTZ, OracleIntervalYM)

- operator + (OracleTimeStampLTZ, TimeSpan)

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- operator -

- operator - (OracleTimeStampLTZ, OracleIntervalDS)

- operator - (OracleTimeStampLTZ, OracleIntervalYM)

- operator - (OracleTimeStampLTZ, TimeSpan)

- OracleTimeStampLTZ静的型変換

- explicit operator OracleTimeStampLTZ

- explicit operator OracleTimeStampLTZ(OracleTimeStamp)

- explicit operator OracleTimeStampLTZ(OracleTimeStampTZ)

- explicit operator OracleTimeStampLTZ(string)

- implicit operator OracleTimeStampLTZ

- implicit operator OracleTimeStampLTZ(OracleDate)

- implicit operator OracleTimeStampLTZ(DateTime)

- explicit operator DateTime

- OracleTimeStampLTZプロパティ

- BinData

- Day

- IsNull

- Hour

- Millisecond

- Minute

- Month

- Nanosecond

- Second

- Value

- Year

- OracleTimeStampLTZメソッド

- AddDays

- AddHours

- AddMilliseconds

- AddMinutes

- AddMonths

- AddNanoseconds

- AddSeconds

- AddYears

- CompareTo

- Equals

- GetHashCode

- GetDaysBetween

- GetYearsBetween

- ToOracleDate

- ToOracleTimeStamp

- ToOracleTimeStampTZ

- ToString

- ToUniversalTime

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- OracleTimeStampTZコンストラクタ

- OracleTimeStampTZ(DateTime)

- OracleTimeStampTZ(DateTime, string)

- OracleTimeStampTZ(string)

- OracleTimeStampTZ(int, int, int)

- OracleTimeStampTZ(int, int, int, string)

- OracleTimeStampTZ(int, int, int, int, int, int)

- OracleTimeStampTZ(int, int, int, int, int, int, string)

- OracleTimeStampTZ(int, int, int, int, int, int, double)

- OracleTimeStampTZ(int, int, int, int, int, int, double, string)

- OracleTimeStampTZ(int, int, int, int, int, int, int)

- OracleTimeStampTZ(int, int, int, int, int, int, int, string)

- OracleTimeStampTZ(byte [ ])

- OracleTimeStampTZ静的フィールド

- MaxValue

- MinValue

- Null

- OracleTimeStampTZ静的メソッド

- Equals

- GetSysDate

- GreaterThan

- GreaterThanOrEqual

- LessThan

- LessThanOrEqual

- NotEquals

- Parse

- SetPrecision

- OracleTimeStampTZ静的演算子

- operator+

- operator +(OracleTimeStampTZ, OracleIntervalDS)

- operator +(OracleTimeStampTZ, OracleIntervalYM)

- operator +(OracleTimeStampTZ, TimeSpan)

- operator ==

- operator >

- operator >=

- operator !=

- operator <

- operator <=

- operator -

- operator - (OracleTimeStampTZ, OracleIntervalDS)

- operator - (OracleTimeStampTZ, OracleIntervalYM)

- operator - (OracleTimeStampTZ value1, TimeSpan value2)

- OracleTimeStampTZ静的型変換

- explicit operator OracleTimeStampTZ

- explicit operator OracleTimeStampTZ(OracleTimeStamp)

- explicit operator OracleTimeStampTZ(OracleTimeStampLTZ)

- explicit operator OracleTimeStampTZ(string)

- implicit operator OracleTimeStampTZ

- implicit operator OracleTimeStampTZ(OracleDate)

- implicit operator OracleTimeStampTZ(DateTime)

- explicit operator DateTime

- OracleTimeStampTZプロパティ

- BinData

- Day

- IsNull

- Hour

- Millisecond

- Minute

- Month

- Nanosecond

- Second

- TimeZone

- Value

- Year

- OracleTimeStampTZメソッド

- AddDays

- AddHours

- AddMilliseconds

- AddMinutes

- AddMonths

- AddNanoseconds

- AddSeconds

- AddYears

- CompareTo

- Equals

- GetDaysBetween

- GetHashCode

- GetTimeZoneOffset

- GetYearsBetween

- ToLocalTime

- ToOracleDate

- ToOracleTimeStampLTZ

- ToOracleTimeStamp

- ToString

- ToUniversalTime

- INullableインタフェース

- INullableインタフェース・メンバー

- INullableインタフェース・プロパティ

- IsNull

15 Oracle Data Provider for .NETタイプの例外

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

- OracleTypeExceptionコンストラクタ

- OracleTypeException(string)

- OracleTypeException(SerializationInfo, StreamingContext)

- OracleTypeException静的メソッド

- OracleTypeExceptionプロパティ

- Message

- Source

- OracleTypeExceptionメソッド

- ToString

- OracleNullValueExceptionクラス

- OracleNullValueExceptionメンバー

- OracleNullValueExceptionコンストラクタ

- OracleNullValueException()

- OracleNullValueException(string)

- OracleNullValueException静的メソッド

- OracleNullValueExceptionプロパティ

- OracleNullValueExceptionメソッド

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

- OracleTruncateExceptionコンストラクタ

- OracleTruncateException()

- OracleTruncateException(string)

- OracleTruncateException静的メソッド

- OracleTruncateExceptionプロパティ

- OracleTruncateExceptionメソッド

16 Oracle Data Provider for .NETのUDT関連クラス

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメンバー

- OracleCustomTypeMappingAttributeコンストラクタ

- OracleCustomTypeMappingAttribute(string)

- OracleCustomTypeMappingAttribute静的メソッド

- OracleCustomTypeMappingAttributeプロパティ

- UdtTypeName

- OracleCustomTypeMappingAttributeメソッド

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

- OracleObjectMappingAttributeコンストラクタ

- OracleObjectMappingAttribute(string)

- OracleObjectMappingAttribute(int)

- OracleObjectMappingAttribute静的メソッド

- OracleObjectMappingAttributeプロパティ

- AttributeIndex

- AttributeName

- OracleObjectMappingAttributeメソッド

- OracleArrayMappingAttributeクラス

- OracleArrayMappingAttributeメンバー

- OracleArrayMappingAttributeコンストラクタ

- OracleArrayMappingAttribute()

- OracleArrayMappingAttribute静的メソッド

- OracleArrayMappingAttributeプロパティ

- OracleArrayMappingAttributeメソッド

- IOracleCustomTypeインタフェース

- IOracleCustomTypeメンバー

- IOracleCustomTypeインタフェース・メソッド

- FromCustomObject

- ToCustomObject

- IOracleCustomTypeFactoryインタフェース

- IOracleCustomTypeFactoryメンバー

- IOracleCustomTypeFactoryインタフェース・メソッド

- CreateObject

- IOracleArrayTypeFactoryインタフェース

- IOracleArrayTypeFactoryメンバー

- IOracleArrayTypeFactoryインタフェース・メソッド

- CreateArray

- CreateStatusArray

- OracleUdtクラス

- OracleUdtメンバー

- OracleUDT静的メソッド

- GetValue

- GetValue(OracleConnection, IntPtr, string)

- GetValue(OracleConnection, IntPtr, int)

- GetValue(OracleConnection, IntPtr, string, out object)

- GetValue(OracleConnection, IntPtr, int, out object)

- IsDBNull

- IsDBNull(OracleConnection, IntPtr, string)

- IsDBNull(OracleConnection, IntPtr, int)

- SetValue

- SetValue(OracleConnection, IntPtr, string, object)

- SetValue(OracleConnection, IntPtr, int, object)

- SetValue(OracleConnection, IntPtr, string, object, object)

- SetValue(OracleConnection, IntPtr, int, object, object)

- OracleRefクラス

- OracleRefメンバー

- OracleRefコンストラクタ

- OracleRef(OracleConnection, string)

- OracleRef(OracleConnection, string, string)

- OracleRef静的フィールド

- Null

- OracleRef静的メソッド

- OracleRefインスタンス・プロパティ

- Connection

- HasChanges

- IsLocked

- IsNull

- ObjectTableName

- Value

- Oracle Refインスタンス・メソッド

- Clone

- Delete

- Dispose

- Flush

- GetCustomObject

- GetCustomObject(OracleUdtFetchOption)

- GetCustomObject(OracleUdtFetchOption, int)

- GetCustomObjectForUpdate

- GetCustomObjectForUpdate(bool)

- GetCustomObjectForUpdate(bool, int)

- IsEqual

- Lock

- Update

- OracleUdtFetchOptionの列挙

- OracleUdtStatusの列挙

17 Oracle Data Provider for .NETの一括コピー・クラス

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- OracleBulkCopyコンストラクタ

- OracleBulkCopy(OracleConnection)

- OracleBulkCopy(string)

- OracleBulkCopy(OracleConnection, OracleBulkCopyOptions)

- OracleBulkCopy(string, OracleBulkCopyOptions)

- OracleBulkCopyプロパティ

- BatchSize

- BulkCopyOptions

- BulkCopyTimeout

- ColumnMappings

- Connection

- DestinationTableName

- NotifyAfter

- OracleBulkCopyパブリック・メソッド

- Close

- Dispose

- WriteToServer

- WriteToServer(DataRow[])

- WriteToServer(DataTable)

- WriteToServer(IDataReader)

- WriteToServer(DataTable, DataRowState)

- WriteToServer(OracleRefCursor)

- OracleBulkCopyイベント

- OracleRowsCopied

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

- OracleBulkCopyColumnMappingコンストラクタ

- OracleBulkCopyColumnMapping()

- OracleBulkCopyColumnMapping(int, int)

- OracleBulkCopyColumnMapping(int, string)

- OracleBulkCopyColumnMapping(string, int)

- OracleBulkCopyColumnMapping(string, string)

- OracleBulkCopyColumnMappingプロパティ

- DestinationColumn

- DestinationOrdinal

- SourceColumn

- SourceOrdinal

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

- OracleBulkCopyColumnMappingCollectionプロパティ

- Item [index]

- OracleBulkCopyColumnMappingCollectionパブリック・メソッド

- Add

- Add(OracleBulkCopyColumnMapping)

- Add(int, int)

- Add(int, string)

- Add(string, int)

- Add(string, string)

- Clear

- Contains

- CopyTo

- IndexOf

- Insert

- Remove

- RemoveAt

- OracleBulkCopyOptionsの列挙

- OracleRowsCopiedEventHandlerデリゲート

- OracleRowsCopiedEventArgsクラス

- OracleRowsCopiedEventArgsメンバー

- OracleRowsCopiedEventArgsコンストラクタ

- OracleRowsCopiedEventArgs(long)

- OracleRowsCopiedEventArgsプロパティ

- Abort

- RowsCopied

A Oracleスキーマ・コレクション

- 共通スキーマ・コレクション

- MetaDataCollections

- DataSourceInformation

- DataTypes

- Restrictions

- ReservedWords

- ODP.NET固有スキーマ・コレクション

- Tables

- Columns

- Views

- XMLSchema

- Users

- Synonyms

- Sequences

- Functions

- Procedures

- ProcedureParameters

- Arguments

- Packages

- PackageBodies

- JavaClasses

- Indexes

- IndexColumns

- PrimaryKeys

- ForeignKeys

- ForeignKeyColumns

- UniqueKeys

B LINQの正規関数とOracle関数のマッピング

用語集

索引

はじめに

このドキュメントはOracle Data Providers for .NETの概要、インストール、インストール後の構成および使用情報に関する重要なソースです。

Oracle Data Provider for .NETは、Microsoft ADO.NETインタフェースの実装です。

「はじめに」では、次の項目について説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- コード例のパスワード

- 表記規則

対象読者

Oracle Data Provider for .NET開発者ガイドは、Oracle Data Provider for .NETを使用してOracle Databaseにアクセスするためのアプリケーションを開発するプログラマを対象としています。また、このドキュメントは、システム・アナリスト、プロジェクト・マネージャ、およびデータベース・アプリケーションの開発に関心のあるその他の読者にも役立ちます。

このドキュメントの使用にあたっては、Microsoft .NET FrameworkクラスおよびADO.NETに習熟し、Microsoft C#、Visual Basic .NETまたはその他の.NET言語を使用したアプリケーション・プログラミングの経験と知識を持っている必要があります。

マニュアルに記載されている例とサンプル・ディレクトリにあるとサンプルはC#で記述されていますが、開発者は、他の.NET言語でコードを記述するためのモデルとしてこれらの例を使用できます。

ユーザーは、リレーショナル・データベース・システム内の情報にアクセスするため、Structured Query Language(SQL)の使用方法も熟知している必要があります。

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (聴覚障害者向け)を参照してください。

関連ドキュメント

詳細は、次のOracleドキュメントを参照してください。

- Oracle Databaseインストレーション・ガイドfor Windows

- Oracle Databaseリリース・ノートfor Windows

- Oracle Databaseプラットフォーム・ガイドfor Windows

- 『Oracle Database管理者ガイド』

- 『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』

- Oracle Databaseアプリケーション開発者ガイド-ラージ・オブジェクト

- Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド

- Oracle Database新機能

- 『Oracle Database概要』

- 『Oracle Databaseリファレンス』

- Oracle Database Extensions for .NET開発者ガイド

- Oracle Databaseアプリケーション開発者ガイド-オブジェクト・リレーショナル機能

- Oracle Database SQLリファレンス

- Oracle Net Services管理者ガイド

- Oracle Net Servicesリファレンス・ガイド

- 『Oracle Call Interfaceプログラマーズ・ガイド』

- Oracle Services for Microsoft Transaction Server開発者ガイド

- 『Oracle Databaseグローバリゼーション・サポート・ガイド』

- 『Oracle XML DB開発者ガイド』

- 『Oracle XML Developer's Kitプログラマーズ・ガイド』

- 『Oracle Databaseセキュリティ・ガイド』

- Oracle Spatialユーザーズ・ガイドおよびリファレンス

- 『Oracle Data Guard概要および管理』

このドキュメントでは、サンプル・スキーマを例として多用しています。サンプル・スキーマは、Oracle Databaseのインストール時に「基本インストール」オプションを選択した場合に、デフォルトでインストールされています。これらのスキーマがどのように作成され、ユーザーがどのように使用できるかについては、『Oracle Databaseサンプル・スキーマ』を参照してください。

Oracle製品ご購入の各種お問い合せに関しては、日本オラクル正規代理店もしくはOracle Directにお問い合せください。印刷されたマニュアルはOracle Storeから購入できます。

http://oraclestore.oracle.com/

リリース・ノート、インストール関連ドキュメント、ホワイト・ペーパーまたはその他の関連ドキュメントは、OTN-J (Oracle Technology Network Japan)から、無償でダウンロードできます。OTN-Jを使用するには、オンラインでの登録が必要です。登録は、次のWebサイトから無償で行えます。

http://www.oracle.com/technetwork/index.html

すでにOTNのユーザー名およびパスワードを取得している場合は、次のURLでOTN Webサイトのドキュメントのセクションに直接接続できます。

http://www.oracle.com/technetwork/indexes/documentation/index.html

その他の情報については、次のWebサイトを参照してください。

http://msdn.microsoft.com/netframework

および

http://msdn.microsoft.com/library

サンプル・コードのパスワード

この製品の例示を単純化するため、サンプル・コードでは、デプロイされたシステムで通常使用されるパスワード管理技術は実行されません。本番環境では、Oracle Databaseのパスワード管理ガイドラインに従い、サンプル・アカウントを無効にしてください。パスワード管理ガイドラインおよびその他のセキュリティに関する推奨事項については、Oracle Databaseセキュリティ・ガイドを参照してください。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ドキュメントのタイトル、強調またはユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

Oracle Data Provider for .NETの新機能

この項ではOracle Data Provider for .NETの新機能について説明し、追加情報への参照を提供します。現在のリリースへ移行するユーザーのため、前のリリースの新機能の説明も残されています。

次の項では、Oracle Data Provider for .NETの新機能を説明します。

- Oracle Data Provider for .NETリリース11.2.0.3の新機能

- Oracle Data Provider for .NETリリース11.2.0.2の新機能

- Oracle Data Provider for .NETリリース11.2.0.1.2の新機能

- Oracle Data Provider for .NETリリース11.2の新機能

- Oracle Data Provider for .NETリリース11.1.0.7.20の新機能

- Oracle Data Provider for .NETリリース11.1.0.6.20の新機能

- Oracle Data Provider for .NETリリース11.1の新機能

- Oracle Data Provider for .NETリリース10.2.0.4の新機能

- Oracle Data Provider for .NETリリース10.2.0.3の新機能

- Oracle Data Provider for .NETリリース10.2.0.2の新機能

- Oracle Data Provider for .NETリリース10.2の新機能

- Oracle Data Provider for .NETリリース10.1.0.3の新機能

- Oracle Data Provider for .NETリリース10.1の新機能

- Oracle Data Provider for .NETリリース9.2.0.4の新機能

Oracle Data Provider for .NETリリース11.2.0.3の新機能

Oracle Data Provider for .NETリリース11.2.0.3には次が含まれています。

- ADO.NET Entity FrameworkおよびLINQ to Entitiesのサポート
ODP.NETで、ADO.NET Entity FrameworkおよびLINQ to Entitiesがサポートされるようになりました。Entity Frameworkは、データ・モデルでのオブジェクト・リレーショナル・マッピング・サービスを提供するフレームワークです。Entity Frameworkでは、リレーショナル・データベース形式とクライアント優先オブジェクト形式とのインピーダンス・ミスマッチが解決されます。統合言語クエリ(LINQ)は、配列データ、可算クラス、XML、リレーショナル・データベースおよびその他のデータ・ソースのクエリ、計画およびフィルタ処理に使用される一連の演算子を定義します。LINQの1つの形式であるLINQ to Entitiesを使用すると、Entity Frameworkデータ・ソースをクエリできます。ODP.NETでは、オブジェクト・リレーショナル・モデリングおよびLINQ to EntitiesクエリでOracle Databaseを使用できるようEntity Frameworkがサポートされています。

Entity FrameworkおよびLINQを使用すると、.NET開発者の生産性が向上します。ここでは、アプリケーションのデータ・モデルからデータベースのデータ・モデルが抽出されます。Entity Frameworkのツールを使用すると、オブジェクト・リレーショナル・データの処理が容易になります。Oracle .NET開発者は、Entity FrameworkおよびLINQにOracleを統合することで、生産性に関するこれらのすべての利点を活用できます。

ODP.NETでのADO.NET Entity FrameworkおよびLINQ to Entitiesのサポートの詳細は、「ADO.NET Entity FrameworkおよびLINQ to Entities」を参照してください。

- WCF Data ServicesおよびOData
開発者は、Windows Communication Foundation(WCF)Data Servicesによって、Open Data Protocol(OData)を使用するサービスを作成し、Representational State Transfer(REST)のセマンティクスを使用してインターネット上のデータを公開および使用できます。データは、ODataによって、URIでアドレス指定できるリソースとして公開されます。リソースは、ODataでEntity Data Modelの規則を使用して、アソシエーションによって関連付けられたエンティティのセットとして公開されます。ODP.NETではEntity Frameworkがサポートされており、ODataおよびWCF Data Servicesを介してデータが公開されます。

WCF Data ServicesおよびODataを使用すると、任意のデータ・ソースからフレキシブルなデータ・サービスを作成して、作成したデータ・サービスを無理なくWebに統合できます。(Oracle Databasesを含む)すべてのデータ・ソースが同じデータ共有標準で使用されるため、データ交換による相互運用がより可能になります。

- 暗黙的なREF CURSORパラメータのバインド
ODP.NETでは、REF CURSORパラメータを、明示的にバインドすることなくストアド・プロシージャにバインドできます。これを行うには、アプリケーションでREF CURSORメタデータを.NET構成ファイルの一部として指定する必要があります。この機能によって、Entity Frameworkの関数インポートでOracleストアド・プロシージャをコールして、REF CURSORの結果セットを戻すことができます。ODP.NETでは、REF CURSORを介して取得されるDataSetまたはDataTableを使用して、データベースのデータを更新することもできます。

Entity Frameworkでは、通常、結果セットのパラメータは宣言されません。ODP.NETは、暗黙的なREF CURSORパラメータをサポートすることで、Entity Frameworkの標準的な使用シナリオとより緊密に統合されます。

暗黙的なREF CURSORパラメータのバインドの詳細は、「暗黙的なREF CURSORのバインド」を参照してください。

Oracle Data Provider for .NETリリース11.2.0.2の新機能

Oracle Data Provider for .NETリリース11.2.0.2には次が含まれています。

- Windows x64の64ビットODP.NET XCopy
ODP.NET XCopyは、Windows x64システムで使用できるようになり、通常のODP.NETクライアントよりも小さいクライアント・インストール・サイズを実現し、さらに、構成がより簡単になりました。ODP.NET XCopyは、カスタマイズされたデプロイメント・パッケージへのODP.NETの埋込みを簡素化します。

関連項目:
「Oracle Data Provider for .NETのインストール」のXCopyに関する説明を参照してください

- TimesTen In-Memoryデータベースのサポート
Oracle Data Provider for .NETでは、TimesTen In-memoryデータベースに対する.NETアプリケーション(C# .NET、Visual Basic .NET、ASP.NETなど)の高速データ・アクセスが可能です。ODP.NETによるTimesTenのサポートには、Oracle.DataAccess.ClientおよびOracle.DataAccess.Typesネームスペースのクラス、列挙、インタフェース、デリゲートおよび構造が含まれています。ODP.NETは、Microsoft Windows 32ビットおよび64ビット・プラットフォームにおけるTimesTenリリース11.2.1.6.1以上をサポートします。TimesTenは、Microsoft Visual Studio 2005以上とともに、.NET Framework 2.0、3.0、3.5および4で使用できます。

関連項目:
TimesTen In-Memoryデータベースの最新のドキュメントおよびリソースは、次のWebサイトで入手できます。
http://www.oracle.com/technetwork/database/timesten/index.html

Oracle Data Provider for .NETリリース11.2.0.1.2の新機能

Oracle Data Provider for .NETリリース11.2.0.1.2には次が含まれています。

- Microsoft .NET Framework 4のサポート
ODP.NET for .NET Framework 4は、.NET Framework 4および.NET Framework 4 Client Profileをサポートします。

Oracle Data Provider for .NETリリース11.2の新機能

Oracle Data Provider for .NETリリース 11.2には次が含まれています。

- エンドツーエンド・トレース: ClientInfoプロパティ
ODP.NETでは、OracleConnectionオブジェクトで、ActionName、ClientIdおよびModuleNameプロパティに加え、ClientInfo書込み専用プロパティがサポートされるようになりました。このプロパティでは、接続のクライアント情報を指定します。

ClientInfoプロパティは、エンドツーエンドのトレース属性で、クライアントまたは中間層に設定しておくことができます。この属性は、次のサーバー・ラウンドトリップが発生するたびにデータベース・サーバーに伝播できます。これにより、単独のデータベース・ラウンドトリップに伴う追加のオーバーヘッドが軽減されます。ClientInfoプロパティは、データベースのユーザー・アクティビティの追跡やアプリケーションのデバッグを行う際に使用すると便利です。

関連項目:

- 「クライアント識別子とエンドツーエンド・トレース」

- 「ClientInfo」

- エディションベースの再定義
エディションベースの再定義を使用すると、.NETアプリケーションが使用中であってもそのデータベース・コンポーネントをアップグレードできます。このため、アプリケーションの停止時間を最小化あるいは排除することができます。

関連項目:
「エディションベースの再定義」

Oracle Data Provider for .NETリリース11.1.0.7.20の新機能

Oracle Data Provider for .NETリリース11.1.0.7.20には次が含まれています。

- アプリケーションの自動チューニング
ODP.NETでは、実行時に行うサンプリングに基づいて動的に文キャッシュ・サイズを調整し、アプリケーションのパフォーマンスを向上させます。また、自動チューニングでは、メモリー使用率が高くなりすぎるのを防ぐために、クライアント・マシンのメモリー使用率が考慮されます。自動チューニングを使用すると、ODP.NETパフォーマンスの向上、ネットワーク使用率の低減、サーバーCPUアクティビティおよびクライアントCPUアクティビティの減少が実現します。

関連項目:
自動チューニング

- データ検索の高速化とメモリー使用率の低減
OracleDataReaderによるデータ検索やOracleDataAdapterからのDataSetの移入が高速化されました。

ODP.NETでは、同時に実行されない文の同じフェッチ配列バッファを再利用することで、メモリー使用量を節約します。フェッチ配列バッファには、データベースから取得したデータが保存されます。

これらの機能を使用する際にはコード変更は必要ありません。これらの機能により、ODP.NETアプリケーションのパフォーマンスとスケーラビリティが向上します。

- Oracle Streamsアドバンスト・キューイングのサポート
ODP.NETは、Oracle Streamsアドバンスト・キューイング(AQ)へのアクセスをサポートしています。AQは、データベース統合型のメッセージ・キューイング機能を提供し、メッセージの永続的な格納、異なるマシンおよびデータベース上のキュー間でのメッセージの伝播、Oracle NET Services、HTTP、HTTPS、SMTPを使用したメッセージの送信を可能にします。

ODP.NETでは、エンキュー、デキュー、リスニング、通知など、AQのすべての操作機能を利用できます。AQリソースはOracle Developer Tools for Visual Studioで管理できます。

関連項目:
Oracle Streamsアドバンスト・キューイングのサポート

- 昇格可能なローカル・トランザクションのサポート
分散トランザクションは、アプリケーション、トランザクション・コーディネータおよび複数のデータベースのオーケストレーションを必要とします。ローカル・トランザクションに必要なのは、アプリケーションと単一のリソース・マネージャまたはデータベースのみです。ローカル・トランザクションのオーバーヘッドは、分散トランザクションと比較すると、それほど多くありません。

トランザクションをローカルにするか、分散させるかを設計時に判断するのは困難なこともあります。ローカル・トランザクションを使用することがほとんどであるとしても、開発者は分散トランザクション用にアプリケーションを設計せざるを得ません。こうした状況は、実行時のリソース使用率が必要以上に上昇する原因となります。

昇格可能なローカル・トランザクションを使用すれば、複数のデータベースがトランザクションに参加するまで、すべてのトランザクションをローカルにしておくことができます。複数のデータベースが参加した時点で、そのトランザクションは分散トランザクションに昇格し、トランザクション・コーディネータによる管理が可能になります。これにより、システム・リソースの利用が効率化されます。この機能は、Oracle Database 11gリリース1(11.1.0.7)以上でサポートされています。

関連項目:
「System.TransactionsとPromotable Transaction」

- ODP.NETのセキュリティ強化
ODP.NETでは、OraclePermissionクラスを利用して強制的セキュリティを適用します。これは、ユーザーまたはアプリケーションのセキュリティ・レベルがデータへのアクセスに十分であることを保証するのに役立ちます。

関連項目:

- コード・アクセス・セキュリティのサポート

- 「OraclePermissionクラス」

- 「OraclePermissionAttributeクラス」

- HAイベント通知のコールバック
ODP.NETでは、接続文字列に"ha events=true"が指定されている場合にOracle高可用性(HA)イベントを登録できます。イベントを登録すると、停止または起動したデータベース、サービス、ホストまたはインスタンスについての通知を受信できるようになります。.NETの開発者は、必要に応じてコールバックをODP.NETに登録することで、いずれかのイベントが発生したときにアプリケーションに通知し、次にイベント・ハンドラを実行することができます。

関連項目:

- 第8章「Oracle Data Provider for .NET HAのイベント・クラス」

- 「HAEvent」

- 「OracleConnectionプロパティ」

- データベースの起動および停止操作
データベース管理者権限を持つユーザーは、OracleDatabaseクラスを使用してデータベース・インスタンスを起動または停止できます。

関連項目:

- OracleDatabaseクラス

- 「Shutdown」

- 「Startup」

Oracle Data Provider for .NETリリース11.1.0.6.20の新機能

Oracle Data Provider for .NETリリース11.1.0.6.20には次が含まれています。

- 32ビットODP.NET XCopy
Oracle XCopyは、通常のODP.NETクライアントよりもディスク・サイズが小さく、構成が簡単なODP.NETクライアントをシステム管理者に提供します。Oracle XCopyは、カスタマイズされたデプロイメント・パッケージへのODP.NETの埋込みを簡素化します。

関連項目:
XCopy

- Oracleユーザー定義タイプのサポート
ODP.NETには、.NETアプリケーションのカスタム・タイプとしてデータベースに定義されているOracle UDTを表示する機能があります。

関連項目:

- Oracleユーザー定義タイプ(UDT)および.NETカスタム・タイプ

- 第16章「Oracle Data Provider for .NETのUDT関連クラス」

- 一括コピー操作
ODP.NETでは、大量のデータを効率的にロードする一括コピー操作がサポートされています。

関連項目:

- 一括コピー・サポート

- 第17章「Oracle Data Provider for .NETの一括コピー・クラス」

- Oracle Real Application Clusters(Oracle RAC)およびOracle Data Guardに対する追加の接続プールの最適化
ODP.NETは、Oracle RACまたはOracle Data Guardからデータベース・ダウン・イベントを受信すると、接続プールをクリーン・アップします。ODP.NETはすでにノード・ダウン、サービス・メンバー・ダウンおよびサービス・ダウン・イベントに対して接続プールをクリーン・アップしていますが、これはその追加機能です。

関連項目:
Oracle RACおよびOracle Data Guardの接続の最適化

- Windows認証ユーザー接続プーリング
ODP.NET接続プールの一部として、オペレーティング・システム認証接続を管理できます

関連項目:
オペレーティング・システム認証

- 接続プール・パフォーマンス・カウンタ
ODP.NETは、Windowsパフォーマンス・モニターを使用して表示できる接続プーリングのパフォーマンス・カウンタを公開します。

関連項目:
接続プール・パフォーマンス・カウンタ

- エンドツーエンドのトレース属性のサポート
ODP.NETは、OracleConnectionオブジェクトの書込み専用プロパティであるActionName、ClientId、ClientInfoおよびModuleNameをサポートしています。これらのプロパティは、エンドツーエンドのトレース属性に対応しています。このエンドツーエンドのトレース属性をクライアントまたは中間層に設定しておき、次のサーバー・ラウンドトリップが発生するたびにデータベース・サーバーに伝播できます。これにより、単独のデータベース・ラウンドトリップに伴う追加のオーバーヘッドが軽減されます。この属性は、データベースのユーザー・アクティビティの追跡やアプリケーションのデバッグを行う際に使用すると便利です。

関連項目:
「クライアント識別子とエンドツーエンド・トレース」

Oracle Data Provider for .NETリリース11.1の新機能

Oracle Data Provider for .NETリリース11.1には次が含まれています。

- パフォーマンスの拡張機能
パフォーマンスの拡張機能は次のとおりです。

- パラメータ・コンテキストのキャッシングの向上
このリリースでは、ODP.NETパラメータ・コンテキストをキャッシュする既存のキャッシング・インフラストラクチャが拡張されました。この拡張機能は、データベース・バージョンから独立しており、サポートされているすべてのデータベース・バージョンで使用できます。この機能により、アプリケーションが同じ文を繰り戻し実行する際のパフォーマンスが大きく改善されます。

この拡張機能は開発者に対して透過的です。この機能の使用を使用する際にはコード変更は必要ありません。

- LOBSまたはSecureFilesを使用したLOBの効率的な検索
このリリースでは、データベースへのラウンドトリップの回数を減らすことで、LOBSまたはSecureFilesを使用する際の少量のLOB検索のパフォーマンスが向上しました。SecureFilesはOracle 11gリリース1以降のデータベース・リリースで使用可能です。

この拡張機能は開発者に対して透過的です。この機能の使用を使用する際にはコード変更は必要ありません。

Oracle Data Provider for .NETリリース10.2.0.4の新機能

Oracle Data Provider for .NETリリース10.2.0.4には次が含まれています。

- ODP.NET構成
開発者は、アプリケーション構成ファイル、web.configファイルまたはmachine.configファイルなどの構成ファイルを使用してODP.NETを構成できるようになりました。

machine.configの設定は、レジストリの設定より優先されます。アプリケーション構成ファイルまたはweb.configの設定は、machine.configの値より優先されます。

関連項目:
「Oracle Data Provider for .NETの構成」

Oracle Data Provider for .NETリリース10.2.0.3の新機能

Oracle Data Provider for .NETリリース10.2.0.3には次が含まれています。

- Windows x64およびWindows Itaniumに対応する64ビットODP.NET
ODP.NETは、次の64ビットのWindowsプラットフォームに対する64ビット.NET Frameworkをネイティブにサポートしています。

- AMD64およびIntel EM64Tプロセッサに対応するWindows x64

- Intel Itaniumに対応する64ビットWindows

64ビット・システムにより、ODP.NETアプリケーションはさらに拡張的になり、そのパフォーマンスが向上しました。

- Windowsレジストリを介するFetchSizeの構成
この機能により、アプリケーションはレジストリを介するデフォルトの結果セットのフェッチ・サイズを指定できます。

- System.Transactionsのローカル・トランザクション・サポート
この機能により、System.Transactionsは、分散トランザクションではなくローカル・トランザクションを使用できます。これは、レジストリまたは接続文字列属性のいずれかから指定できます。

関連項目:
旧リリースのデータベースにおけるローカル・トランザクション・サポート

Oracle Data Provider for .NETリリース10.2.0.2の新機能

Oracle Data Provider for .NETリリース10.2.0.2には次が含まれています。

- Microsoft ADO.NET 2.0のサポートには次が含まれます。

- プロバイダ・ファクトリ・クラスおよびベース・クラス
データ・アクセス・コードを単純化して、プロバイダの汎用APIで複数のデータ・ソースにアクセスします。

- 接続文字列ビルダー
エラーを起こしにくく、管理しやすい接続文字列を作成します。

- データ・ソース列挙子
アプリケーションによって、そのアプリケーションが接続できるOracleデータ・ソースのコレクションを一般的に取得できます。

- スキーマ検出のサポート
アプリケーション開発者は、表、列およびストアド・プロシージャなどのデータベース・スキーマ情報を検出し、戻すことができます。

- System.Transactionsのサポート
ODP.NETでは、System.Transactionsネームスペース・モデルを使用する暗黙的および明示的トランザクションをサポートします。

- バッチ処理のサポート
OracleDataAdapter.Updateメソッドがコールされると、バッチ処理が有効になります。

関連項目:
「ADO.NET 2.0の機能」

Oracle Data Provider for .NETリリース10.2の新機能

Oracle Data Provider for .NETリリース10.2には次が含まれています。

- サーバー側の機能
Oracle Data Provider for .NETのサーバー側の機能は、.NETストアド・プロシージャからのデータ・アクセスを提供します。このようなプロシージャは、Windows上のOracleデータベースに含まれる新機能のOracle Database Extensions for .NETにより有効になります。

関連項目:

- 第4章「Oracle Data Provider for .NETのサーバー側機能」

- Oracle Database Extensions for .NET開発者ガイド

- クライアント識別子のサポート
Oracle Data Provider for .NETは、OracleConnection.ClientIdプロパティを公開するため、Oracle Virtual Private Database(VPD)およびアプリケーション・コンテキストをサポートしています。クライアント識別子により開発者はより簡単にVPDを構成できるようになります。

関連項目:
「クライアント識別子とエンドツーエンド・トレース」

- Oracle Real Application Clusters(Oracle RAC)に対する接続プールの最適化
Oracle Data Provider for .NETは、ロード・バランシング・アドバイザリおよびサービスの目的に基づいてOracle RACインスタンス間の作業要求のバランスを調整することにより、Oracle RACデータベースの接続プーリングを最適化します。さらに、ODP.NET接続プールを有効にして、Oracle RACサービス、インスタンスまたはノードの停止により動作継続中の接続に関連付けられているリソースを事前に解放できます。

関連項目:
「Oracle Real Application Clusters(Oracle RAC)データベースへの接続」

- Database Change Notificationサポート
Oracle Data Provider for .NETでは、Continuous Query Notificationをサポートする通知フレームワークが提供されます。これにより、問合せ結果セットまたはデータベースの状態に変更があったときにアプリケーションが通知を受け取れます。

関連項目:

- Database Change Notificationサポート

- 第9章「Database Change Notification」

- 接続プーリングの管理
Oracle Data Provider for .NET接続プール管理は、ODP.NETアプリケーションに関する明示的な接続プール管理を提供します。アプリケーションはすべての接続プール内の接続を明示的にクリアできます。

関連項目:
接続プールの管理

- Oracle Database 10gリリース2(10.2)以降でのLOBパフォーマンスおよび機能の向上

関連項目:
「InitialLOBFetchSize」

- INおよびIN/OUT、REF CURSORオブジェクトのサポート
この機能により、アプリケーションはPL/SQLプロシージャまたはファンクションからREF Cursorを取得して、別のストアド・プロシージャまたはファンクションへ渡すことができます。

関連項目:
ストアド・プロシージャへのREF CURSORの引渡し

Oracle Data Provider for .NETリリース10.1.0.3の新機能

Oracle Data Provider for .NETリリース10.1.0.3には次が含まれています。

- 文キャッシング
この機能では、各セッションの文のキャッシュを提供および管理します。開発者はキャッシュされる文とその数を制御できます。これによりパフォーマンスとスケーラビリティが向上します。

関連項目:
「文キャッシング」

- .NET Framework 1.1の拡張機能
これらの拡張機能により、Microsoft .NET Framework 1.1で導入された新しいADO.NET機能が公開されます。

関連項目:

- 「EnlistDistributedTransaction」

- HasRows

- コマンドのキャンセルおよびタイムアウトのサポート
これら2つの新機能はコマンドの取消しに関連しています。CommandTimeout機能は実行後に指定した時間が経過するとコマンドの実行を取り消し、Cancelメソッドはコマンドの実行を終了するようアプリケーションによって明示的にコールできます。

関連項目:

- CommandTimeout

- 取消し

- DeriveParametersメソッド
このメソッドは、パラメータ情報のデータベースを問い合せてストアド・プロシージャまたはファンクションを表すOracleCommandのパラメータ・コレクションを作成します。

関連項目:
DeriveParameters

- LOB検索の拡張機能
選択リストに主キー、ROWIDまたは一意キーが含まれない場合でも、LOB列データ全体を取得できます。この拡張機能は、InitialLOBFetchSizeプロパティ値をCLOBおよびBLOBオブジェクトに対して-1に設定することで使用可能になります。

関連項目:
InitialLOBFetchSizeを-1に設定

- LONG検索の拡張機能
選択リストに主キー、ROWIDまたは一意キーが含まれない場合でも、LONG列データ全体を取得できます。この拡張機能は、InitialLONGFetchSizeプロパティ値を-1に設定することで使用可能になります。

関連項目:
InitialLONGFetchSizeを-1に設定

Oracle Data Provider for .NETリリース10.1の新機能

Oracle Data Provider for .NETリリース10.1には次が含まれています。

- Oracle Gridsのサポート
ODP.NETはグリッド対応であり、開発者は使用しているアプリケーション・コードを変更せずにOracle Database Gridサポートの利点を受けられます。

- データベース内でのBINARY_FLOATおよびBINARY_DOUBLEデータ型のサポート
ODP.NETは、新規のネイティブなデータベース型であるBINARY_FLOATおよびBINARY_DOUBLEをサポートしています

関連項目:
データ型BINARY_FLOATおよびBINARY_DOUBLE

- 複数ホームのサポート
ODP.NETは、複数のOracleホームにインストールできます。

複数のホームを使用可能にするには、いくつかのODP.NETファイルにバージョン番号を含めること、およびHOMEIDの使用が必須です。

- データベース内のスキーマ・ベースXMLTypeのサポート
ODP.NETは、ネイティブ・スキーマ・ベースのXMLTypeをサポートしています。

Oracle Data Provider for .NETリリース9.2.0.4の新機能

Oracle Technology Network(OTN)上でリリースされたOracle Data Provider for .NETリリース9.2.0.4には次が含まれています。

- ODP.NETでのXMLサポート
XMLサポートにより、現在ODP.NETでは次の機能が実行できます。

- XMLデータをそのままの形で、ネイティブなOracleデータベース型であるXMLTypeとして、データベースに格納します。

- Oracle DatabaseインスタンスからMicrosoft .NET環境へ、XMLデータとしてリレーショナル・データおよびオブジェクト・リレーショナル・データにアクセスし、Microsoft .NET Frameworkを使用してXMLを処理します。

- XMLデータを使用してデータベースに変更を保存します。

関連項目:
ODP.NET XMLサポート

- PL/SQL連想配列バインドのサポート
ODP.NETは、PL/SQL連想配列(従来のPL/SQL索引付き表)バインドをサポートしています。

アプリケーションは、OracleParameterプロパティを使用し、OracleParameterをPL/SQL連想配列としてPL/SQLストアド・プロシージャにバインドできます。

関連項目:
PL/SQL連想配列バインド

- OracleCommandおよびOracleDataReaderオブジェクトでのInitialLOBFetchSizeプロパティのサポート

関連項目:
「LOBデータの取得」

1 Oracle Data Provider for .NETの概要

この章では、Oracle Database用の.NETデータ・プロバイダであるOracle Data Provider for .NET(ODP.NET)について概説します。

この章の内容は次のとおりです。

- Oracleでの.NETデータ・アクセス: 製品およびドキュメント

- Oracle Data Provider for .NET(ODP.NET)の概要

- Oracle Data Provider for .NETアセンブリ

- 単純なアプリケーションでのODP.NETクライアント・プロバイダの使用

Oracleでの.NETデータ・アクセス: 製品およびドキュメント

この項では、Oracleデータベースへの.NETデータ・アクセスを提供するために連動するOracleのコンポーネントおよび製品、その相互関係、および提供されているドキュメントについて説明します。

これらのOracle製品は、Windowsオペレーティング・システム上で.NET統合を提供します。

Oracle Data Provider for .NET(ODP.NET)

Oracle Data Provider for .NETは、.NETクライアントからOracle Databaseへの高速データ・アクセスを提供します。ODP.NETにより、.NETアプリケーションは、Oracle Real Application Clusters(Oracle RAC)やXML DBなどのOracle拡張機能を利用できます。拡張機能には、C#、Visual Basic .NETおよびC++ .NETを含む任意の.NET言語を通じてアクセスできます。

Oracle Data Provider for .NET開発者ガイドでは、Oracle Data Provider for .NETの機能、その使用方法、インストール、要件およびクラスについて説明します。ガイドでは、.NETストアド・プロシージャでサポートされるクラスと、.NETクライアントでサポートされるクラスを区別しています。

また、文脈依存のオンライン・ヘルプであるOracle Data Provider for .NET Dynamic Helpには、Oracle Data Provider for .NET開発者ガイド(このガイド)で使用可能な参照セクションと同じ内容が含まれています。

また、Oracle Data Provider for .NET Dynamic Helpは、Visual Studio Dynamic Helpに統合されています。動的ヘルプを使用すると、ユーザーは、Oracle Data Provider for .NETのキーワードにカーソルを置き、[F1]ファンクション・キーを押すことで、Visual Studio内でOracle Data Provider for .NETのマニュアルにアクセスできます。

Oracle Developer Tools for Visual Studio

Oracle Developer Toolsは、Visual Studioのアドインであり、Oracle機能へのグラフィカル・ユーザー・インタフェース(GUI)アクセスを提供します。開発者の生産性と使いやすさを向上させます。Oracle Developer Toolsは、Visual Basic .NET、C#およびその他の.NET言語を使用して.NETストアド・プロシージャを構築する機能を提供します。

Oracle Developer Tools for Visual Studioヘルプは、Oracle Developer Toolsについて説明しています。このヘルプは、動的ヘルプの形式で、製品の一部としてインストールされます。

また、Oracle Developer Tools for Visual Studioヘルプには、次のドキュメントが含まれています。

- Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス

- Oracle Database SQLリファレンス

- Oracle Database Extensions for .NET開発者ガイド

- Oracle Databaseエラー・メッセージ

- Oracle Data Provider for .NET Dynamic Helpへのアクセス

- Oracle Providers for ASP.NET Dynamic Helpへのアクセス

Oracle Database Extensions for .NET

Oracle Database Extensions for .NETには、次の機能が用意されています。

- .NETストアド・プロシージャを実行するための、サーバー側の外部プロセスへのMicrosoft Common Language Runtime(CLR)のホスティング。

- .NETストアド・プロシージャ内からの、サーバー側のODP.NETデータのアクセス。

Oracle Database Extensions for .NETの機能、その使用方法、インストールおよび要件は、『Oracle Database Extensions for .NET開発者ガイド』で説明されています。

Oracle Data Provider for .NET開発者ガイドでは、すべてのODP.NETクラスについて説明しています。Oracle Database Extensions for .NETでサポートされていないクラスは、「.NETストアド・プロシージャではサポートされません」と記述されています。

関連項目:

- Oracle Developer Tools for Visual Studioヘルプ

- .NETストアド・プロシージャおよびファンクションの詳細は、Oracle Database Extensions for .NET開発者ガイドを参照

- クラスのリストについては、「Oracle Data Provider for .NETアセンブリ」を参照

- 第4章「Oracle Data Provider for .NETのサーバー側機能」

Oracle Providers for ASP.NET

Oracle Providers for ASP.NETは、ASP.NET開発者に対して、Oracle Database内のWebアプリケーションに共通の状態を簡単に格納できる方法を提供します。これらのプロバイダは、既存のMicrosoft ASP.NETプロバイダにモデル化され、類似するスキーマおよびプログラミング・インタフェースを共有して.NET開発者に使い慣れたインタフェースを提供します。Oracleでは、次のプロバイダがサポートされます。

- キャッシュ依存性プロバイダ

- メンバーシップ・プロバイダ

- プロファイル・プロバイダ

- ロール・プロバイダ

- セッション状態プロバイダ

- サイト・マップ・プロバイダ

- Webイベント・プロバイダ

- Webパーツ・パーソナライズ・プロバイダ

Oracle Providers for ASP.NETクラス、その使用方法、インストールおよび要件は、動的ヘルプとしても提供されているOracle Providers for ASP.NET開発者ガイドで説明されています。

Microsoftトランザクション・サーバー用のOracleサービス

Oracle Services for Microsoft Transaction Server(OraMTS)を使用すると、Microsoftアプリケーションで調整されるトランザクション内で、リソース・マネージャとしてOracle Databaseを使用できます。OraMTSは、Microsoft分散トランザクション・コーディネータ(MSDTC)に対するOracle Databaseのプロキシとして機能します。この結果、OraMTSによってクライアント側の接続プールが提供され、Oracleを利用するクライアント・コンポーネントを昇格可能なトランザクションおよび分散トランザクションに使用できるようになります。また、サービス自体がWindowsで実行される場合、OraMTSは、任意のオペレーティング・システム上で実行されているOracle Databaseと連携して動作できます。

分散トランザクションでOracle Databaseをリソース・マネージャとして使用するためのOraMTSの詳細は、『Oracle Services for Microsoft Transaction Server開発者ガイド』を参照してください。

Oracle TimesTen In-Memory Database

Oracle TimesTen In-Memory Database(TimesTen)に対するODP.NETサポートによって、最大限のパフォーマンスが必要なアプリケーションで、高速で効率的なADO.NETデータ・アクセスが提供されます。

ODP.NETは、次に示す任意のTimesTenインストールとともに使用できます。

- TimesTen Data Managerのみ(直接接続用)

- TimesTen Clientのみ(TimesTen Data ManagerインスタンスおよびTimesTen Serverインスタンスに任意の場所からアクセス可能な場合に、クライアント/サーバー接続用)

- TimesTen Data ManagerおよびTimesTen Server

TimesTen環境に固有のODP.NET機能の詳細は、『Oracle Data Provider for .NET Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイド』を参照してください。

Oracle Data Provider for .NET(ODP.NET)の概要

Oracle Data Provider for .NET(ODP.NET)は、Oracle Database用の.NETデータ・プロバイダの実装です。Microsoft .NET Frameworkクラス・ライブラリで使用可能なクラスとインタフェースを使用および継承しています。

.NET Frameworkに従い、ODP.NETはADO.NETモデルを使用します。このモデルにより、ネイティブ・プロバイダはプロバイダ固有の機能とデータ型を公開できます。これは、ADO(ActiveXデータ・オブジェクト)が簡単なプログラミング・モデルを公開する自動化レイヤーを提供するOracle Provider for OLE DBと似ています。ADO.NETは同様のプログラミング・モデルを提供しますが、パフォーマンスを向上させる自動化レイヤーがありません。

Oracle Data Provider for .NETは、OracleネイティブAPIを使用して、Oracleデータへの高速で信頼性の高いアクセスと、.NETアプリケーションの機能を提供します。

このガイドで説明されているODP.NETクラスは、Oracle.DataAccess.dllアセンブリに含まれています。

- クライアント・アプリケーション: すべてのODP.NETクラスは、クライアント・アプリケーションで使用できます。

- .NETストアド・プロシージャ: ほとんどのODP.NETクラスは、.NETストアド・プロシージャおよびファンクション内から使用できます。使用できないクラスには、「.NETストアド・プロシージャではサポートされません」というラベルが付いています。また、一部のクラスには、サポートされていない可能性のあるメンバーが含まれています。このようなクラスは、クラスの説明の後のメンバー表でそのように示されており、このガイドの第4章にリストされています。

関連項目:

- 表4-1「クライアント・アプリケーションと.NETストアド・プロシージャ間でのAPIサポートの比較」

- クラスのリストについては、「Oracle Data Provider for .NETアセンブリ」を参照

- 第4章「Oracle Data Provider for .NETのサーバー側機能」

- .NETストアド・プロシージャおよびファンクションの詳細は、Oracle Database Extensions for .NET開発者ガイドを参照

Oracle Data Provider for .NETアセンブリ

Oracle.DataAccess.dllアセンブリは2つのネームスペースを提供します。

- Oracle.DataAccess.Clientネームスペースには、クライアント側プロバイダのODP.NETクラスおよび列挙が含まれています。

- Oracle.DataAccess.Typesネームスペースには、Oracle Data Provider for .NETデータ型(ODP.NETタイプ)が含まれています。

Oracle.DataAccess.Clientネームスペース

Oracle.DataAccess.Clientネームスペースには、コアADO.NETクラスの実装およびODP.NETの列挙に加えて、ODP.NET固有のクラスが含まれています。

次の表に、Oracle.DataAccess.ClientネームスペースでサポートされているODP.NETのクラス、列挙および型をリストします。表では、どのクラスが.NETストアド・プロシージャでサポートされないかも示しています。

Oracle.DataAccess.Client

表1-1に、クライアント・クラスをリストします。

表1-1 Oracle.DataAccess.Client

クラス

説明

OnChangeEventHandlerデリゲート

OnChangedEventHandlerイベント・デリゲートは、通知を処理するメソッドの署名を表します。

.NETストアド・プロシージャではサポートされません

OracleAQAgentクラス

OracleAQAgentクラスは、メッセージの送信者または受信者となるエージェントを表します。

OracleAQDequeueOptionsクラス

OracleAQDequeueOptionsオブジェクトは、OracleAQQueueオブジェクトからメッセージをデキューする際に使用できるオプションを表します。

OracleAQEnqueueOptionsクラス

OracleAQEnqueueOptionsクラスは、OracleAQQueueにメッセージをエンキューする際に使用できるオプションを表します。

OracleAQMessageクラス

OracleAQMessageオブジェクトは、エンキューおよびデキューされるメッセージを表します。

OracleAQMessageAvailableEventArgsクラス

OracleAQMessageAvailableEventArgsクラスは、OracleAQQueue.MessageAvailableイベントのイベント・データを提供します。

OracleAQMessageAvailableEventHandlerデリゲート

OracleAQMessageAvailableEventHandlerデリゲートは、OracleAQQueue.MessageAvailableイベントを処理するメソッドの署名を表します。

OracleAQQueueクラス

OracleAQQueueオブジェクトは、キューを表します。

OracleBulkCopyクラス

OracleBulkCopyオブジェクトは別のデータ・ソースからOracle表にデータを効率的に一括ロードまたはコピーします。

OracleBulkCopyColumnMappingクラス

OracleBulkCopyColumnMappingクラスは、データ・ソースの列および保存先のデータベース表間のマッピングを定義します。

OracleBulkCopyColumnMappingCollectionクラス

OracleBulkCopyColumnMappingCollectionクラスは、データ・ソースの列を保存先表の列にマップするために使用するOracleBulkCopyColumnMappingオブジェクトのコレクションを表します。

OracleClientFactoryクラス

OracleClientFactoryオブジェクトによって、アプリケーションはODP.NETクラスを一般的な方法でインスタンス化できます。

OracleCommandクラス

OracleCommandオブジェクトは、SQLコマンド、ストアド・プロシージャやファンクション、または表の名前を表します。

OracleCommandBuilderクラス

OracleCommandBuilderオブジェクトでは、データベースが更新される場合に、OracleDataAdapterに対して自動SQL生成が行われます。

OracleConnectionクラス

OracleConnectionオブジェクトは、Oracle Databaseへの接続を表します。

OracleConnectionStringBuilderクラス

OracleConnectionStringBuilderオブジェクトによって、アプリケーションは接続文字列を作成し変更できます。

OracleDataAdapterクラス

OracleDataAdapterオブジェクトは、DataSetと通信するデータ・プロバイダ・オブジェクトを表します。

OracleDataReaderクラス

OracleDataReaderオブジェクトは、順方向専用および読取り専用のメモリー内結果セットを表します。

OracleDataSourceEnumeratorクラス

OracleDataSourceEnumeratorオブジェクトは、アプリケーションが、接続するデータ・ソースのコレクションを一般的に取得できるようにします。

OracleDependencyクラス

OracleDependencyクラスは、アプリケーションとOracle Database間の依存関係を表します。

.NETストアド・プロシージャではサポートされません

OracleErrorクラス

OracleErrorオブジェクトは、Oracle Databaseにより報告されるエラーを表します。

OracleErrorCollectionクラス

OracleErrorCollectionオブジェクトは、OracleErrorのコレクションを表します。

OracleExceptionクラス

OracleExceptionオブジェクトは、Oracle Data Provider for .NETでエラーが発生した場合にスローされる例外を表します。

OracleFailoverEventArgsクラス

OracleFailoverEventArgsクラスは、OracleConnection.Failoverイベントのイベント・データを提供します。

.NETストアド・プロシージャではサポートされません

OracleFailoverEventHandlerデリゲート

OracleFailoverEventHandlerは、OracleConnection.Failoverイベントを処理するメソッドの署名を表します。

.NETストアド・プロシージャではサポートされません

OracleGlobalizationクラス

OracleGlobalizationクラスは、セッション、スレッドおよびローカル・コンピュータのOracleグローバリゼーション設定(読取り専用)の取得および設定に使用されます。

OracleHAEventArgsクラス

OracleHAEventArgsクラスは、OracleConnection.HAEventイベントのイベント・データを提供します。

OracleHAEventHandlerデリゲート

OracleHAEventHandlerデリゲートは、OracleConnection.HAEventイベントを処理するメソッドの署名を表します。

OracleInfoMessageEventArgsクラス

OracleInfoMessageEventArgsオブジェクトは、OracleConnection.InfoMessageイベントのイベント・データを提供します。

OracleInfoMessageEventHandlerデリゲート

OracleInfoMessageEventHandlerデリゲートは、OracleConnection.InfoMessageイベントを処理するメソッドの署名を表します。

OracleNotificationEventArgsクラス

OracleNotificationEventArgsクラスでは、通知にイベント・データを提供します。

OracleNotificationRequestクラス

OracleNotificationRequestクラスは、データベース内でサブスクライブする通知要求を表します。

.NETストアド・プロシージャではサポートされません

OracleParameterクラス

OracleParameterオブジェクトは、OracleCommandのパラメータを表します。

OracleParameterCollectionクラス

OracleParameterCollectionオブジェクトは、OracleParameterのコレクションを表します。

OraclePermissionクラス

OraclePermissionオブジェクトを使用すると、ODP.NETで強制的セキュリティを適用でき、ユーザーのセキュリティ・レベルがデータへのアクセスに十分であることを保証するのに役立ちます。

OraclePermissionAttributeクラス

OraclePermissionAttributeオブジェクトを使用すると、ODP.NETで宣言的セキュリティを適用でき、ユーザーのセキュリティ・レベルがデータへのアクセスに十分であることを保証するのに役立ちます。

OracleRowsCopiedEventHandlerデリゲート

OracleRowsCopiedEventHandlerデリゲートは、OracleBulkCopyオブジェクトのOracleRowsCopiedイベントを処理するメソッドを表します。

OracleRowsCopiedEventArgsクラス

OracleRowsCopiedEventArgsクラスは、OracleRowsCopiedイベントのイベント・データの一部として渡された引数のセットを表します。

OracleRowUpdatedEventArgsクラス

OracleRowUpdatedEventArgsオブジェクトは、OracleDataAdapter.RowUpdatedイベントのイベント・データを提供します。

OracleRowUpdatedEventHandlerデリゲート

OracleRowUpdatedEventHandlerデリゲートは、OracleDataAdapter.RowUpdatedイベントを処理するメソッドの署名を表します。

OracleRowUpdatingEventArgsクラス

OracleRowUpdatingEventArgsオブジェクトは、OracleDataAdapter.RowUpdatingイベントのイベント・データを提供します。

OracleRowUpdatingEventHandlerデリゲート

OracleRowUpdatingEventHandlerデリゲートは、OracleDataAdapter.RowUpdatingイベントを処理するメソッドの署名を表します。

OracleTransactionクラス

OracleTransactionオブジェクトは、ローカル・トランザクションを表します。

.NETストアド・プロシージャではサポートされません

OracleXmlQueryPropertiesクラス

OracleXmlQueryPropertiesオブジェクトは、XmlCommandTypeプロパティがQueryである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

OracleXmlSavePropertiesクラス

OracleXmlSavePropertiesオブジェクトは、XmlCommandTypeプロパティがInsert、UpdateまたはDeleteである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

Oracle.DataAccess.Clientの列挙

表1-2に、クライアントの列挙をリストします。

表1-2 Oracle.DataAccess.Clientの列挙

列挙

説明

FailoverEventの列挙

FailoverEventの列挙値は、フェイルオーバーの状態を指定するのに使用されます。

.NETストアド・プロシージャではサポートされません

FailoverReturnCodeの列挙

FailoverReturnCodeの列挙値はアプリケーションによってODP.NETプロバイダに渡され、フェイルオーバーにエラーが起きた場合に再試行を要求するか、またはフェイルオーバーが成功した場合に続行します。

.NETストアド・プロシージャではサポートされません

FailoverTypeの列挙

FailoverTypeの列挙値は、呼び出されたフェイルオーバー・イベントのタイプを示すのに使用されます。

.NETストアド・プロシージャではサポートされません

OracleAQDequeueModeの列挙

OracleAQDequeueModeの列挙型は、デキュー・モードを指定します。

OracleAQMessageDeliveryModeの列挙

OracleAQMessageDeliveryModeの列挙型は、メッセージの配信モードを指定します。

OracleAQMessageStateの列挙

OracleAQMessageStateの列挙型は、デキュー時のメッセージの状態を示します。

OracleAQMessageTypeの列挙

OracleAQMessageTypeの列挙型は、メッセージのペイロード・タイプを指定します。

OracleAQNavigationModeの列挙

OracleAQNavigationModeの列挙型は、ナビゲーション・モードを指定します。

OracleAQNotificationGroupingTypeの列挙

OracleAQNotificationGroupingTypeの列挙型は、通知グループ化タイプを指定します。

OracleAQNotificationTypeの列挙

OracleAQNotificationTypeの列挙型は、受信した通知の通知タイプを指定します。

OracleAQVisibilityModeの列挙

OracleAQVisibilityModeの列挙型は、エンキュー操作またはデキュー操作が現行トランザクションの一部であるかどうかを指定します。

OracleBulkCopyOptionsの列挙

OracleBulkCopyOptionsの列挙は、OracleBulkCopyクラスのインスタンスと組み合せることができ、列挙の動作とインスタンスのWriteToServerメソッドの動作を識別するオプションとして使用可能な値を指定します。

OracleCollectionTypeの列挙

OracleCollectionTypeの列挙値により、OracleParameterオブジェクトがコレクションを表しているかどうか、表している場合はコレクション型を指定しているかどうかが特定されます。

.NETストアド・プロシージャではサポートされません

OracleDBShutdownModeの列挙

OracleDBShutdownModeの列挙値は、データベース停止オプションを指定します。

OracleDBStartupModeの列挙

OracleDBStartupModeの列挙値は、データベース起動オプションを指定します。

OracleDbTypeの列挙

OracleDbTypeの列挙値は、OracleParameterのOracleDbTypeを明示的に指定する際に使用されます。

OracleHAEventSourceの列挙

OracleHAEventSourceの列挙は、HAイベントのソースを示します。

OracleHAEventStatusの列挙

OracleHAEventStatusの列挙は、HAイベント・ソースのステータスを示します。

OracleNotificationInfoの列挙

OracleNotificationInfo列挙値は、通知を引き起こすデータベース・イベントを示します。

.NETストアド・プロシージャではサポートされません

OracleNotificationSourceの列挙

OracleNotificationSource列挙値は、通知を引き起こす様々なソースを指定します。

.NETストアド・プロシージャではサポートされません

OracleNotificationTypeの列挙

OracleNotificationType列挙値は、通知を引き起こす様々なタイプを指定します。

.NETストアド・プロシージャではサポートされません

OracleParameterStatusの列挙

OracleParameterStatusの列挙型は、NULL値が列からフェッチされたかどうか、フェッチ時に切捨てが行われたかどうか、またはNULL値がデータベース列に挿入されるかどうかを指定します。

OracleRowidInfoの列挙

OracleRowidInfoの列挙値は、ROWID情報をChangeNotificationEventArgsの一部として含めるかどうかを指定します

OracleXmlCommandTypeの列挙

OracleXmlCommandType列挙は、OracleCommandクラスのOracleXmlCommandTypeプロパティに対して許可されている値を指定します。

Oracle.DataAccess.Typesネームスペース

Oracle.DataAccess.Typesネームスペースは、Oracle Data Provider for .NETで使用できるOracleネイティブ・データ型のクラス、構造および例外を提供します。

Oracle.DataAccess.Typesの構造

表1-3に、型の構造をリストします。

表1-3 Oracle.DataAccess.Typesの構造

構造

説明

OracleBinary構造

OracleBinary構造は、バイナリ・データの可変長ストリームを表します。

OracleDate構造

OracleDate構造は、Oracle DATEデータ型を表します。

OracleDecimal構造

OracleDecimal構造は、データベース内のOracle NUMBERまたは任意のOracleの数値を表します。

OracleIntervalDS構造

OracleIntervalDS構造は、Oracle INTERVAL DAY TO SECONDデータ型を表します。

OracleIntervalYM構造

OracleIntervalYM構造は、Oracle INTERVAL YEAR TO MONTHデータ型を表します。

OracleString構造

OracleString構造は、文字の可変長ストリームを表します。

OracleTimeStamp構造

OracleTimeStamp構造は、Oracle TimeStampデータ型を表します。

OracleTimeStampLTZ構造

OracleTimeStampLTZ構造は、Oracle TIMESTAMP WITH LOCAL TIME ZONEデータ型を表します。

OracleTimeStampTZ構造

OracleTimeStampTZ構造は、Oracle TIMESTAMP WITH TIME ZONEデータ型を表します。

Oracle.DataAccess.Typesの例外

タイプの例外は、ODP.NETタイプの構造によってのみスローされます。表1-4に、タイプの例外をリストします。

表1-4 Oracle.DataAccess.Typesの例外

例外

説明

OracleTypeExceptionクラス

OracleTypeExceptionオブジェクトは、ODP.NETタイプのクラスで発生する例外を処理するためのベース例外クラスです。

OracleNullValueExceptionクラス

OracleNullValueExceptionは、NULLのODP.NETタイプ構造にアクセスを試みたときにスローされる例外を表します。

OracleTruncateExceptionクラス

OracleTruncateExceptionクラスは、ODP.NETタイプのクラスで切捨てが行われた場合にスローされる例外を表します。

Oracle.DataAccess.Typesのクラス

表1-5に、タイプのクラスをリストします。

表1-5 Oracle.DataAccess.Typesのクラス

クラス

説明

OracleArrayMappingAttributeクラス

OracleArrayMappingAttributeクラスは、カスタム・タイプがOracleコレクション型を表すとき、ODP.NETが使用する情報でカスタム・クラスのフィールドまたはプロパティをマークする必要があります。

OracleBFileクラス

OracleBFileは、BFILEデータへの参照が含まれるオブジェクトです。このオブジェクトは、BFILEオブジェクトに対して操作を実行するためのメソッドを提供します。

OracleBlobクラス

OracleBlobオブジェクトは、BLOBデータへの参照が含まれるオブジェクトです。このオブジェクトは、BLOBオブジェクトに対して操作を実行するためのメソッドを提供します。

OracleClobクラス

OracleClobは、CLOBデータへの参照が含まれるオブジェクトです。このオブジェクトは、CLOBオブジェクトに対して操作を実行するためのメソッドを提供します。

OracleCustomTypeMappingAttributeクラス

OracleCustomTypeMappingAttributeクラスは、カスタム・タイプがOracle UDTを表すために使用されるとき、カスタム・タイプ・ファクトリ・クラスまたはODP.NETで使用される情報の構造体をマークするために使用されます。

OracleObjectMappingAttributeクラス

OracleObjectMappingAttributeクラスは、カスタム・タイプがOracleオブジェクト型を表す際に、ODP.NETが使用する情報でカスタム・クラス・フィールドまたはプロパティをマークします。

OracleRefクラス

OracleRefインスタンスは、データベース内にある永続的でスタンドアロンの参照可能なオブジェクトを参照するOracle REFを表します。OracleRefオブジェクトは、Oracle REFを挿入、更新および削除するメソッドを提供します。

OracleRefCursorクラス

OracleRefCursorオブジェクトは、Oracle REF CURSORを表します。

OracleUdtクラス

OracleUdtクラスは、カスタム・タイプからOracle UDTを変換、またはその逆を実行する際に使用される静的メソッドを定義します。

OracleXmlStreamクラス

OracleXmlStreamオブジェクトは、OracleXmlTypeオブジェクトに格納されているXMLデータの順次読取り専用ストリームを表します。

OracleXmlTypeクラス

OracleXmlTypeオブジェクトは、Oracle XMLTypeインスタンスを表します。

Oracle.DataAccess.Typesのインタフェース

表1-6に、タイプのインタフェースをリストします。

表1-6 Oracle.DataAccess.Typesのインタフェース

インタフェース

説明

IOracleArrayTypeFactoryインタフェース

ODP.NETはIOracleArrayTypeFactoryインタフェースを使用して、Oracleコレクションを表す配列を作成します。

IOracleCustomTypeインタフェース

IOracleCustomTypeはカスタム・タイプとOracleオブジェクトまたはコレクション・タイプ間の変換に関するインタフェースです。

IOracleCustomTypeFactoryインタフェース

ODP.NETはIOracleCustomTypeFactoryインタフェースを使用して、Oracleオブジェクトまたはコレクションを表すカスタム・オブジェクトを作成します。

INullableインタフェース

INullableインタフェースは、ODP.NETタイプにNULL値があるかどうかを判定するために使用されます。

Oracle.DataAccess.Typesの列挙

表1-7に、タイプの列挙をリストします。

表1-7 Oracle.DataAccess.Typesの列挙

列挙

説明

OracleUdtFetchOptionの列挙

OracleUdtFetchOptionの列挙値は、参照可能なオブジェクトのコピーの取得方法を指定します。

OracleUdtStatusの列挙

OracleUdtStatusの列挙値は、オブジェクト属性またはコレクション要素の状態を指定します。オブジェクト属性またはコレクション要素は、有効な値またはNULL値になります。

単純なアプリケーションでのODP.NETクライアント・プロバイダの使用

次に、Oracleデータベースに接続し、切断する前にそのバージョン番号を表示する単純なC#アプリケーションを示します。

// C#

using System;
using Oracle.DataAccess.Client;

class Sample
{
static void Main()
{
// Connect to Oracle
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Display Version Number
Console.WriteLine("Connected to Oracle " + con.ServerVersion);

// Close and Dispose OracleConnection
con.Close();
con.Dispose();
}
}

注意:
その他のサンプルは、ORACLE_BASE\ORACLE_HOME\ODP.NET\Samplesディレクトリに提供されています。

2 Oracle Data Provider for .NETのインストールおよび構成

この章ではOracle Data Provider for .NETのインストールおよび構成の要件を説明します。

この章の内容は次のとおりです。

- システム要件

- Oracle Data Provider for .NETバージョニング体系

- Oracle Data Provider for .NETのインストール

- Oracle Data Provider for .NETの構成

- データベース通知をリスニングするポートの構成

- 一般的な.NETプログラミング推奨およびODP.NETのヒント

システム要件

Oracle Data Provider for .NETには次のシステム要件が必要です。

- Windowsオペレーティング・システム

- 32ビット: Windows 7(Professional、 EnterpriseおよびUltimateの各エディション)、Windows Vista(Business、 EnterpriseおよびUltimateの各エディション)、Windows Server 2008(Standard、Enterprise、Datacenter、WebおよびFoundationの各エディション)、Windows Server 2003 R2(すべてのエディション)、Windows Server 2003(すべてのエディション)、またはWindows XP Professional Edition。
これらのオペレーティング・システムでは、x86での32ビットODP.NET、AMD64およびIntel EM64Tプロセッサがサポートされています。

- 64ビット: Windows 7 x64(Professional、 EnterpriseおよびUltimateの各エディション)、Windows Vista x64(Business、EnterpriseおよびUltimateの各エディション)、Windows Server 2008 R2 x64 (Standard、Enterprise、Datacenter、 WebおよびFoundationの各エディション)、Windows Server 2008 x64 (Standard、Enterprise、Datacenter、 WebおよびFoundationの各エディション)、Windows Server 2003 x64(すべてのエディション)、Windows Server 2003 R2 x64(すべてのエディション)、またはWindows XP x64。
これらのオペレーティング・システムでは、Windows x64の32ビットODP.NETおよび64ビットODP.NETがサポートされています。

注意:
ODP.NETでは、Itaniumシステムはサポートされていません。

- Microsoft .NET Framework

- ODP.NET for .NET Framework 2.0は、Microsoft .NET Framework 2.0、3.0または3.5でのみサポートされます。

- ODP.NET for .NET Framework 4は、Microsoft .NET Framework 4または.NET Framework 4 Client Profileでのみサポートされます。

- Oracle9i Databaseリリース2以降へのアクセス

- Oracle Clientリリース11.2
これは、ODP.NETインストールの一部として自動的にインストールされます。

追加のシステム要件は次のとおりです。

- 昇格可能なトランザクションおよび分散トランザクションを使用するアプリケーションには、Oracle Services for Microsoft Transaction Server 11.2が必要です。ODP.NETでは、分散トランザクションにコミット読取り分離レベルのみがサポートされています。

- スキーマ・ベースのXMLTypeでOracleXmlStreamおよびOracleXmlTypeクラスを使用するアプリケーションには、Oracle Database 10gリリース1(10.1)以降へのアクセスが必要です。

関連項目:

- 様々なODP.NETバージョンでサポートされる構成の詳細は、My Oracle Support(旧OracleMetaLink)でドキュメント726240.1を参照してください。My Oracle Supportには、次からアクセスできます。
https://support.oracle.com

- http://msdn.microsoft.com/netframework

Oracle Data Provider for .NETバージョニング体系

11.2.0.1.2以降、Oracle Data Provider for .NETには、.NET Framework 2.0および.NET Framework 4用に1セットずつ、2セットのバイナリが用意されています。

たとえば、ODP.NET 11.2.0.1.2のバイナリは次のようになります。

- ODP.NET for .NET Framework 4

- Oracle.DataAccess.dll

- .NET Framework 4により作成

- アセンブリ・バージョン番号: 4.x.x.x

- OraOps11w.dll

- ODP.NET for .NET Framework 2.0および4で使用

- ODP.NET for .NET Framework 2.0

- Oracle.DataAccess.dll

- .NET Framework 2.0により作成

- アセンブリ・バージョン番号: 2.x.x.x

- OraOps11w.dll

- ODP.NET for .NET Framework 2.0および4で使用

ODP.NETアセンブリ/DLLバージョニングの表記規則は次のとおりです。

n1.o1o2.o3o4.o5

ここで

- n1は最も重要な.NET Frameworkのバージョン番号です。

- o1o2はODP.NET製品のバージョン番号の最初の2桁です。

- o3o4はODP.NET製品のバージョン番号の3桁目および4桁目です。

- o5oはODP.NET製品のリリース番号の5桁目および最後の桁です。

たとえば、ODP.NET製品のリリース番号が11.2.0.2の場合、対応するODP.NETアセンブリ・バージョンは次のとおりです。

- .NET Framework 4バージョン: 4.112.2.0

- .NET Framework 2.0バージョン: 2.112.2.0

Oracleインストーラおよびマニュアルでは、アセンブリ/DLLバージョン番号ではなく、ODP.NET製品のバージョン番号を参照している点に注意してください。

.NET Frameworkシステム・ライブラリと同様に、アセンブリ・バージョン番号の1桁目はODP.NETアセンブリとともに使用する.NET Frameworkのバージョンを示します。

従来どおりPublisher Policy DLLが提供されているため、旧バージョンのODP.NETにより作成されたアプリケーションは、バージョニング体系が変更されていても、より新しいODP.NETアセンブリにリダイレクトされます。

Oracle Data Provider for .NETのインストール

Oracle Data Provider for .NETはOracle Data Access Components(ODAC)の一部であり、OTNからダウンロードできます。ODAC 11.1.0.6.20から、Oracle Data Provider for .NETはXCopyまたはOracle Universal Installerを使用してインストールできるようになりました。

- XCopy

XCopyは、Oracle Data Provider for .NETを多数のコンピュータに本番デプロイ用にデプロイする場合に、管理者が使用します。インストールおよび構成中のXCopyのインストール・サイズはOracle Universal Installerに比べて小さく、また、XCopyにはファイングレイン・コントロールがあります。

- Oracle Universal Installer(OUI)
開発者および管理者は、Oracle Universal Installerを使用してODP.NETの自動インストールを行います。Oracle Universal Installerには、XCopyに含まれていないドキュメントおよびサンプル・コードが含まれています。

注意:
この項では、Oracle Universal Installerを使用したインストールについて説明します。XCopyを使用したインストールおよび構成については、インストールに含まれているREADME.TXTを参照してください。

さらに、Oracle Data Provider for .NET Dynamic Helpが、Visual Studio .NETとともに登録され、Visual Studio .NET Dynamic Helpとシームレスに統合された文脈依存のオンライン・ヘルプを提供します。Dynamic Helpでは、ユーザーは、ODP.NETのキーワードにカーソルを置き、[F1]キーを押すことで、Visual Studio .NET IDE内のODP.NETドキュメントにアクセスできます。

Oracle Data Provider for .NETは、インストール先のコンピュータのmachine.configファイルに、ADO.NET 2.0およびOracleClientFactoryクラスを使用したアプリケーション用のエントリを作成します。これにより、DbProviderFactoriesクラスがODP.NETを認識できるようになります。

関連項目:
インストール手順については、Oracle Databaseインストレーション・ガイドfor Windowsを参照してください。

インストール後のファイルの場所

Oracle.DataAccess.dllアセンブリは、次の場所にインストールされます。

.NET Framework 2.0:

ORACLE_BASE\ORACLE_HOME\odp.net\bin\2.xディレクトリ

.NET Framework 4:

ORACLE_BASE\ORACLE_HOME\odp.net\bin\4ディレクトリ

注意:
対応する.NET Frameworkがマシンにインストールされている場合、Oracle.DataAccess.dllアセンブリもグローバル・アセンブリ・キャッシュ(GAC)に追加されます。これによって、既存のアプリケーションは、新しくインストールされたODP.NETバージョンをすぐに使用して確実に起動できます。ただし、この動作が適切でない場合は、GACからポリシーDLLを削除してください。

ドキュメントおよびreadme.txtファイルは、ORACLE_BASE\ORACLE_HOME\ODP.NET\docディレクトリにインストールされます。

サンプルはORACLE_BASE\ORACLE_HOME\ODP.NET\Samplesディレクトリに指定されます。

非管理DLLの検索順序

ODP.NETは、管理バイナリと非管理バイナリで構成されています。DllPath構成パラメータを使用すれば、依存する非管理Oracle Clientバイナリのロード元の場所ORACLE_BASE\\ORACLE_HOME\binをアプリケーションごとに指定できます。ただし、ORACLE_BASE\\ORACLE_HOMEには、アプリケーションで使用されるものと同じバージョンのODP.NETがインストールされている必要があります。インストールされていない場合、バージョンの不一致による例外がスローされます。

Oracle.DataAccess.dllは、依存する非管理DLL(Oracle Clientなど)を次の順序に基づいて検索します。

1. アプリケーションまたは実行可能ファイルのディレクトリ。

2. アプリケーションの構成ファイルまたはweb.configに指定されたDllPath設定。

3. machine.configに指定されたDllPath設定。

4. Windowsレジストリに指定されたDllPath設定。
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\version\DllPath

5. WindowsのPATH環境変数で指定されたディレクトリ。

ODP.NETのインストール時に、Oracle Universal Installerは、DllPath Windowsレジストリ値を対応する依存DLLがインストールされたORACLE_BASE\\ORACLE_HOME\binディレクトリに設定します。開発者はこの構成情報をアプリケーションごとに指定する必要があります。

新しいバージョンのODP.NETがインストールされると、その新規バージョンに対応したデフォルト値がWindowsレジストリに設定されます。ポリシーDLLがすべてのODP.NET参照をこの新規バージョンのODP.NETにリダイレクトするため、アプリケーションはデフォルト値を使用します。開発者は、このリダイレクトを回避するため、アプリケーションに固有の構成ファイルまたはweb.configファイルを指定する必要があります。構成ファイルの設定は、パッチや新規バージョンが後からインストールされたかどうかにかかわらず、常にアプリケーションに適用されます。

ODP.NET構成ファイル・サポートは 10.2.0.4以降のバージョンでのみ使用可能です。

注意:
.NET Framework 2.0用のOracle.DataAccess.dllおよび.NET Framework 4用のOracle.DataAccess.dllは両方とも同じ非管理DLL(OraOps11w.dll)を使用します。

ODP.NETおよび依存する非管理DLLの不一致

Oracle.DataAccess.dllアセンブリの非管理DLLの正しいバージョンでの使用を強制するため、Oracle.DataAccess.dllが依存する非管理DLLと異なるバージョンをロードすると例外が発生します。

Oracle Data Provider for .NETの構成

ODP.NETの特定のバージョンに対する設定は、いくつかの方法で構成でき、優先順位について次のような特定の影響があります。

- Windowsレジストリ・エントリは、ODP.NETの特定のバージョンに対応するマシン全体の設定です。

- machine.config設定は、.NET Framework全体の設定であり、Windowsレジストリ値より優先されます。

- アプリケーションまたはWeb構成ファイルの設定は、アプリケーション固有の設定であり、machine.configの設定およびWindowsレジストリの設定より優先されます。

- 接続文字列と同等のすべての属性は、他のどの設定値よりも優先されます。

アプリケーションまたはWeb構成ファイルは、1つのコンピュータ上の複数のアプリケーションが同じODP.NETのバージョンを使用する場合に便利で、ときには必須となりますが、各アプリケーションには異なるODP.NET構成が必要です。ODP.NETの特定のバージョンに対してWindowsレジストリ値を設定すると、そのバージョンを使用するすべてのアプリケーションに影響します。ただし、アプリケーションまたはWeb構成ファイル内でODP.NET構成値を持つことにより該当するアプリケーションに対してのみその設定が適用されるため、より細分化して使用できます。

たとえば、アプリケーションまたはweb.configファイルのStatementCacheSize構成設定が100の場合、このアプリケーション固有の設定により、そのアプリケーションがロードするODP.NETのバージョンではStatementCacheSizeに対して100が強制的に使用され、machine.configおよびレジストリ内の設定より優先されます。前のリリース同様、構成ファイル(machine.configまたはアプリケーションおよびWeb構成ファイル)に存在しない設定の場合は、ロードしたODP.NETのバージョンに対応するレジストリ内の値が使用されることに注意してください。

ODP.NETがmachine.configファイルを読み込むのは、ODP.NETのバージョンからではなく、ODP.NETを実行する.NET Frameworkのバージョンからであることに注意してください。

ODP.NETは、メモリーにロードされるとき、WindowsレジストリおよびXML構成ファイルのみを読み込みます。そのため、その後に行われた構成の変更は、アプリケーションを再起動するまで読み込まれず、使用されません。

サポートされる構成設定

ODP.NETは、次のような属性の構成をサポートします。

- Windowsレジストリ内。

- XMLファイル内。

- 接続文字列などの別のメカニズムを使用したとき。または、適用可能な場合、プログラムでODP.NETクラスを使用したとき。

表2-1では、ODP.NETでサポートされる構成可能な各属性について説明します。この表では、「構成サポート」という用語の後に、その属性で使用可能な構成サポートのタイプ(Windowsレジストリ、XMLファイルなど)が続きます。

この表では、各属性のデフォルト値および有効値を示します。

注意:
記載されているデフォルト値は、レジストリ・キーが存在しないか、どこにも構成されていない場合に、属性に対して使用される値です。

表2-1 構成属性

属性/設定名

説明

CheckConStatus

接続を接続プールに戻す前に接続ステータスがチェックされるかどうかを指定します。このレジストリ・エントリは、ODP.NETをインストールしても作成されず、デフォルト値の1が使用されます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

1: 接続のステータスをチェックします。

0: 接続のステータスをチェックしません。

デフォルト: 1

DbNotificationPort

変更通知、HA、またはRLB機能についてデータベースから送信されるすべての通知をODP.NETがリスニングするポート番号を指定します。無効なポート番号または使用されているポート番号が指定されている場合でもODP.NETはエラーをスローしません。OracleDependency.Port staticフィールドを指定すれば、WindowsレジストリおよびXML構成ファイルより優先するようにポートを設定できます。

構成サポート:

XMLファイルおよびODP.NETクラス

有効な値:

-1: 使用されていないポートがランダムに開き、リスニングします。

n > = 0: ポートnをリスニングします。

デフォルト: -1

DemandOraclePermission

ODP.NETを使用して、データベースにアクセスしようとする.NETアプリケーションのOraclePermissionをODP.NETで要求するかどうかを指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: OraclePermissionの要求を無効化します。

1: OraclePermissionの要求を有効化します。

デフォルト: 0

DllPath

依存する非管理Oracle Clientバイナリのロード元を指定します。

構成サポート: WindowsレジストリおよびXMLファイル

有効な値:

依存する非管理Oracle Clientバイナリが格納される場所のパス。

デフォルト: ORACLE_BASE\\ORACLE_HOME\bin

DynamicEnlistment

OracleConnection.Openメソッドが起動した後にEnlistTransaction()またはEnlistDistributedTransaction()を通じてアプリケーションが分散トランザクションに明示的に登録されるかどうかを指定します。プログラムによって動的に登録できるようにODP.NETを構成するには、接続文字列に"enlist=dynamic"を含める必要があります。

構成サポート:

Windowsレジストリ、XMLファイルおよび"enlist"接続文字属性

有効な値:

0: 分散トランザクションに明示的に登録する機能を無効にします。

1: 分散トランザクションに明示的に登録する機能を有効にします。

デフォルト: 0

FetchSize

データベース・ラウンドトリップからフェッチしたデータをODP.NETがキャッシュするために割り当てる合計メモリー・サイズをバイト単位で指定します。この値は、OracleCommandおよびOracleDataReader FetchSizeプロパティでも設定できます。

構成サポート:

Windowsレジストリ、XMLファイルおよびODP.NETクラス

有効な値:

0 <= n <= int.MaxValue: nは、バイト単位のキャッシュ・サイズです。

デフォルト: 131072

MaxStatementCacheSize

自動チューニングが有効化されている場合にキャッシュできる文の最大数を指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0からSystem.Int32.MaxValue。

デフォルト: 100

MetaDataXml

ADO.NET 2.0のGetSchemaメソッドが返すメタデータを取得するための問合せをカスタマイズするXMLファイルの名前を指定します。MetaDataXmlは、構成ファイルでのみ設定できます。

構成サポート:

XMLファイルのみ

有効な値:

XMLファイルの完全ファイル名。

デフォルト: なし

PerformanceCounters

接続プーリングのパフォーマンス・カウンタの公開を有効または無効にします。複数のパフォーマンス・カウンタは、有効な値を追加することで取得できます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: 有効ではありません。

1: Oracle Databaseで毎秒確立されるセッション数。

2: Oracle Databaseから毎秒切断されるセッション数。

4: 接続プールから毎秒確立されるアクティブな接続数。

8: 接続プールから毎秒戻されるアクティブな接続数。

16:アクティブな接続の合計数。

32: 非アクティブな接続プール数。

64: 使用中の接続の合計数。

128: すべての接続プールで使用可能な接続の合計数。

256: プールされているアクティブな接続の数。

1024: プールされていないアクティブな接続の数。

2048: まもなくプールで利用可能になる接続数。ユーザーはこれらの接続をクローズしましたが、使用可能な接続としてプールに戻される前の、トランザクション完了などのアクション待ちになっています。

4095: 前述のすべて。

デフォルト: 0

PromotableTransaction

最初の接続がTransactionScopeオブジェクトに関与するときに使用されるトランザクションのタイプを指定します。

構成サポート:

Windowsレジストリ、XMLファイルおよびpromotable transaction接続文字列属性

有効な値:

local: TransactionScopeオブジェクトで開いた最初の接続は、ローカル・トランザクションを使用します。

promotable: 同じTransactionScopeオブジェクトで開いた最初の接続およびすべての後続の接続は、同じ分散トランザクションに登録されます。

デフォルト: promotable

SelfTuning

ODP.NETアプリケーションに対して自動チューニングが有効かどうかを指定します。

構成サポート:

Windowsレジストリ、XMLファイルおよびSelf Tuning接続文字属性

有効な値:

0: 自動チューニングは無効です。レジストリまたはXMLファイルで使用されます。

false: 自動チューニングは無効です。Self Tuning接続文字列属性で使用されます。

1: 自動チューニングは有効です。レジストリまたはXMLファイルで使用されます。

true: 自動チューニングは有効です。Self Tuning接続文字列属性で使用されます。

デフォルト: 1

StatementCacheSize

各接続についてデータベースでキャッシュされるカーソルおよび文の数を指定します。この設定は、接続文字列のStatement Cache Size属性に対応します。値が0を超える場合も文のキャッシングが有効になります。

構成サポート:

Windowsレジストリ、XMLファイルおよびStatement Cache Size接続文字列属性

有効な値:

0 <= n <= init.oraデータベース構成ファイルで設定されるOPEN_CURSORSパラメータの値。

nは設定する数値です。

デフォルト: 0

StatementCacheWithUdts

SELECT文を実行したときに取得されるOracle UDTが、文のキャッシュ内の文とともにキャッシュされるどうかを指定します。この設定は、アプリケーションのメモリーの使用量およびパフォーマンスに影響します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: Oracle UDTは文とともにキャッシュされません。

1: Oracle UDTは文とともにキャッシュされます。

デフォルト: 1

ThreadPoolMaxSize

プロセス内で使用可能な各プロセッサに対するワーカー・スレッドのデフォルトの最大サイズを指定します。この値は、ODP.NETにおける、このスレッド・プールを使用した接続の作成、コマンドの実行のタイムアウト、外部プロシージャ(extproc)のパフォーマンスに影響を与える場合がありますが、スレッド・プールの最大サイズを必要以上に増加させると、パフォーマンス上の問題が発生する可能性があります。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0 <= n <= int.MaxValue: ODP.NETは、値nを使用してスレッド・プールの最大サイズをリセットできます。この値が無効の場合、ODP.NETのリセット操作は無視されます。たとえば、nがシステムで使用可能なプロセッサ数より少ない場合などです。この場合の結果は、値が-1の場合と同じになります。

-1: スレッド・プールの最大サイズをそのままにします。

デフォルト: -1(このレジストリ・エントリはデフォルトでは作成されません)

ODAC 2007より前またはリリース11.1.0.6.20より前のリリースでは、ODP.NETは、OracleCommand.CommandTimeoutプロパティが0より大きい値に設定されている場合、スレッド・プールの最大サイズをint.MaxValueにリセットすることに注意してください。この誤った動作は修正され、スレッド・プールの最大サイズはOracleCommand.CommandTimeoutによって変更されなくなりました。

TraceFileName

トレース情報のロギングに使用されるファイル名を指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

有効なディレクトリの場所およびファイル名。

デフォルト: c:\odpnet2.trc(.NET Framework 2.0の場合)

TraceLevel

ODP.NETのトレース・レベルを指定します。すべてのオブジェクトに対するすべての開始および終了コールをトレースするのは過剰になる場合があるため、TraceLevelは、トレース対象をプロバイダの特定の領域に制限するように指定します。各有効値は、指定可能なトレース・レベルを示します。有効値を追加すれば、複合されたトレース・レベルを取得できます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: なし

1: 開始、終了およびSQL文の情報

2: 接続プーリング統計情報

4: 分散トランザクション(登録および登録解除)

8: 非管理例外におけるユーザーモード・ダンプの作成

16: HAイベント情報

32: ロード・バランシング情報

64: 自動チューニング情報

127: 前述のすべて

デフォルト: 0

注意: ODP.NETは、値に対するビットのチェックは行いません。トレースを有効にすると、トレース・ファイルへのロギングがODP.NETのパフォーマンスに影響する可能性があります。

注意: ユーザーモード・ダンプの作成には、dbghelp.dllバージョン 5.1.2600.0以上が必要です。

TraceOption

トレース情報を1つのファイルに記録するか、スレッドごとの複数のファイルに記録するかを指定します。単一トレース・ファイルを指定した場合は、TraceFileNameに指定されたファイル名が使用されます。複数トレース・ファイル・オプションが要求された場合は、指定されたファイル名にスレッドIDが付加され、スレッドごとにトレース・ファイルが作成されます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: 単一のトレース・ファイル

1: 複数のトレース・ファイル

デフォルト: 0

UdtCacheSize

ODP.NETがOracle UDTを取得して操作するために使用する各接続のオブジェクト・キャッシュのサイズをKB単位で指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0 <= n <= 4194303で、nは設定する数値です。

デフォルト: 4096

UDT Mapping

カスタム・タイプとデータベースのOracle UDTのマッピングを指定します。マッピングは、構成ファイルおよびカスタム・タイプ・ファクトリで指定できますが、マッピングが両方で指定されている場合は、構成ファイルで指定されたマッピングが、カスタム・タイプ・ファクトリを使用して指定されたマッピングより優先されます。

構成サポート:

XMLファイルおよびカスタム・タイプ・ファクトリ・クラス

有効な値:

有効なマッピング

デフォルト: なし

Windowsレジストリ

インストール後、ODP.NETは、Windowsレジストリ内の構成およびトレースのエントリを作成します。構成およびトレース・レジストリの値は、Oracleクライアントのインストールを実行しているすべてのODP.NETアプリケーションに適用されます。各ODP.NETアプリケーションは、値(たとえば、FetchSize)をODP.NETアプリケーション自身内で構成することで、これらの値をオーバーライドできます。また、.NET構成ファイルを使用してODP.NETのWindowsレジストリ値をオーバーライドすることもできます。

ODP.NETレジストリ値は、HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\version\にあります。.NET Framework 2.0、3.0および3.5に1つのキー、.NET Framework 4以上に1つのキーがあります。

注意:
x64ベース・バージョンのWindowsで動作する32ビット・アプリケーションは、レジストリ・サブキーにHKEY_LOCAL_MACHINE\SoftwareではなくHKEY_LOCAL_MACHINE\Software\WOW6432nodeを使用します。このようなアプリケーションがOracle Data Provider for .NET (32ビット)を使用する場合は、ODP.NETのレジストリ値がHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oracle\ODP.NET\version\に格納されます。

構成ファイル・サポート

1つのバージョンのODP.NETに依存したコンピュータに多数のアプリケーションを保有する顧客の場合、特定のバージョンのODP.NETに対するWindowsレジストリの設定は、そのバージョンのODP.NETを使用するすべてのアプリケーションに対して必ずしも適用可能ではありません。より粒度の高い制御を提供するため、ODP.NET構成ファイル・サポートでは、開発者がODP.NETの構成設定をアプリケーションの構成ファイル、web.configファイルまたはmachine.configファイルに指定することができます。

ODP.NETバージョン・レベルの構成設定を超える粒度の制御が不要な場合、構成ファイルを使用してODP.NETの構成設定を指定する必要はありません。

次に、.NET Framework 2.0以上に対応した web.configファイルの例を示します。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<oracle.dataaccess.client>
<settings>
<add name="DllPath"               value="C:\oracle\bin"/>
<add name="FetchSize"             value="131072"/>
<add name="PromotableTransaction" value="promotable"/>
<add name="StatementCacheSize"    value="10"/>
<add name="TraceFileName"         value="C:\odpnet2.trc"/>
<add name="TraceLevel"            value="63"/>
<add name="TraceOption"           value="1"/>
</settings>
</oracle.dataaccess.client>
</configuration>

構成ファイルのサンプル

次に、.NET Framework 2.0を使用するODP.NETに対応したapp.configの例を示します。いくつかの追加属性と、UDTタイプの2つのマッピングが設定されています。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<oracle.dataaccess.client>
<settings>
<add name="DbNotificationPort" value="-1"/>
<add name="DllPath" value="C:\app\user\product\11.1.0\client_1\bin"/>
<add name="DynamicEnlistment" value="0"/>
<add name="FetchSize" value="131072"/>
<add name="MetaDataXml" value="CustomMetaData.xml"/>
<add name="PerformanceCounters" value="4095"/>
<add name="PromotableTransaction" value="promotable"/>
<add name="StatementCacheSize" value="50"/>
<add name="ThreadPoolMaxSize" value="30"/>
<add name="TraceFileName" value="c:\odpnet2.trc"/>
<add name="TraceLevel" value="0"/>
<add name="TraceOption" value="0"/>
<add name="Person" value="udtMapping factoryName='PersonFactory, Sample,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' typeName='PERSON'
schemaName='SCOTT' dataSource='oracle'"/>
<add name="Student" value="udtMapping factoryName='StudentFactory, Sample,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' typeName='STUDENT'
schemaName='SCOTT'"/>
</settings>
</oracle.dataaccess.client>
</configuration>

データベース通知をリスニングするポートの構成

次の機能が使用される場合に、Oracle Data Provider for .NETはデータベース通知をリスニングするためのポートをオープンします。

- HAイベント

- ロード・バランス

- Database change notification

- AQ通知

これらの機能はすべて同一のポートを共有します。このポートは、アプリケーション構成ファイルまたはWeb構成ファイルにdb notifications portを設定することで、一元的に構成できます。

構成ファイルが存在しないか、db notification portが指定されていない場合、ODP.NETは有効なポート番号をランダムに使用します。構成ファイルにdb notification portの値として-1を指定した場合も、ランダムなポートが要求されます。1200など特定のポートを指定するには、アプリケーション構成ファイルまたはWeb構成ファイルを次のように使用します。

<configuration>
<oracle.dataaccess.client>
<settings>
<add name="DbNotificationPort" value="1200"/>
</settings>
</oracle.dataaccess.client>
</configuration>

ポート番号は、コンピュータで実行されるプロセスごとに一意にする必要があります。そのため、ポート番号は、プログラムによって、またはアプリケーション構成ファイルを使用して、アプリケーションごとに一意に指定する必要があります。指定したポート番号がすでに使用中または無効の場合も、ODP.NETではエラーが表示されないことに注意してください。

ODP.NETが使用するプロセスが開始されると、アプリケーションはdb notification portの番号を読み込み、そのポートをリスニングします。ポートがオープンされると、ポート番号はプロセスの存続中に変更されます。

関連項目:

- HAイベント

- ランタイム接続ロード・バランシング

- Database Change Notificationサポート

- Oracle Streamsアドバンスト・キューイングのサポート

一般的な.NETプログラミング推奨およびODP.NETのヒント

- Thread.Abort()は使用しないでください。非管理リソースが解放されず、メモリーのリークおよびハングの原因になる可能性があります。

- リソース使用率を最適化するには、OracleConnectionやOracleCommandなどのODP.NETオブジェクトが不要になったときに、オブジェクトのクローズまたは破棄、あるいはその両方を明示的に行う必要があります。.NET Frameworkのガベージ・コレクタによるリソースの再生に頼るのではなく、この作業を行ってください。ストレス条件下ではCloseまたはDisposeの明示的なコールによってリソース使用率が大幅に低下することを多くのユーザーが確認しています。

- System.AccessViolationException、System.Runtime.InteropServices.SEHExceptionなど、メモリー破損に関連するような例外がアプリケーションに発生した場合は、アプリケーションの実行を続行しないことをお薦めします。

- HKEY_LOCAL_MACHINE\Software\Oracle\NLS_LANGレジストリ・エントリがNAに設定されていると、ODP.NETでORA-12705エラーが発生します。この問題を解決するには、HKEY_LOCAL_MACHINE\Software\Oracle\NLS_LANGレジストリ・エントリを削除します。

3 Oracle Data Provider for .NETの機能

この章では、Oracle Data Provider for .NETのプロバイダ固有の機能と、この機能を使用して.NETアプリケーションを開発する方法について説明します。

この章の内容は次のとおりです。

- Oracle Databaseへの接続

- ADO.NET 2.0の機能

- ADO.NET Entity FrameworkおよびLINQ to Entities

- OracleCommandオブジェクト

- ODP.NETタイプの概要

- OracleDataReaderオブジェクトからのデータの取得

- PL/SQL REF CURSORおよびOracleRefCursor

- 暗黙的なREF CURSORのバインド

- LOBサポート

- ODP.NET XMLサポート

- Oracleユーザー定義タイプ(UDT)および.NETカスタム・タイプ

- Oracle Streamsアドバンスト・キューイングのサポート

- Database Change Notificationサポート

- OracleDataAdapter Safeタイプ・マッピング

- OracleDataAdapterのRequeryプロパティ

- データベースへのDataSetの更新における一意性の保証

- グローバリゼーション・サポート

- デバッグ・トレース

Oracle Databaseへの接続

Oracle Data Provider for .NETは、ユーザー名とパスワード、Windowsのネイティブ認証、Kerberos、Secure Sockets Layer(SSL)の使用など、多くの方法でOracle Databaseに接続できます。この項では、OracleConnectionプロバイダ固有の機能について説明します。内容は次のとおりです。

- 接続文字列属性

- 接続プーリング

- 接続プールの管理

- 接続プール・パフォーマンス・カウンタ

- エディションベースの再定義

- Oracle Real Application Clusters(Oracle RAC)データベースへの接続

- オペレーティング・システム認証

- 特権接続

- パスワードの失効

- プロキシ認証

- 動的な分散トランザクション登録

- クライアント識別子とエンドツーエンド・トレース

- 透過的アプリケーション・フェイルオーバー(TAF)コールバックのサポート

接続文字列属性

表3-1は、サポートされている接続文字列属性のリストです。

表3-1 サポートされている接続文字列属性

接続文字列属性

説明

デフォルト値

Connection Lifetime

接続の最大存続期間(秒)。

0

Connection Timeout

プールから使用可能な接続を待機する最大時間(秒)。

15

Context Connection

trueに設定した場合、暗黙的なデータベース接続が戻されます。

.NETストアド・プロシージャでのみサポートされています。

false

Data Source

接続するデータベースを識別するOracle Netサービス名、接続記述子または簡易接続ネーミング。

空の文字列

DBA Privilege

管理者権限:SYSDBAまたはSYSOPER。

空の文字列

Decr Pool Size

未使用の確立済接続量が過剰となり、クローズされる接続数。

1

Enlist

COM+トランザクションまたはSystem.Transactionsのコンテキストでの接続の登録動作と機能を制御します。

true

HA Events

ODP.NET接続プールを使用して、Oracle RACサービス、サービス・メンバー、データベースまたはノードの停止時に、プールから接続を事前に削除できます。Oracle RAC、Data Guardまたは単一データベースのインスタンスで動作します。

false

Load Balancing

ODP.NET接続プールを使用して、ロード・バランシング・アドバイザリおよびサービスの目的に基づき、Oracle RACインスタンス間の作業要求のバランスを調整できます。

false

Incr Pool Size

プール内のすべての接続が使用された場合に作成される新しい接続の数。

5

Max Pool Size

プール内の接続の最大数。

100

Metadata Pooling

メタデータ情報をキャッシュします。

True

Min Pool Size

プール内の接続の最小数。

1

Password

User Idにより指定されたユーザーのパスワード。

空の文字列

Persist Security Info

接続文字列でのパスワード検索。

false

Pooling

接続プーリング。

true

Promotable Transaction

トランザクションがその存続中にローカルまたは分散かどうかを示します。

promotable

Proxy User Id

プロキシ・ユーザーのユーザー名。

空の文字列

Proxy Password

プロキシ・ユーザーのパスワード。

空の文字列

Self Tuning

接続の自動チューニングを有効化または無効化します。

true

Statement Cache Purge

接続がプールに戻るときの文キャッシュの消去。

false

Statement Cache Size

文キャッシングの有効化と、キャッシュ・サイズ、つまりキャッシュ可能な文の最大数。

0

User Id

Oracleユーザー名。

空の文字列

Validate Connection

プールから発生した接続の検証。

false

次の例は、Oracle Databaseへの接続に接続文字列属性を使用します。

// C#

using System;
using Oracle.DataAccess.Client;

class ConnectionSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

//using connection string attributes to connect to Oracle Database
con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");
}
}

関連項目:

- 接続文字列の詳細は、「OracleConnectionプロパティ」を参照してください。

- 文キャッシングの詳細は、「OracleCommandオブジェクト」を参照してください。

データ・ソース属性の指定

この項では、データ・ソース属性を指定する複数の方法について説明します。

次の例は、tnsnames.oraファイル内のsalesというTNS別名にマップされた接続記述子を示しています。

sales=
(DESCRIPTION=
(ADDRESS= (PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.acme.com)))

TNS別名の使用

TNS別名を使用してscott/tigerとして接続するには、有効な接続は次のようになります。

"user id=scott;password=tiger;data source=sales";

接続記述子の使用

ODP.NETでは、アプリケーションはtnsnames.oraファイルを使用せずに接続することもできます。そのためには、接続記述子全体を"data source"として使用できます。

接続文字列は次のようになります。

"user id=scott;password=tiger;data source=" +
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)" +
"(HOST=sales-server)(PORT=1521))(CONNECT_DATA="+
"(SERVICE_NAME=sales.us.acme.com)))"

簡易接続ネーミング・メソッドの使用

簡易接続ネーミング・メソッドを使用すると、クライアントは構成を行わずにデータベースに接続できます。

簡易接続ネーミング・メソッドを使用する前に、sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータにより、EZCONNECTが次のように指定されていることを確認します。

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

これが有効になっていると、ODP.NETにより、アプリケーションでは"Data Source"属性を次の書式で指定できます。

//host:[port]/[service_name]

同じ例を使用して、有効な接続文字列を次に示します。

"user id=scott;password=tiger;data source=//sales-server:1521/sales.us.acme.com"
"user id=scott;password=tiger;data source=//sales-server/sales.us.acme.com"
"user id=scott;password=tiger;data source=sales-server/sales.us.acme.com"

ポート番号が指定されていない場合、デフォルトで1521が使用されます。

関連項目:
簡易接続ネーミング・メソッドの使用の項に関する詳細および要件は、Oracle Net Services管理者ガイドを参照

接続プーリング

ODP.NET接続プーリングは、Pooling接続文字列属性を使用して有効化または無効化できます。デフォルトでは、接続プーリングは有効です。次に、接続プーリング・サービスの動作を制御するConnectionString属性を示します。

- Connection Lifetime

- Connection Timeout

- Decr Pool Size

- HA Events

- Incr Pool Size

- Load Balancing

- Max Pool Size

- Min Pool Size

- Pooling

- Validate Connection

接続プーリングの例

次の例は、接続プーリングに関連するConnectionString属性を使用して、接続をオープンします。

// C#

using System;
using Oracle.DataAccess.Client;

class ConnectionPoolingSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

//Open a connection using ConnectionString attributes
//related to connection pooling.
con.ConnectionString =
"User Id=scott;Password=tiger;Data Source=oracle;" +
"Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;" +
"Incr Pool Size=5; Decr Pool Size=2";
con.Open();
Console.WriteLine("Connection pool successfully created");

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Connection is placed back into the pool.");
}
}

接続プーリングの使用

接続プーリングが有効な場合(デフォルト)、OracleConnectionオブジェクトのOpenおよびCloseメソッドは、接続プーリング・サービスを暗黙的に使用します。これは、接続をプールしてアプリケーションに戻す処理を担当します。

接続プーリング・サービスは、プールを一意に識別するために、ConnectionStringプロパティを署名として使用して接続プールを作成します。

ConnectionStringプロパティの正確な属性値を持つプールが存在しない場合、接続プーリング・サービスは新しい接続プールを作成します。要求された署名を持つプールがすでに存在する場合、接続はそのプールからアプリケーションに戻されます。

接続プールが作成されると、接続プーリング・サービスは、ConnectionStringのMin Pool Size属性で定義された接続数を最初に作成します。この接続数は、接続プールの接続プーリング・サービスによって常に保持されます。

これらの接続は、常にアプリケーションで使用され、またプール内でも使用できます。

ConnectionStringプロパティのIncr Pool Size属性には、接続プールでより多くの接続が必要になったときに、接続プーリング・サービスで作成される新しい接続の数を定義します。

アプリケーションが接続をクローズすると、接続プーリング・サービスは、接続存続期間がConnection Lifetime属性を超えているかどうかを調べます。超えている場合、接続プーリング・サービスは接続をクローズし、超えていない場合、接続は接続プールに戻ります。接続プーリング・サービスは、接続が接続プールに戻るときのみ、Connection Lifetimeを実行します。

ConnectionStringプロパティのMax Pool Size属性は、接続プールの接続の最大数を設定します。新しい接続が要求されたときに、有効な接続がなく、Max Pool Sizeに達している場合、接続プーリング・サービスは、Connection Timeout属性で定義された時間待機します。Connection Timeoutに達していても、プールに有効な接続がない場合、接続プーリング・サービスは、接続プール要求がタイムアウトしたことを示す例外を呼び出します。

Validate Connection属性は、プールから発生する接続を検証します。この属性は、必要な場合にのみ使用してください。この属性により、データベースへのラウンドトリップが、各接続権をアプリケーションに付与する前に検証するためです。無効な接続が特殊な場合、開発者はValidate Connection属性を使用するのではなく、独自のイベント・ハンドラを作成して、新しい接続を取得および検証できます。通常は、これによりパフォーマンスが改善されます。

接続が使用されていない場合、接続プーリング・サービスは接続をクローズします。接続は3分ごとにクローズされます。ConnectionStringプロパティのDecr Pool Size属性は、接続プーリング・サービスに対して、3分ごとにクローズできる接続の最大数を指定します。

Oracle Data Provider for .NETリリース11.1.0.6.20以降では、接続文字列で"pooling=true"を設定して接続プーリングを有効化することにより(デフォルトで設定されます)、オペレーティング・システムの認証された接続もプールされます。

接続プールの管理

ODP.NET接続プール管理は、ODP.NETアプリケーションに関する明示的な接続プール管理を提供します。アプリケーションは接続プール内の接続を明示的にクリアできます。

接続プール管理を使用すると、アプリケーションは次を実行できます。

注意:
これらのAPIは、.NETストアド・プロシージャではサポートされません。

- ClearPoolメソッドを使用して接続プールから接続をクリアします。

- ClearAllPoolsメソッドを使用して、アプリケーション・ドメイン内のすべての接続プール内の接続をクリアします。

接続がプールからクリアされると、ODP.NETは、少なくとも接続数以上が接続文字列のMin Pool Sizeに設定されている新規接続をプールに再移入します。新規接続の場合、必ずしもプールに有効な接続があるとはかぎりません。たとえば、ClearPoolまたはClearAllPoolsがコールされてデータベース・サーバーが停止すると、新規接続が作成されますが、後でデータベースが起動された場合にデータベースへの接続ができないため、これらの新規接続は無効になります。

データベースへの有効な接続が再作成されるまではClearPoolおよびClearAllPoolsをコールしないでください。.NETの開発者は、有効なデータベース接続が作成されているかどうかを常に確認し、接続が確認された場合にClearPoolまたはClearAllPoolsをコールするプログラムを作成できます。

関連項目:

- 「ClearPool」

- 「ClearAllPools」

接続プール・パフォーマンス・カウンタ

Oracle Data Provider for .NETのインストールにより、ターゲット・システムにパフォーマンス・カウンタのセットが作成されます。これらのパフォーマンス・カウンタはODP.NETにより、各ODP.NETクライアント・アプリケーションに公開されます。また、Windowsパフォーマンス・モニター(Perfmon)を使用して確認できます。

Perfmonでは、管理者はODP.NETカウンタをパフォーマンス・モニター・グラフに追加できます。ODP.NETパフォーマンス・カウンタは、Oracle Data Provider for .NETというカテゴリ名で公開されます。管理者は、Oracle Data Provider for .NETカテゴリを選択した後で、監視するODP.NETカウンタを選択できます。

ODP.NETパフォーマンス・カウンタは、デフォルトでは有効になっていないため、監視する前に、管理者が目的のカウンタを有効にする必要があります。また、Perfmonを使用して監視しようとする場合は、1つ以上のODP.NETインスタンスがアクティブに実行されている必要があります。

Oracle Data Provider for .NETは、レジストリ・エントリを使用して接続プーリングのパフォーマンス・カウンタの公開を有効または無効にします。

表3-2は、有効なレジストリ値を持つ接続プーリングに対して使用されるパフォーマンス・カウンタを示します。

表3-2 接続プーリングのパフォーマンス・カウンタ

パフォーマンス・カウンタ

有効な値

説明

なし

0

無効(デフォルト)

HardConnectsPerSecond

1

Oracle Databaseで毎秒確立されるセッション数。

HardDisconnectsPerSecond

2

Oracle Databaseから毎秒切断されるセッション数。

SoftConnectsPerSecond

4

接続プールから毎秒確立されるアクティブな接続数。

SoftDisconnectsPerSecond

8

接続プールから毎秒戻されるアクティブな接続数。

NumberOfActiveConnectionPools

16

アクティブな接続プールの合計数。

NumberOfInactiveConnectionPools

32

非アクティブな接続プール数。

NumberOfActiveConnections

64

使用中の接続の合計数。

NumberOfFreeConnections

128

すべての接続プールで使用可能な接続の合計数。

NumberOfPooledConnections

256

プールされているアクティブな接続の数。

NumberOfNonPooledConnections

512

プールされていないアクティブな接続の数。

NumberOfReclaimedConnections

1024

暗黙的にガベージ・コレクションに入った接続数。

NumberOfStasisConnections

2048

まもなくプールで利用可能になる接続数。ユーザーはこれらの接続をクローズしましたが、使用可能な接続としてプールに戻される前の、トランザクション完了などのアクション待ちになっています。

パフォーマンス・カウンタの公開

パフォーマンス・カウンタの公開を個別に有効または無効にするには、タイプREG_SZのレジストリ値PerformanceCountersを使用します。このレジストリ値は次のようになります。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Version

Assembly_Versionは、Oracle.DataAccess.dllの完全なアセンブリ・バージョン番号です。

複数のパフォーマンス・カウンタは、有効な値を追加することで取得できます。たとえば、PerformanceCountersが3に設定されている場合、HardConnectsPerSecondおよびHardDisconnectsPerSecondは有効になります。

app.configエントリを使用したパフォーマンス・カウンタの設定

app.configエントリを使用して、パフォーマンス・カウンタを設定できます。app.configエントリはレジストリ値の設定よりも優先されるため、特定のアプリケーションに使用できます。

app.configエントリは、次の例のように名前/値ペアを使用します。

<configuration>
<oracle.dataaccess.client>
<settings>
<add name="PerformanceCounters"
value="3"/>
</settings>
</oracle.dataaccess.client>
</configuration>

パフォーマンス・カウンタのインスタンス名

パフォーマンス・カウンタはインスタンス単位で公開され、つまり、プロセスごとに異なるパフォーマンス・カウンタの値が公開されます。インスタンス名はAppDomain名、AppDomain IdおよびProcess Idに基づいており、次の書式で表示されます。

AppDomain_Name[Process Id, AppDomain Id]

たとえば、プロセス名App1.exeがデフォルトappdomainのODP.NET 2.xを使用し、そのプロセスIDが234の場合、インスタンス名はApp1.exe [234, 1]になります。

関連項目:
接続プール・パフォーマンス・カウンタ

エディションベースの再定義

エディションベースの再定義を使用すると、アプリケーションが使用中であってもそのデータベース・コンポーネントをアップグレードできます。このため、アプリケーションの停止時間を最小化あるいは排除することができます。

関連項目:
エディションの詳細は、『Oracle Database管理者ガイド』および『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください

Oracle Database 11.2以上で使用している場合、ODP.NET 11gリリース2(11.2.0.1)以上では、デプロイメント時のエディションの指定がサポートされています。アプリケーションは、レジストリまたは構成ファイルを使用して、デプロイメント時にエディションを指定できます。

アプリケーションは、タイプREG_SZの次のレジストリ・エントリを作成できます。

HKLM\Software\Oracle\ODP.NET\version\Edition

ここで、versionはODP.NETのバージョン、Editionはエディションの有効な文字列値です。

アプリケーションは、かわりにweb.configまたはapplication.config構成ファイルを使用して、デプロイメント時にエディションを指定できます。machine.config構成ファイルを使用すると、特定のバージョンの.NET frameworkを使用するすべてのアプリケーションに対してエディションを指定できます。

次の例では、.NET 2.0、3.0および3.5の構成ファイルでエディションがE1に設定されます。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<oracle.dataaccess.client>
<settings>
<add name="Edition" value="E1"/>
</settings>
</oracle.dataaccess.client>
</configuration>

注意:
ODP.NETでサポートされるのは、エディションのデプロイメント時の構成のみです。
ODP.NETでは、プロセスの存続期間中にALTER SESSION文を使用してエディションを変更することはサポートされていません。

Oracle Real Application Clusters(RAC)データベースへの接続

この項では、Oracle Real Application Clusters(Oracle RAC)データベースでの接続と接続プーリングの最適化やその他の観点について説明します。Oracle RACとは、Oracleデータベースでグリッド化を可能にするテクノロジで、クラスタ内のノードでそれぞれ動作する複数のインスタンスからデータベースへアクセスする機能を提供します。

Oracle Real Application Clusters(Oracle RAC)およびData Guard Databaseでの接続

この項では、Oracle Real Application Clusters(Oracle RAC)およびData Guardデータベースでの接続と接続プーリングの最適化やその他の観点について説明します。Oracle RACとは、Oracleデータベースでグリッド化を可能にするテクノロジで、クラスタ内のノードでそれぞれ動作する複数のインスタンスからデータベースへアクセスする機能を提供します。Oracle Data Guardとは、プライマリ・データベースの障害に備えてセカンダリ・スタンバイ・データベースを保持することで、高可用性と障害時リカバリを可能にするテクノロジです。

関連項目:
Oracle Data Guard概要および管理

Oracle RACおよびOracle Data Guardの接続の最適化

Oracle Data Provider for .NETは、Oracle RACおよびData Guardを透過的にサポートしています。また、Oracle Data Provider for .NETの接続プーリング機能はリリース10.2以上のOracle RACまたはData Guardと連携して機能します。Oracle Data Provider for .NETは、ロード・バランシング・アドバイザリおよびサービスの目的に基づいてOracle RACインスタンス間の作業要求のバランスを調整することにより、Oracle RACデータベースの接続および接続プーリングを最適化します。さらに、Data Guardを使用していれば、ODP.NETの接続プールを有効にすることで、Oracle RACサービス、サービス・メンバー、ノードまたはデータベースの停止により切断された接続に関連付けられているリソースを事前に解放できます。

Oracle Data Provider for .NETは、次の機能を使用して、接続および接続プーリングをOracle RAC用に最適化します。

- ランタイム接続ロード・バランシング

ランタイム接続ロード・バランシングを有効にした場合:

- ODP.NET接続プールは、ロード・バランシング・アドバイザリおよびサービスの目的に基づき、接続を分配します。

- また、ODP.NET接続プールは、ロード・バランシング・アドバイザリおよびサービスの目的に基づき、サービスを提供する各サービス・メンバーに対して接続数のバランスを調整します。

デフォルトでは、この機能は無効です。ランタイム接続ロード・バランシングを有効にするには、接続文字列に、"Load Balancing=true"を含めます。

この機能は、"pooling=true"の場合にかぎり、Oracle RACデータベースに対してのみ使用できます。"Load Balancing=true"を設定し、シングルインスタンスのデータベースに対して接続を試行すると、「ORA-1031: 権限が不足しています」というエラーのOracleExceptionがスローされます。

ランタイム接続ロード・バランシングを使用するには、特定のOracle RAC構成を設定する必要があります。詳細は、『Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。ロード・バランシングにはOracle Net Serviceも構成する必要があります。詳細は、『Oracle Net Services管理者ガイド』を参照してください。

次の例は、ランタイム接続ロード・バランシングを有効にする接続文字列です。

"user id=scott;password=tiger;data source=erp;load balancing=true;"

関連項目:

- サポートされている接続文字列属性

- 「データベース通知をリスニングするポートの構成」

- Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド

- HAイベント

HA(高可用性)イベントが有効の場合、Oracle RAC、Data Guardおよび単一のデータベースのインスタンスは、次のような動作をします。

- ODP.NET接続プールでは、Oracle RACサービス、サービス・メンバー、ノードまたはデータベースの停止時に、プールから接続を事前に削除します。

- 切断された接続を削除して、接続合計数が"min pool size"を下回った場合、ODP.NETは既存のOracleインスタンスへの接続を確立します。

デフォルトでは、この機能は無効です。HAイベントを有効にするには、接続文字列に"HA Events=true"および"pooling=true"を含めます。

注意:

接続するデータベース・サービスは、AQ_HA_NOTIFICATIONSに対して設定する必要があります。詳細は、Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイドを参照してください

次の例は、HAイベントを有効にする接続文字列です。

"user id=scott;password=tiger;data source=erp;HA events=true;"

関連項目:

- サポートされている接続文字列属性

- 「データベース通知をリスニングするポートの構成」

- Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド

- Oracle Data Guard概要および管理

Oracle RACデータベースのプール・サイズ属性

シングルインスタンス・データベースに対して接続プールが作成された場合、プール・サイズ属性は単一のサービスに適用されます。同様に、Oracle RACデータベースに対して接続プールが作成された場合、プール・サイズ属性はサービスに適用され、サービス・メンバーには適用されません。たとえば、Min Pool SizeがNに設定されている場合、ODP.NETでは各サービス・メンバーに対してN個の接続を作成しません。かわりに、サービス全体に対して最小N個の接続を作成し、サービス・メンバー間でN個の接続が分散されます。

次のプール・サイズ接続文字列属性が、サービスに適用されます。

- Min Pool Size

- Max Pool Size

- Incr Pool Size

- Decr Pool Size

オペレーティング・システム認証

Oracle Databaseは、Windowsのユーザー・ログイン資格証明を使用してデータベース・ユーザーを認証できます。Windowsのユーザー・ログイン資格証明を使用して接続をオープンするには、User Id接続文字列属性をスラッシュ(/)に設定する必要があります。Password属性を指定しても無視されます。

注意:
オペレーティング・システム認証は、.NETストアド・プロシージャではサポートされません。

Oracle Data Provider for .NETリリース11.1.0.6.20以降では、オペレーティング・システム認証を使用した接続を含めたすべての接続をプールできます。プーリングが有効になっている間は、デフォルトで接続はプールされ、構成は必要ありません。

オペレーティング・システム認証の使用例を次に示します。

/* Create an OS-authenticated user in the database
Assume init.ora has OS_AUTHENT_PREFIX set to "" and <OS_USER>
is any valid OS or DOMAIN user.

create user <OS_USER> identified externally;
grant connect, resource to <OS_USER>;

Login through OS Authentication and execute the sample.  See Oracle
documentation for details on how to configure an OS-Authenticated user
*/

// C#

using System;
using Oracle.DataAccess.Client;

class OSAuthenticationSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

//Establish connection using OS Authentication
con.ConnectionString = "User Id=/;Data Source=oracle;";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");
}
}

関連項目:
Windowsのユーザー・ログイン資格証明を使用してデータベース・ユーザーを認証するようにOracleデータベースを設定する方法の詳細は、Oracle Databaseプラットフォーム・ガイドを参照

特権接続

データベース管理者は、SYSDBAまたはSYSOPER権限を使用してOracle Databaseにアクセスできます。これは、ConnectionStringプロパティのDBA Privilege属性によって実行されます。

次の例では、SYSDBAとしてscott/tigerに接続します。

// C#

using System;
using Oracle.DataAccess.Client;

class PrivilegedConnectionSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

//Connect scott/tiger as SYSDBA
con.ConnectionString = "User Id=scott;Password=tiger;" +
"DBA Privilege=SYSDBA;Data Source=oracle;";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");
}
}

関連項目:
データベースの特権接続の詳細は、「サポートされている接続文字列属性」の「DBA Privilege」を参照

パスワードの失効

ユーザーのパスワードを失効させることができます。ODP.NETは、新規パスワードで接続をオープンする新しいメソッドOpenWithNewPasswordを指定することで、アプリケーションにパスワードの失効を処理させることができます。

次のコードは、pantherの新規パスワードで接続するために、OracleConnection OpenWithNewPasswordメソッドを使用しています。

/* Database Setup
connect / as sysdba;
drop user testexpire cascade;
-- create user "testexpire" with password "testexpire"
grant connect , resource to testexpire identified by testexpire;
alter user testexpire password expire;
*/

// C#

using System;
using Oracle.DataAccess.Client;

class PasswordExpirationSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

try
{
con.ConnectionString =
"User Id=testexpire;Password=testexpire;Data Source=oracle";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);
}
catch (OracleException ex)
{
Console.WriteLine(ex.Message);

//check the error number
//ORA-28001 : the password has expired
if (ex.Number == 28001)
{
Console.WriteLine("\nChanging password to panther");
con.OpenWithNewPassword("panther");
Console.WriteLine("Connected with new password.");
}
}
finally
{
// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");
}
}
}

注意:

- OpenWithNewPasswordは、パスワードを変更するためではなく、ユーザーのパスワードが失効した場合のみ使用してください。

- 接続プーリングが有効な場合、OpenWithNewPasswordメソッドを呼び出すと接続プールがクリアされます。その結果、古いパスワードで作成されたアイドル接続はすべてクローズされます。

関連項目:
「OpenWithNewPassword」

プロキシ認証

データベースの設定が正しければ、データベース・ユーザーのアイデンティティおよび特権を保持し、ユーザーのかわりに監査処理を実行して、プロキシ認証により、中間層アプリケーションでセキュリティを制御できるようになります。そのためには、(実在の)データベース・ユーザー(複数可)のかわりにデータベースに接続し、認証を受けるプロキシ・データベース・ユーザーを作成および使用します。

さらに、プロキシ認証をすると、接続プーリングのスケーラビリティを強化できます。接続プーリングをプロキシ認証と組み合せて使用すると、プロキシ認証済の接続を、実在する複数のユーザー間で共有できます。これは、プロキシに対して確立済の接続およびセッションのみがキャッシュされるためです。プロキシ認証済の接続を要求すると、セッションが実際のユーザーに対して追加作成されますが、このプロキシ認証済接続がプール内に戻されると、追加作成されたセッションは廃棄されます。この設計により、セキュリティを犠牲にすることなくアプリケーションのスケーラビリティを強化できます。

ODP.NETアプリケーションでプロキシ認証を使用するには、接続文字列に、"Proxy User Id"属性および"Proxy Password"属性を設定します。実在のユーザーは、"User Id"属性で指定します。オプションで、"Password"接続文字列属性を介して実在のユーザーのパスワードを指定すると、セキュリティがさらに強化されます。プロキシ認証とともに分散トランザクションを使用する場合は、実際のユーザーのパスワードがオプションでなくなるため、パスワードを指定する必要があります。

ODP.NETプロキシ認証の使用例を次に示します。

/*  Log on as DBA (SYS or SYSTEM) that has CREATE USER privilege.
Create a proxy user and modified scott to allow proxy connection.

create user appserver identified by eagle;
grant connect, resource to appserver;
alter user scott grant connect through appserver;
*/

// C#

using System;
using Oracle.DataAccess.Client;

class ProxyAuthenticationSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

// Connecting using proxy authentication
con.ConnectionString = "User Id=scott;Password=tiger;" +
"Data Source=oracle;Proxy User Id=appserver;Proxy Password=eagle; ";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");
}
}

関連項目:

- プロキシ・ユーザーを使用して中間層サーバーを設計する方法の詳細は、Oracle Databaseアドバンスト・アプリケーション開発者ガイドを参照

- ALTER USER文のプロキシ句の説明および構文は、Oracle Database SQLリファレンスを参照

- Oracle Databaseセキュリティ・ガイドの複数層環境における標準監査に関する項

動的な分散トランザクション登録

OracleConnectionオブジェクトのEnlistDistributedTransactionを使用して分散トランザクションに動的に登録するアプリケーションでは、"enlist"接続文字列属性の値を"dynamic"または"true"に設定する必要があります。"enlist=true"の場合、COM+トランザクションまたはSystem.Transactionsのコンテキスト内でOracleConnectionオブジェクトに対してOpenメソッドがコールされると、接続がトランザクションに登録されます。そうでない場合、OracleConnectionオブジェクトは分散トランザクションに登録されませんが、後でEnlistDistributedTransactionまたはEnlistTransactionメソッドを使用して明示的に登録できます。"enlist=false"の場合は、接続をトランザクションに登録できません。

"Enlist=dynamic"を使用して再構築できないアプリケーションの場合は、タイプREG_SZのレジストリ文字列値DynamicEnlistmentをHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Versionに作成し、1に設定する必要があります。このAssembly_Versionは、Oracle.DataAccess.dllの完全なアセンブリ・バージョン番号です。ODP.NETが適切にインストールされている場合は、同じODP.NETキーの下にStatementCacheSize、TraceFileNameなどのレジストリ文字列値がすでに存在します。動的登録は、XML構成ファイルを使用して構成することもできます。詳細は、「Oracle Data Provider for .NETの構成」を参照してください。DynamicEnlistmentレジストリ・キーが0に設定されている場合(または、レジストリ・エントリが存在しない場合)は、アプリケーションに影響を与えません。ただし、DynamicEnlistmentが1に設定されている場合、"Enlist=false"は"Enlist=dynamic"と同様に処理され、アプリケーションは、コードを変更せずに、EnlistDistributedTransactionメソッドを使用して正常に登録できます。DynamicEnlistmentを1に設定しても、接続文字列が"Enlist=true"または"Enlist=dynamic"の OracleConnectionオブジェクトには影響を与えません。

関連項目:

- 「接続文字列属性」

- 「EnlistDistributedTransaction」

クライアント識別子とエンドツーエンド・トレース

クライアント識別子は、Oracleアプリケーションのコンテキスト・ネームスペースUSERENVから事前に定義された属性です。ユーザーのアイデンティティのトラッキングが可能であるという点で、プロキシ認証に似ています。ただし、プロキシ認証では、2つのセッション(プロキシ・ユーザー用とエンド・ユーザー用)を作成する必要がありません。さらに、クライアント識別子は、データベース・ユーザーである必要はありません。任意の文字列に設定できます。最も重要な点は、クライアント識別子を使用することで、ODP.NET開発者がApplication ContextおよびOracle Label Securityを使用してOracle Virtual Private Database(VPD)をより簡単に構成できることです。クライアント識別子を設定するため、接続をオープンしてから、ODP.NETアプリケーションでOracleConnectionオブジェクトにClientIdプロパティを設定できます。接続プーリングが有効な場合、プールに接続が戻されると、常にClientIdはnullにリセットされます。

クライアント識別子は、エンドツーエンド・アプリケーション・トレースにも使用できます。エンドツーエンド・トレースは、複数層環境のパフォーマンス上の問題の診断プロセスを単純化します。複数層環境では、エンド・クライアントからの要求は中間層で別のデータベース・セッションにルーティングされるため、異なるデータベース・セッションを越えてクライアントを追跡することは困難になります。エンドツーエンド・トレースでは、クライアント識別子を使用して、データベース・サーバーに対するすべての層から特定のエンドクライアントを一意にトレースします。

ODP.NETでは、OracleConnectionオブジェクトの書込み専用プロパティであるActionName、ClientId、ClientInfo、およびModuleNameが公開されています。これらのプロパティは、次のエンドツーエンドのトレース属性に対応しています。

- Action - モジュールのINSERT操作やUPDATE操作などのアクションを指定します。

- ClientId - HR.HRなどのログオンIDに基づいてエンド・ユーザーを指定します。

- クライアント情報 - ユーザー/セッション情報を指定します。

- Module - アプリケーションのAccounts ReceivableやGeneral Ledgerなどの機能ブロックを指定します。

関連項目:

- 「OracleConnectionプロパティ」

- Oracle Databaseパフォーマンス・チューニング・ガイドの「エンドツーエンド・アプリケーション・トレース」

- 『Oracle Databaseセキュリティ・ガイド』

透過的アプリケーション・フェイルオーバー(TAF)コールバックのサポート

透過的アプリケーション・フェイルオーバー(TAF)は、高可用性を提供するOracle Databaseの機能です。

注意:
TAFは、.NETストアド・プロシージャではサポートされません。

TAFを使用すると、接続が継続していれば、別のデータベース・インスタンスに自動的に再接続できます。アクティブなトランザクションはロールバックされますが、別のノードを経由した新しいデータベース接続は、元の接続と同一です。これは、接続が失敗した方法に関係なく当てはまります。

TAFを使用すると、アプリケーションを提供するインスタンスが1つ残っているかぎり、クライアントで接続が失われることはありません。データベース管理者は、インスタンスで実行されるアプリケーションを制御して、各アプリケーションのフェイルオーバー命令も作成します。

別のデータベースにセッションがフェイルオーバーした場合、元のセッションで最初に設定されていたNLS設定は、新しいセッションに引き継がれません。したがって、これらのNLS設定は、アプリケーション側で新しいセッションに設定する必要があります。

TAF通知

フェイルオーバーによる遅延を考慮して、アプリケーションではTAFコールバックによる通知を必要とします。ODP.NETは、OracleConnectionオブジェクトのFailoverイベントによるTAFコールバック機能をサポートしています。これにより、フェイルオーバーが発生したときは常にアプリケーションに通知されます。TAFコールバックを受信するには、Failoverイベントにイベント・ハンドラ関数を登録する必要があります。

フェイルオーバーが発生した場合

フェイルオーバーが発生すると、Failoverイベントが発生し、別のOracleインスタンスに接続を再確立する過程で、イベント・ハンドラが複数回起動されます。

イベント・ハンドラの最初のコールは、Oracle Databaseがインスタンス接続の損失を最初に検出したときに行われます。これにより、アプリケーションはフェイルオーバーの次の遅延に応じて動作します。

フェイルオーバーが成功した場合、接続が再確立されて使用可能になったときにFailoverイベントが発生します。この時点で、アプリケーションはOracleGlobalizationセッション設定を再同期化して、フェイルオーバーが発生したことをアプリケーション・ユーザーに通知できます。

フェイルオーバーが失敗した場合、フェイルオーバーが発生しなかったことをアプリケーションに通知するために、Failoverイベントが発生します。

アプリケーションは、イベント・ハンドラに渡されるOracleFailoverEventArgsオブジェクトをチェックすることで、フェイルオーバーが成功したかどうかを判断できます。

フェイルオーバーのイベント・ハンドラの登録

次のコード例は、OnFailoverと呼ばれるイベント・ハンドラ・メソッドを登録します。

// C#

using System;
using Oracle.DataAccess.Client;

class TAFCallBackSample
{
public static FailoverReturnCode OnFailover(object sender,
OracleFailoverEventArgs eventArgs)
{
switch (eventArgs.FailoverEvent)
{
case FailoverEvent.Begin :
Console.WriteLine(
" \nFailover Begin - Failing Over ... Please standby \n");
Console.WriteLine(
" Failover type was found to be " + eventArgs.FailoverType);
break;

case FailoverEvent.Abort :
Console.WriteLine(" Failover aborted. Failover will not take place.\n");
break;

case FailoverEvent.End :
Console.WriteLine(" Failover ended ...resuming services\n");
break;

case FailoverEvent.Reauth :
Console.WriteLine(" Failed over user. Resuming services\n");
break;

case FailoverEvent.Error :
Console.WriteLine(" Failover error gotten. Sleeping...\n");
return FailoverReturnCode.Retry;

default :
Console.WriteLine("Bad Failover Event: %d.\n", eventArgs.FailoverEvent);
break;
}
return FailoverReturnCode.Success;
} /* OnFailover */

static void Main()
{
OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";
con.Open();
con.Failover += new OracleFailoverEventHandler(OnFailover);
Console.WriteLine("Event Handler is successfully registered");

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
}
}

Failoverイベントは、1つのイベント・ハンドラのみを起動します。Failoverイベントに複数のFailoverイベント・ハンドラが登録されていても、最後に登録されたイベント・ハンドラのみが起動されます。

注意:
フェイルオーバーが有効な環境では、分散トランザクションはサポートされません。

関連項目:

- Oracle Net Services管理者ガイド

- 「OracleFailoverEventHandlerデリゲート」

- 「OracleFailoverEventArgsクラス」

ADO.NET 2.0の機能

Oracle Data Provider for .NET 10.2.0.2以降は、Microsoft ADO.NET 2.0 APIをサポートします。

この項の内容は次のとおりです。

- ADO.NET 2.0について

- ベース・クラスおよびプロバイダ・ファクトリ・クラス

- 接続文字列ビルダー

- データ・ソース列挙子

- コード・アクセス・セキュリティのサポート

- スキーマ検出のサポート

- System.TransactionsとPromotable Transaction

- バッチ処理のサポート

- ADO.NET 2.0専用クラスおよびクラス・メンバー

- 一括コピー・サポート

ADO.NET 2.0について

ADO.NET 2.0はMicrosoft社仕様であり、プロバイダの主体性、コンポーネントの再利用拡大およびアプリケーションの互換性に対して、共同で作業するために設計されたデータ・アクセス機能を提供します。追加の機能により、アプリケーションでデータ・ソース、スキーマおよびプロバイダに関する情報の動的な検索が簡単にできます。

注意:
Microsoft ADO.NET 2.0とともにODP.NETを使用するには、ADO.NET 2.0準拠のODP.NETが必要です。

関連項目:

MSDNライブラリ内のADO.NET

ベース・クラスおよびプロバイダ・ファクトリ・クラス

ADO.NET 2.0では、データ・クラスはSystem.Data.Commonネームスペースで定義されたベース・クラスから導出されます。開発者は、プロバイダ・ファクトリ・クラスを使用して、これらのベース・クラスのプロバイダ固有のインスタンスを作成できます。

プロバイダ・ファクトリ・クラスでは、汎用データ・アクセス・コードによって、最小限のデータ・ソース固有コードで複数のデータ・ソースへアクセスできます。これにより、複数のデータ・ソースにアクセスするアプリケーションで現在使用されている条件付きロジックの多くを削減できます。

Oracle Data Provider for .NETを使用すると、OracleClientFactoryクラスを戻し、インスタンス化できます。これにより、ベース・クラスを継承する次のODP.NETクラスのインスタンスを作成するアプリケーションが有効になります。

表3-3 ADO.NET 2.0ベース・クラスを継承するODP.NETクラス

ODP.NETクラス

ADO.NET 2.0ベース・クラスから継承

OracleClientFactory

DbProviderFactory

OracleCommand

DbCommand

OracleCommandBuilder

DbCommandBuilder

OracleConnection

DbConnection

OracleConnectionStringBuilder

DbConnectionStringBuilder

OracleDataAdapter

DbDataAdapter

OracleDataReader

DbDataReader

OracleDataSourceEnumerator

DbDataSourceEnumerator

OracleException

DbException

OracleParameter

DbParameter

OracleParameterCollection

DbParameterCollection

OracleTransaction

DbTransaction

一般に、アプリケーションはいまだOracle固有の接続文字列、SQLまたはストアド・プロシージャ・コールを必要としており、Oracle.DataAccess.Clientからのファクトリを使用することを宣言します。

関連項目:
「OracleClientFactoryクラス」

接続文字列ビルダー

OracleConnectionStringBuilderクラスでは、エラーを起こしにくく、管理しやすい接続文字列を作成します。

このクラスを使用することによって、開発者は設定ファイルを使用した接続文字列の提供およびキー/値ペアによる動的な値の設定が可能です。設定ファイル・エントリの例は次のとおりです。

<configuration>
<connectionStrings>
<add name="Publications" providerName="Oracle.DataAccess.Client"
connectionString="User Id=scott;Password=tiger;Data Source=inst1" />
</connectionStrings>
</configuration>

接続文字列情報は、接続文字列名を指定して取得できます。この例ではPublicationsです。次に、providerNameに基づいて、そのプロバイダ用の適切なファクトリを取得できます。これにより、接続文字列を簡単に管理および変更できます。さらに、これによって接続文字列への文字列注入に対してより優れたセキュリティを提供します。

関連項目:
「OracleConnectionStringBuilderクラス」

データ・ソース列挙子

データ・ソース列挙子では、アプリケーションによって、そのアプリケーションが接続できるOracleデータ・ソースのコレクションを一般的に取得できます。

関連項目:
「OracleDataSourceEnumeratorクラス」

コード・アクセス・セキュリティのサポート

ODP.NETでは、OraclePermissionクラスを使用してコード・アクセス・セキュリティを実装します。これにより、データベースにアクセスするアプリケーション・コードに、アクセスに必要な権限が付与されます。

.NETアセンブリからODP.NETを介してOracle Databaseへのアクセスが試行されると、ODP.NETによってOraclePermissionが要求されます。.NETランタイム・セキュリティ・システムにより、コール・アセンブリと、コール・スタックにあるその他すべてのアセンブリにOraclePermissionが付与されているかどうかが確認されます。コール・スタックのすべてのアセンブリにOraclePermissionが付与されている場合、コール・アセンブリからデータベースへのアクセスが可能になります。コール・スタックのアセンブリのいずれかにOraclePermissionが付与されていない場合、セキュリティ例外がスローされます。

OraclePermissionの構成

DemandOraclePermission構成属性は、ODP.NET APIのOraclePermission要求を有効化および無効化するために使用されます。DemandOraclePermissionの値は、Windowsレジストリまたは個々のアプリケーション構成ファイルで指定できます。

DemandOraclePermission構成属性を構成するには、次のWindowsレジストリ・キーを使用します。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Version\DemandOraclePermission

Assembly_Versionは、Oracle.DataAccess.dllの完全なアセンブリ・バージョン番号です。DemandOraclePermissionキーの種類はREG_SZです。1(有効)または0(無効)に設定できます。

また、アプリケーションの構成ファイルを使用して、各アプリケーションのOraclePermission要求を有効化することもできます。次の例では、アプリケーション構成ファイルでDemandOraclePermissionプロパティを有効化しています。

<configuration>
<oracle.dataaccess.client>
<settings>
<add name="DemandOraclePermission" value="1"/>
</settings>
</oracle.dataaccess.client>
</configuration>

アセンブリのコード・グループに関連付けられている権限セットにOraclePermissionが追加されていると、アプリケーションまたはアセンブリが正常にデータベースにアクセスできます。システム管理者は、Microsoft .NET構成ツール(Mscorcfg.msc)または手動で該当の権限セットを変更できます。

また、管理者はコード・アクセス・セキュリティ・ポリシー・ツール(Caspol.exe)などの適切な.NET Frameworkツールを使用して、マシン、ユーザーおよびエンタープライズ・レベルでOraclePermissionを含めるようにセキュリティ・ポリシーを変更することもできます。

DemandOraclePermission構成属性を使用してOraclePermission要求が有効化されている場合、OracleConnectionでOraclePermissionオブジェクトを使用してセキュリティ要求が作成されます。アプリケーション開発者は、OracleConnectionを使用する前に、これらのコードに十分な権限があることを確認する必要があります。

関連項目:

- 「OraclePermissionクラス」

- 「OraclePermissionAttributeクラス」

信頼レベルを高または中にするWebアプリケーションのOraclePermissionの構成

高または中より低い信頼レベルで実行されているWebアプリケーションの場合、アプリケーションでセキュリティ・エラーが発生しないように、適切なweb_TrustLevel.configファイルにOraclePermissionを構成する必要があります。

OraclePermissionは、OracProvCfgツールを使用して構成できます。OraProvCfg.exeによって、指定した.NET frameworkバージョンに関連付けられているweb_hightrust.configおよびweb_mediumtrust.configファイルに適切なエントリが追加されます。次の例では、.NET 2.0 WebアプリケーションでOraclePermissionを構成するために、OraProvCfgツールを使用する方法が示されています。

OraProvCfg.exe /action:config  /product:odp /component:oraclepermission
/frameworkversion:v2.0.50727
/providerpath:full_path_of_Oracle.DataAccess.dll

前述のコマンドを実行すると、次のエントリが、ASP.NET権限セットのweb_hightrust.configおよびweb_mediumtrust.configファイルに追加されます。

<IPermission class="Oracle.DataAccess.Client.OraclePermission, Oracle.DataAccess,
Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" version="1"
Unrestricted="true" />

また、必要に応じて、OraProvCfgを使用して、.configファイルからこれらのエントリを削除できます。次の例では、この方法が示されています。

OraProvCfg.exe /action:unconfig  /product:odp  /component:oraclepermission
/frameworkversion:v2.0.50727
/providerpath:full_path_of_Oracle.DataAccess.dll

部分信頼環境で実行されるWindowsアプリケーションに対するOraclePermissionの構成

部分信頼環境で実行されるWindowsアプリケーションの場合、security.configファイルの適切な権限セットにOraclePermissionエントリを指定する必要があります。security.configファイルは、%windir%\Microsoft.NET\Framework\{version}\CONFIGフォルダにあります。

次の例では、.NET 2.0 Windowsアプリケーション用のOraclePermissionエントリが指定されています。

<IPermission class="Oracle.DataAccess.Client.OraclePermission, Oracle.DataAccess,
Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" version="1"
Unrestricted="true" />

スキーマ検出のサポート

ADO.NET 2.0では、OracleConnection.GetSchema APIから5つの異なるタイプのメタデータ・コレクションが公開されています。これにより、アプリケーション開発者は、すべてのOracleデータ・ソースに対して、メタデータの取得を個別のアプリケーション・ベースでカスタマイズできます。このようにして、開発者は複数のデータ・ソースからのメタデータを管理する汎用セットのコードをビルドできます。

公開されているメタデータのタイプは次のとおりです。

- MetaDataCollections
テーブル、列、インデックスおよびストアド・プロシージャなどのデータ・ソースから使用できるメタデータ・コレクションのリストです。

- Restrictions
要求されたスキーマ情報の範囲を制限して、各メタデータ・コレクションに適用される制限。

- DataSourceInformation
製品名やバージョンなど、現在使用されているデータベースのインスタンスについての情報。

- DataTypes
データベースがサポートする各データ型についての情報のセット。

- ReservedWords
Oracle問合せ言語の予約語。

関連項目:
付録A「Oracleスキーマ・コレクション」

メタデータのユーザー・カスタマイズ

ODP.NETでは、データベース・スキーマ情報の包括的なセットが提供されています。開発者は、個々のアプリケーション・ベースでGetSchemaメソッドが戻すメタデータを拡張またはカスタマイズできます。

これを行うには、開発者はカスタマイズしたメタデータ・ファイルを作成し、アプリケーションにファイル名を提供する必要があります。方法は次のとおりです。

1. カスタマイズしたメタデータ・ファイルを作成し、それを.NET FrameworkがインストールされたCONFIGサブディレクトリに置きます。これは、machine.configおよびセキュリティ設定があるディレクトリです。
このファイルには、変更のみではなく、スキーマ設定情報のセット全体を含める必要があります。開発者は、ユーザー固有の要件を検索するスキーマ動作の変更を提供します。たとえば、開発者は内部データベース表にフィルタをかけ、ユーザー固有の表のみを検索できます。

2. 次と同じく、アプリケーションのapp.configファイル内にエントリを追加し、メタデータ・ファイルの名前を名前/値ペアの書式で指定します。

<oracle.dataaccess.client>
<settings>
<add name="MetaDataXml" value="CustomMetaData.xml" />
</settings>
</oracle.dataaccess.client>

GetSchemaメソッドがコールされると、ODP.NETではapp.configファイルでカスタマイズしたメタデータXMLファイルの名前を確認します。最初に、GetSchemaメソッドはプロバイダにちなんで付けられた要素、この例ではoracle.dataaccess.clientでファイル内のエントリを検索します。このXML要素内の名前MetaDataXmlに対応する値は、カスタマイズしたXMLファイルの名前で、この例ではCustomMetaData.xmlです。

メタデータ・ファイルが正しいディレクトリ内にない場合、アプリケーションは、ODP.NETに含まれているデフォルトのメタデータXMLファイルをロードします。

関連項目:
「GetSchema」

System.TransactionsとPromotable Transaction

ODP.NET for .NET Framework 2.0はSystem.Transactionsをサポートしています。Oracle Database 11gリリース(11.1)以上のSystem.Transactionsスコープでオープンされた最初の接続に対しては、ローカル・トランザクションが作成されます。2番目の接続がオープンされると、このトランザクションは自動的に分散トランザクションに昇格します。この機能は、パフォーマンスとスケーラビリティの向上を実現します。

TransactionScopeやServicedComponentなどのトランザクション・コンテキスト内で作成された接続は、様々なリリースのOracle Databaseに対して確立できます。ただし、ローカル・トランザクションを昇格できるようにするには、次の条件を満たす必要があります。

- Oracle Database 11gリリース1(11.1)以上のインスタンスに対してトランザクション・コンテキストの最初の接続を確立する必要があります。

- トランザクション・コンテキスト内でオープンになっているすべての接続のPromotable Transaction設定がpromotableに設定されている必要があります。Promotable Transaction設定がlocalに設定されている場合、同じトランザクション・コンテキスト内にある後続の接続をオープンしようとすると、例外がスローされます。

- ローカル・トランザクションの昇格には11.1.0.7.20以上のOracle Services for Microsoft Transaction Serverが必要です。この要件を満たしていない場合、同じトランザクション・コンテキスト内にある2番目の接続要求で例外がスローされます。

レジストリ、構成ファイル(マシン、Web、アプリケーション)またはPromotable Transaction接続文字列属性で、PromotableTransactionの値としてlocalを設定すると、ローカル・トランザクションに関連付けられているトランザクション・コンテキスト内でオープンできる接続は1つのみになります。このようなローカル・トランザクションは昇格できません。

Oracle Database 11gリリース1(11.1)より前のインスタンスに接続するアプリケーションについては、「旧リリースのデータベースにおけるローカル・トランザクション・サポート」を参照してください。この項では、Promotable Transactionの設定を使用してODP.NETの動作を制御する方法について説明します。

アプリケーションがSystem.Transactionsを使用する場合は、"enlist"接続文字列属性を"true"(デフォルト)または"dynamic"のいずれかに設定する必要があります。

ODP.NETは、分散トランザクションを使用するアプリケーション用に、次のSystem.Transactionsプログラミング・モデルをサポートしています。

- TransactionScopeを使用した暗黙的なトランザクション登録

- CommittableTransactionを使用した明示的なトランザクション登録。

- 旧リリースのデータベースにおけるローカル・トランザクション・サポート

TransactionScopeを使用した暗黙的なトランザクション登録

TransactionScopeクラスは、トランザクションに明示的に登録する必要のないトランザクション・アプリケーションを記述するためのメカニズムを提供します。これを実現するには、アプリケーションでTransactionScopeオブジェクトを使用して、トランザクション・コードを定義します。このトランザクション・スコープ内で作成された接続は、分散トランザクションへの昇格が可能なローカル・トランザクションに登録されます。

注意:

デフォルトでは、最初の接続がOracle Database 11gリリース1(11.1)より前のインスタンスに対してオープンされた場合、その接続は分散トランザクションとして登録されます。

「旧リリースのデータベースにおけるローカル・トランザクション・サポート」で説明する手順を使用して、トランザクションをローカル・トランザクションとして作成することも可能です。ただし、その場合のトランザクションは分散トランザクションに昇格できません。

変更をコミットするには、アプリケーションでTransactionScopeオブジェクトに対してCompleteメソッドをコールする必要があります。コールしない場合、トランザクションはデフォルトで強制終了します。

// C#

using System;
using Oracle.DataAccess.Client;
using System.Data;
using System.Data.Common;
using System.Transactions;

class psfTxnScope
{
static void Main()
{
int retVal = 0;
string providerName = "Oracle.DataAccess.Client";
string constr =
@"User Id=scott;Password=tiger;Data Source=oracle;enlist=true";

// Get the provider factory.
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);

try
{
// Create a TransactionScope object, (It will start an ambient
// transaction automatically).
using (TransactionScope scope = new TransactionScope())
{
// Create first connection object.
using (DbConnection conn1 = factory.CreateConnection())
{
// Set connection string and open the connection. this connection
// will be automatically enlisted in a promotable local transaction.
conn1.ConnectionString = constr;
conn1.Open();

// Create a command to execute the sql statement.
DbCommand  cmd1 = factory.CreateCommand();
cmd1.Connection = conn1;
cmd1.CommandText = @"insert into emp (empno, ename, job) values
(1234, 'emp1', 'dev1')";

// Execute the SQL statement to insert one row in DB.
retVal = cmd1.ExecuteNonQuery();
Console.WriteLine("Rows to be affected by cmd1: {0}", retVal);

// Close the connection and dispose the command object.
conn1.Close();
conn1.Dispose();
cmd1.Dispose();
}

// The Complete method commits the transaction. If an exception has
// been thrown or Complete is not called then the transaction is
// rolled back.
scope.Complete();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}

CommittableTransactionを使用した明示的なトランザクション登録

CommittableTransactionオブジェクトとEnlistTransactionメソッドのインスタンス化により、接続を明示的に作成してトランザクションに登録できます。アプリケーションでは、CommittableTransactionオブジェクトに対してCommitまたはRollbackをコールする必要があります。

// C#

using System;
using Oracle.DataAccess.Client;
using System.Data;
using System.Data.Common;
using System.Transactions;

class psfEnlistTransaction
{
static void Main()
{
int retVal = 0;
string providerName = "Oracle.DataAccess.Client";
string constr =
@"User Id=scott;Password=tiger;Data Source=oracle;enlist=dynamic";

// Get the provider factory.
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);

try
{
// Create a committable transaction object.
CommittableTransaction cmtTx = new CommittableTransaction();

// Open a connection to the DB.
DbConnection conn1 = factory.CreateConnection();
conn1.ConnectionString = constr;
conn1.Open();

// enlist the connection with the commitable transaction.
conn1.EnlistTransaction(cmtTx);

// Create a command to execute the sql statement.
DbCommand cmd1 = factory.CreateCommand();
cmd1.Connection = conn1;
cmd1.CommandText = @"insert into emp (empno, ename, job) values
(1234, 'emp1', 'dev1')";

// Execute the SQL statement to insert one row in DB.
retVal = cmd1.ExecuteNonQuery();
Console.WriteLine("Rows to be affected by cmd1: {0}", retVal);

// commit/rollback the transaction.
cmtTx.Commit();   // commits the txn.
//cmtTx.Rollback(); // rolls back the txn.

// close and dispose the connection
conn1.Close();
conn1.Dispose();
cmd1.Dispose();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}

関連項目:
「EnlistTransaction」

旧リリースのデータベースにおけるローカル・トランザクション・サポート

TransactionScope内の最初の接続がOracle Database 11gリリース1(11.1)より前のインスタンスに対してオープンされた場合、デフォルトでは分散トランザクションが作成されます。この項で説明する手順を使用すれば、最初の接続でローカル・トランザクションを作成することもできます。

System.Transactionsスコープ内にローカル・トランザクションを作成するには、レジストリ、マシン/Web/アプリケーション構成ファイルまたはPromotable Transaction接続文字列属性のPromotableTransaction設定をlocalに設定します。

"local"が指定されている場合、TransactionScopeでオープンした最初の接続ではローカル・トランザクションが使用されます。後続の接続が同じTransactionScopeでオープンされると例外がスローされます。TransactionScopeですでに接続がオープンしていて、"Promotable Transaction=local"のOracleConnectionが同じTransactionScope内でオープンされようとしている場合は例外がスローされます。

"promotable"が指定されている場合、同じTransactionScopeでオープンされる最初と後続の接続は、同じ分散トランザクション内で登録されます。

レジストリと接続文字列属性の両方が使用されていて異なる値に設定されている場合、接続文字列属性はレジストリ・エントリの値をオーバーライドします。どちらも設定されていない場合は"promotable"が使用されます。これはデフォルトの値で、分散トランザクションのみがサポートされているODP.NETの以前のバージョンと同じです。

ODP.NETの特定のバージョンに対するレジストリ・エントリは、ODP.NETのバージョンを使用するすべてのアプリケーションに適用します。

バッチ処理のサポート

OracleDataAdapter.Updateメソッドがコールされると、OracleDataAdapter UpdateBatchSizeプロパティではバッチ処理が有効になります。UpdateBatchSizeは、各ラウンドトリップで、Oracle Databaseを更新するDataSet行数を示す数値プロパティです。

これにより、開発者はデータベースへのラウンド・トリップの回数を削減できます。

注意:
Microsoft社の必要なホットフィックス
Microsoft ADO.NET 2.0にはBatchUpdate機能に影響する既知の問題があります。

この問題を解決するには、ODP.NETリリース11.1とMicrosoft社の特定のホットフィックスの両方を同じコンピュータにインストールする必要があります。Microsoft社のホットフィックスは、http://support.microsoft.com/?id=916002から無料ダウンロードできます。

このフィックスがないと、BatchUpdate機能はDataSetで失敗した行に関するエラーの正しい説明を表示しません。DbDataDataAdapter.ContinueUpdateOnErrorがfalseであるか、DataSetの最終更新行のRowErrorプロパティに追加されている場合は、バッチ内のすべてのエラーは例外メッセージに追加されています。

ODP.NETは、このホットフィックスを使用して、バッチ内で失敗した個々の行のRowErrorプロパティに対してエラーの正しい説明を作成するよう拡張されています。

関連項目:
「UpdateBatchSize」

ADO.NET 2.0専用クラスおよびクラス・メンバー

ADO.NET 2.0専用であるクラスに加えて、System.Data.Commonネームスペースから継承する他のODP.NETクラスには、ADO.NET 2.0を必要とするメソッドとプロパティが含まれています。

次のクラスはADO.NET 2.0専用です。

- OracleClientFactoryクラス

- OracleConnectionStringBuilderクラス

- OracleDataSourceEnumeratorクラス

次のクラス・メンバーはADO.NET 2.0専用です。

- OracleCommandBuilderクラス・メンバー

- CatalogLocationプロパティ(サポート対象外)

- CatalogSeparatorプロパティ(サポート対象外)

- ConflictOptionプロパティ(サポート対象外)

- QuotePrefixプロパティ

- QuoteSuffixプロパティ

- SchemaSeparatorプロパティ

- QuoteIdentifierメソッド

- UnquoteIdentifierメソッド

- OracleConnectionクラス・メンバー

- GetSchemaメソッド

- OracleDataAdapterクラス・メンバー

- UpdateBatchSizeプロパティ

- ReturnProviderSpecificTypesプロパティ

- OracleDataReaderクラス・メンバー

- HiddenFieldCountプロパティ

- VisibleFieldCountプロパティ

- GetProviderSpecificFieldTypeメソッド

- GetProviderSpecificValueメソッド

- GetProviderSpecificValuesメソッド

- OracleParameterクラス・メンバー

- SourceColumnNullMappingプロパティ

- ResetDbTypeメソッド

- ResetOracleDbTypeメソッド

- OracleParameterCollectionクラス・メンバー

- AddRangeメソッド

一括コピー・サポート

ODP.NETは、アプリケーションが1つのデータベースの表から同一または異なるデータベースの表へ大量のデータを効率よくロードできる一括コピー機能を提供します。

ODP.NETの一括コピー機能では、ダイレクト・パス・ロード方法を使用します(これはOracle SQL*Loaderと類似していますが異なります)。ダイレクト・パス・ロードを使用すると、SQL INSERT文を使用する従来のロードより早く処理できます。従来のロードでは、Oracleのデータ・ブロックをフォーマットしてデータ・ブロックをデータ・ファイルに直接書き込みます。一括コピーにより、処理中のオーバーヘッドが大幅に削減されます。

ODP.NETの一括コピー機能では旧リリースのOracle Databaseにデータをロードできます。

関連項目:
ODP.NETと相互運用可能なOracle Databaseのリリースについては、「システム要件」を参照してください

ODP.NETの一括コピー機能は、次の項で説明するように、ダイレクト・パス・ロードと同一の基本制限および整合性制約に従います。

一括コピーでサポートされているデータ型

一括コピーでサポートされているデータ型は次のとおりです。

- ORA_SB4

- ORA_VARNUM

- ORA_FLOAT

- ORA_CHARN

- ORA_RAW

- ORA_BFLOAT

- ORA_BDOUBLE

- ORA_IBDOUBLE

- ORA_IBFLOAT

- ORA_DATE

- ORA_TIMESTAMP

- ORA_TIMESTAMP_TZ

- ORA_TIMESTAMP_LTZ

- ORA_INTERVAL_DS

- ORA_INTERVAL_YM

一括コピーでは上書きはサポートされていません。

単一パーティションのOracle一括コピーの制限

- パーティションを含む表には、表で定義済のグローバル索引を含めることはできません。

- パーティションがメンバーの表には、有効な参照制約およびチェック制約を含めることはできません。

- 有効なトリガーは使用できません。

Oracle一括コピーに影響する整合性制約

Oracle一括コピー中、次の場合にいくつかの整合性制約は自動的に有効または無効になります。

有効となる制約

Oracle一括コピー中、次の制約はデフォルトで自動的に有効になります。

- NOT NULL

- UNIQUE

- PRIMARY KEY(非NULL列での一意制約)

NOT NULL制約は列配列の作成時にチェックされます。NOT NULL制約に違反する行はすべて拒否されます。

UNIQUE制約はロードの最後で索引が再構築されるときに検証されます。この索引はUNIQUE制約に違反すると、索引使用禁止状態のままになります。

無効となる制約

Oracle一括コピー中、次の制約はデフォルトで自動的に無効になります。

- CHECK制約

- 参照制約(FOREIGN KEY)

EVALUATE CHECK_CONSTRAINTS句を指定する場合、CHECK制約は自動的には無効になりません。CHECK制約はダイレクト・パス・ロード中に評価され、CHECK制約に違反する行はすべて拒否されます。

データベース挿入トリガー

ダイレクト・パス・ロードが始まると、表挿入トリガーも使用禁止になります。行がロードされ索引が再構築されると、使用禁止となっていたすべてのトリガーは自動的に再び使用可能になります。ログ・ファイルには、ロード時に使用禁止となっていたトリガーがすべてリストされます。トリガーを使用可能に戻すときに1つでもエラーがあると、再使用できません。

整合性制約とは異なり、挿入トリガーは使用可能に戻っても表全体に対して再び適用されません。つまり、ダイレクト・パスでロードされた行に対しては、挿入トリガーは起動しません。ダイレクト・パスを使用する際には、挿入トリガーに関連するすべての動作が新しい行に対して実行されることを確認する必要があります。

フィールドのデフォルト値

データベースで定義されたデフォルト列の仕様はダイレクト・パス・ロードを使用できません。デフォルト値が必要なフィールドはDEFAULTIF句で指定する必要があります。DEFAULTIF句を指定せず、フィールドがNULLの場合、NULL値がデータベースに挿入されます。

関連項目:
第17章「Oracle Data Provider for .NETの一括コピー・クラス」

ADO.NET Entity FrameworkおよびLINQ to Entities

ODP.NET 11.2.0.3.0以上には、ADO.NET Entity FrameworkおよびLINQ to Entitiesのサポートが含まれています。ODP.NETでは、Entity SQLもサポートされています。

Entity Frameworkは、データ・モデルでのオブジェクト・リレーショナル・マッピング・サービスを提供するフレームワークです。Entity Frameworkでは、リレーショナル・データベース形式とクライアント優先オブジェクト形式とのインピーダンス・ミスマッチが解決されます。統合言語クエリ(LINQ)は、配列データ、可算クラス、XML、リレーショナル・データベースおよびその他のデータ・ソースのクエリ、計画およびフィルタ処理に使用される一連の演算子を定義します。LINQの1つの形式であるLINQ to Entitiesを使用すると、Entity Frameworkデータ・ソースをクエリできます。ODP.NETでは、オブジェクト・リレーショナル・モデリングおよびLINQ to EntitiesクエリでOracle Databaseを使用できるようEntity Frameworkがサポートされています。

Entity FrameworkおよびLINQを使用すると、.NET開発者の生産性が向上します。ここでは、アプリケーションのデータ・モデルからデータベースのデータ・モデルが抽出されます。Entity Frameworkのツールを使用すると、オブジェクト・リレーショナル・データの処理が容易になります。Oracle .NET開発者は、Entity FrameworkおよびLINQにOracleを統合することで、生産性に関するこれらのすべての利点を活用できます。

注意:

- Entity FrameworkおよびLINQ to Entitiesのサポートは、ODP.NET for .NET Framework 4に含まれています。ODP.NET for .NET Framework 2.0では、ADO.NET Entity FrameworkおよびLINQ to Entitiesがサポートされていません。

- Entity Framework 4.1がサポートされています。ただし、Entity Framework 4.1の機能の一部であるCode Firstは、現在サポートされていません。

- ODP.NETおよびEntity Frameworkでは、スカラー・パラメータのバインドがサポートされています。Entity Frameworkでは、名前指定によるパラメータのバインドがサポートされています。位置指定によるバインドはサポートされていません。

エンティティ・データ・モデルは、Oracle Databaseスキーマから生成できるようになりました。Oracleエンティティ・データ・モデルは、Visual StudioおよびODP.NETを使用してクエリおよび操作できます。Oracleでは、Database FirstおよびModel Firstモデリング・アプローチがサポートされています。Visual StudioのServer Explorerによるデータ接続にフィルタ処理を指定すると、Entity Data Modelウィザードでも、フェッチおよび表示されるOracle Databaseオブジェクトに対してフィルタ処理を行うことができます。

LINQ to Entitiesでは、ODP.NET(LINQ to Entitiesの組込み関数を含む)を使用してOracle Databaseでクエリを実行できます。INSERT、UPDATEおよびDELETEは、Oracleストアド・プロシージャまたはObjectContext SaveChangesメソッドを使用して実行できます。

ODP.NETでは、Entity Frameworkで実行可能なOracleストアド・プロシージャの関数インポートがサポートされています。Oracle関数インポートは、エンティティ型としてのOracleの暗黙的な結果セットを含め、スカラー型、複合型およびエンティティ型の集合を返すことができます。暗黙的な結果セットのバインドは、Oracle REF CURSORによってサポートされています。詳細は、「暗黙的なREF CURSORのバインド」を参照してください。

関連項目:
Entity Frameworkと統合言語クエリ(LINQ)の使用方法、およびModel Firstを使用したデータ定義言語(DDL)スクリプトの生成方法に関するチュートリアルは、次を参照してください。
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/EntityFrameworkOBE/EntityFrameworkOBE.htm

EDM型へのOracleデータ型のマッピング

ODP.NETのマニフェスト・ファイルには、基本型(VARCHAR2、Numberなど)と、基本型のマップ先であるEntity Data Model(EDM)型(string、Int32など)が記述されています。これには、各EDM型のファセットも含まれています。

ODP.NETでは、時間リテラル、および時間型に関する正規関数がサポートされていません。

Oracleでは、NULLと空文字列の両方が、同様にNULL文字列であると判断されます。これらの文字列に対して操作(Equals()、Length()、Trim()など)を実行すると、NULL文字列が返されます。

表3-4に、Oracleデータ型と対応するEDM型のマッピングを示します。表には、各Oracleデータ型に関連付けられるプロバイダ型の属性およびEDM型のファセットの詳細も含まれています。

表3-4 Oracleデータ型とEDM型のマッピング

Oracleデータ型

EDM型(基本型)

プロバイダ型の属性: 名前および値

EDM型のファセット

Bfile

Binary

- Equal Comparable: False

- Order Comparable: False

BfileのEDM型のファセット

Binary_Double

(10gで導入)

Double

- Equal Comparable: True

- Order Comparable: True

適用不可

Binary_Float

(10gで導入)

Single

- Equal Comparable: True

- Order Comparable: True

適用不可

Binary_Integer

Int32

- Equal Comparable: True

- Order Comparable: True

適用不可

Blob

Binary

- Equal Comparable: False

- Order Comparable: False

BlobのEDM型のファセット

Char

String

- Equal Comparable: True

- Order Comparable: True

CharのEDM型のファセット

Clob

String

- Equal Comparable: False

- Order Comparable: False

ClobのEDM型のファセット

Date

DateTime

- Equal Comparable: True

- Order Comparable: True

DateのEDM型のファセット

Float

Decimal

- Equal Comparable: True

- Order Comparable: True

FloatのEDM型のファセット

Int

Int32

- Equal Comparable: True

- Order Comparable: True

適用不可

Interval Day To Second

Decimal

- Equal Comparable: True

- Order Comparable: True

Interval Day To SecondのEDM型のファセット

Interval Year To Month

Decimal

- Equal Comparable: True

- Order Comparable: True

Interval Year To MonthのEDM型のファセット

Long

String

- Equal Comparable: False

- Order Comparable: False

LongのEDM型のファセット

Long Raw

Binary

- Equal Comparable: False

- Order Comparable: False

Long RawのEDM型のファセット

NChar

String

- Equal Comparable: True

- Order Comparable: True

NCharのEDM型のファセット

NClob

String

- Equal Comparable: False

- Order Comparable: False

NClobのEDM型のファセット

Nested Table

適用不可

適用不可およびサポートされない

Number(1,0)

Number(2,0)

Number(3,0)

Number(4,0)

Number(5,0)

Int16

- Equal Comparable: True

- Order Comparable: True

適用不可

Number(6,0)

Number(7,0)

Number(8,0)

Number(9,0)

Number(10,0)

Int32

- Equal Comparable: True

- Order Comparable: True

適用不可

Number(11,0)

Number(12,0)

Number(13,0)

Number(14,0)

Number(15,0)

Number(16,0)

Number(17,0)

Number(18,0)

Number(19,0)

Int64

- Equal Comparable: True

- Order Comparable: True

適用不可

Number

(その他すべての場合)

Decimal

- Equal Comparable: True

- Order Comparable: True

NumberのEDM型のファセット

NVarchar2

String

- Equal Comparable: True

- Order Comparable: True

NVarchar2のEDM型のファセット

Object

適用不可

適用不可およびサポートされない

Raw

Binary

- Equal Comparable: True

- Order Comparable: True

RawのEDM型のファセット

Raw(16)

Guid

- Equal Comparable: True

- Order Comparable: True

適用不可

Ref

適用不可

適用不可およびサポートされない

ROWID

String

- Equal Comparable: True

- Order Comparable: True

ROWIDのEDM型のファセット

Smallint

Int16

- Equal Comparable: True

- Order Comparable: True

適用不可

Timestamp

DateTime

- Equal Comparable: True

- Order Comparable: True

TimestampのEDM型のファセット

Timestamp with

Local Time Zone

DateTime

- Equal Comparable: True

- Order Comparable: True

Timestamp with Local Time ZoneのEDM型のファセット

Timestamp with

Time Zone

DateTimeOffset

- Equal Comparable: True

- Order Comparable: True

Timestamp with Time ZoneのEDM型のファセット

UROWID

(サイズ)

Binary

- Equal Comparable: True

- Order Comparable: True

UROWIDのEDM型のファセット

Varchar2

String

- Equal Comparable: True

- Order Comparable: True

Varchar2のEDM型のファセット

VArray

適用不可

適用不可およびサポートされない

XMLType

(9iで導入)

String

- Equal Comparable: False

- Order Comparable: False

XMLTypeのEDM型のファセット

EDM型のファセット

この項では、前述のOracleデータ型に対応するEDM型のファセットを列挙します。

BfileのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483648
True

FixedLength

DefaultValue
Constant

False
True

BlobのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483648
True

FixedLength

DefaultValue
Constant

False
True

CharのEDM型のファセット

ファセット名

属性名

Value

MaxLength

Minimum
Maximum

DefaultValue

Constant

1
2000

2000

False

Unicode

DefaultValue
Constant

False
True

FixedLength

DefaultValue
Constant

True
True

ClobのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483647
True

Unicode

DefaultValue
Constant

False
True

FixedLength

DefaultValue
Constant

False
True

DateのEDM型のファセット

ファセット名

属性名

Value

Precision

Constant
DefaultValue

True
0

FloatのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

0
126

0

False

Scale

Minimum
Maximum

DefaultValue

Constant

0
38

0

False

Interval Day To SecondのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

1
251

251

False

Scale

Minimum
Maximum

DefaultValue

Constant

0
9

0

False

注意:
EDM型では、TimeSpanがサポートされていません。
合計秒数を表すには、Decimalを使用します。TimeSpanは、TimeSpan.FromSeconds静的メソッドを使用して取得できます。

Interval Year To MonthのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

1
250

250

False

Scale

Minimum
Maximum

DefaultValue

Constant

0
9

0

False

LongのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483647
True

Unicode

DefaultValue
Constant

False
True

FixedLength

DefaultValue
Constant

False
True

Long RawのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483647
True

FixedLength

DefaultValue
Constant

False
True

NCharのEDM型のファセット

ファセット名

属性名

Value

MaxLength

Minimum
Maximum

DefaultValue

Constant

1
1000

1000

False

Unicode

DefaultValue
Constant

True
True

FixedLength

DefaultValue
Constant

True
True

注意:
NCharでは、実際のデータが最大バイト制限の2000の対象となります。
DDLで許可される最大文字数が1000の場合、MaximumおよびDefaultValueの値が1000であると、EDMウィザードにNCHAR(1000)の列が表示されます。

NClobのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483647
True

Unicode

DefaultValue
Constant

True
True

FixedLength

DefaultValue
Constant

False
True

NumberのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

1
38

38

False

Scale

Minimum
Maximum

DefaultValue

Constant

0
38

0

False

NVarchar2のEDM型のファセット

ファセット名

属性名

Value

MaxLength

Minimum
Maximum

DefaultValue

Constant

1
2000

2000

False

Unicode

DefaultValue
Constant

True
True

FixedLength

DefaultValue
Constant

False
True

注意:
NVARCHAR2では、実際のデータが最大バイト制限の4000の対象となります。
DDLで許可される最大文字数が2000の場合、MaximumおよびDefaultValueの値が2000であると、EDMウィザードにNVARCHAR2(2000)の列が表示されます。

RawのEDM型のファセット

ファセット名

属性名

Value

MaxLength

Minimum
Maximum

Constant

1
2000

False

FixedLength

DefaultValue
Constant

False
True

ROWIDのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

18
True

Unicode

DefaultValue
Constant

False
True

FixedLength

DefaultValue
Constant

True
True

TimestampのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

0
9

6

False

Timestamp with Local Time ZoneのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

0
9

6

False

Timestamp with Time ZoneのEDM型のファセット

ファセット名

属性名

Value

Precision

Minimum
Maximum

DefaultValue

Constant

0
9

6

False

UROWIDのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

4000
True

FixedLength

DefaultValue
Constant

True
True

Varchar2のEDM型のファセット

ファセット名

属性名

Value

MaxLength

Minimum
Maximum

DefaultValue

Constant

1
4000

4000

False

Unicode

DefaultValue
Constant

False
True

FixedLength

DefaultValue
Constant

False
True

XMLTypeのEDM型のファセット

ファセット名

属性名

Value

MaxLength

DefaultValue
Constant

2147483647
True

Unicode

DefaultValue
Constant

True
True

FixedLength

DefaultValue
Constant

False
True

Oracle Numberデータ型のデフォルト・マッピングおよびカスタマイズ

.NET構成ファイルでカスタム・マッピングを構成して、Number(p,0) Oracleデータ型のデフォルト・マッピングを上書きできます。このため、たとえば、デフォルトでInt16にマップされているNumber(1,0)を、カスタムで.NET Bool型または.NET Byte型にマップできます。

例3-1に、カスタム・マッピングを使用してNumber(1, 0) Oracleデータ型をbool EDM型にマップするapp.configファイルのサンプルを示します。また、この例では、Number(3,0)をbyteにマップし、Int16、Int32およびInt64データ型の最大精度をそれぞれ4、9および18に設定します。

例3-1 Number(p,0)データ型をカスタム・マップするアプリケーション構成ファイルのサンプル

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
</connectionStrings>
<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1,0)" />
<add name="byte" value="edmmapping number(3,0)" />
<add name="int16" value="edmmapping number(4,0)" />
<add name="int32" value="edmmapping number(9,0)" />
<add name="int64" value="edmmapping number(18,0)" />
</settings>
</oracle.dataaccess.client>
</configuration>

例3-1では、マッピングを次のようにカスタマイズしています。

Oracle型

デフォルトのEDM型

カスタムのEDM型

Number(1,0)

Int16

bool

Number(2,0)からNumber(3,0)

Int16

byte

Number(4,0)

Int16

Int16

Number(5,0)

Int16

Int32

Number(6,0)からNumber(9,0)

Int32

Int32

Number(10,0)

Int32

Int64

Number(11,0)からNumber(18,0)

Int64

Int64

Number(19,0)

Int64

Decimal

カスタム・マッピングによって、.NET/EDM型にマップされるOracle Number型の最大精度が構成されます。このため、たとえば、前述のカスタム・アプリケーション構成ファイルでODP.NETを構成する際は、Int64にデフォルトの範囲であるNumber(11,0)からNumber(19,0)ではなく、Int64にNumber(10,0)からNumber(18,0)をマップするよう構成されます。

注意:

- カスタム・マッピングでは、すべての.NET/EDM型をマップする必要はありません。たとえば、Int16についてのみカスタム・マッピングが必要な場合は、Int16に単一のエントリを行うことができます。他の型には、デフォルト・マッピングが使用されます。

- Model Firstを使用している場合は、デフォルトでNumber(3,0)にByte属性がマップされます。ただし、Number(3,0)列にモデルが生成されている場合は、Byteにカスタム・マッピングを指定しないかぎり、デフォルトでInt16にマップされます。

マッピングによってデータが.NET/EDM型およびNumber(p, s)型の範囲内に適合することを確認する必要があります。Oracle Numberデータに対して範囲が小さすぎる.NET/EDM型を選択した場合、データの取得時にエラーが発生します。また、.NET/EDM型を選択した場合に、対応するデータがOracle Number列に対して大きすぎると、Oracle DatabaseにINSERTおよびUPDATEを行った際にエラーが発生します。

カスタム・マッピングの使用時の比較エラーの解決

.NET構成ファイルのカスタム・マッピングを変更した場合、変更によって発生した比較エラーを解決するには、データ・モデルを再生成します。

場合によっては、カスタム・マッピングを使用するプロジェクトがVisual Studioによってロードされる際に、カスタム・マッピングが原因で比較エラーが発生することがあります。この場合、次の回避策を使用できます。

1. Visual Studioのヘルプ「About Microsoft Visual Studio」を開きます。「OK」をクリックしてダイアログ・ボックスを終了します。
かわりに、Server Explorerで使用する接続を開きます。

2. プロジェクトを再コンパイルしてコンパイル・エラーを消去します。

カスタムINSERT、UPDATEおよびDELETEストアド・プロシージャでのブール・パラメータおよびguidパラメータのマッピング

ストアド・プロシージャのマッピングにカスタムINSERT、UPDATEまたはDELETEストアド・プロシージャを使用すると、次のエラーが発生する場合があります。

エラー2042: 指定されたパラメータ・マッピングが無効です。

これは、NumberパラメータがBoolean属性にマップされた場合またはRAWパラメータがGuid属性にマップされた場合に発生します。

解決策として、SSDLでストアド・プロシージャのNumberパラメータにPrecision="1"を、RAWパラメータにMaxLength="16"を手動で追加します。

OracleCommandオブジェクト

OracleCommandオブジェクトは、Oracle Databaseで実行されるSQL文またはストアド・プロシージャを表します。

注意:
オプティマイザのヒント構文形式--+ ...はサポートされていません。ODP.NETでは、/*+ ... */の構文をサポートしています。

この項の内容は次のとおりです。

- トランザクション

- パラメータ・バインド

- 文キャッシング

- 自動チューニング

トランザクション

Oracle Databaseは、接続のコンテキストでのみトランザクションを開始します。トランザクションが開始すると、その接続で引き続き行われるコマンド実行はすべて、そのトランザクションのコンテキストで実行されます。トランザクションはOracleConnectionオブジェクトでのみ開始され、OracleConnectionオブジェクトのTransaction読取り専用プロパティは、OracleConnectionオブジェクトによって暗黙的に設定されます。このため、アプリケーションはTransactionプロパティを設定できません。また、設定する必要もありません。

注意:
トランザクションは、.NETストアド・プロシージャではサポートされません。

"FOR UPDATE"および"RETURNING"句を含むSQL文には明示的なトランザクションが必要です。グローバル・トランザクションが使用されていない場合は不要です。

パラメータ・バインド

OracleParameterオブジェクトのDbTypeプロパティが設定されている場合、OracleParameterオブジェクトのOracleDbTypeプロパティも変更されます。その逆も同じです。パラメータ・セットは最後に有効になります。アプリケーションはデータをバインドして、パラメータ値の.NETタイプから、ODP.NETでDbTypeと OracleDbTypeの両方のプロパティを推測します。ODP.NETを使用すると、アプリケーションでは、出力パラメータを.NET FrameworkタイプまたはODP.NETタイプのいずれかとして取得できます。アプリケーションでは、出力パラメータのDbTypeプロパティ(.NETタイプ)、またはOracleParameterオブジェクトのOracleDbTypeプロパティ(ODP.NETタイプ)を設定することで、出力パラメータに対してどちらのタイプを戻すかを指定できます。たとえば、DbTypeプロパティを設定することで出力パラメータがDbType.String型として設定されている場合、出力データは.NET String型として戻されます。一方、OracleDbTypeプロパティを設定することでパラメータがOracleDbType.Charとして設定されている場合、出力データはOracleString型として戻されます。DbTypeとOracleDbTypeの両方のプロパティを設定してからコマンドを実行した場合は、最後の設定が有効になります。

ODP.NETは、次のOracleCommandメソッドの実行により、OracleデータをInputOutput、OutputおよびReturnValueパラメータに移入します。

- ExecuteReader

- ExecuteNonQuery

- ExecuteScalar

アプリケーションは、出力パラメータの値をバインドできません。出力パラメータ値のバインドはODP.NETによって行われます。値オブジェクトが作成され、オブジェクトがOracleParameter Valueプロパティに移入されます。

ファンクションに対して位置別(デフォルト)でバインドする場合、最初に他のパラメータより前にバインドされる戻り値がODP.NETに必要です。

この項の内容は次のとおりです。

- データ型BINARY_FLOATおよびBINARY_DOUBLE

- OracleDbTypeの列挙型

- DbType、OracleDbTypeおよび.NETタイプの判断

- PL/SQL連想配列バインド

- 配列バインド

関連項目:
「OracleDbTypeの列挙型」

データ型BINARY_FLOATおよびBINARY_DOUBLE

Oracle Database 10g以上のデータベースでは、BINARY_FLOATおよびBINARY_DOUBLEという2つの新しいネイティブ・データ型がサポートされています。

BINARY_FLOATおよびBINARY_DOUBLEデータ型はそれぞれ、単精度浮動小数点値と倍精度小数点値を表します。

OracleParameterバインドでは、アプリケーションは、BINARY_FLOATおよびBINARY_DOUBLEデータ型に対して列挙OracleDbType.BinaryFloatおよびOracleDbType.BinaryDoubleを使用する必要があります。

関連項目:

- 「GetDouble」

- 「GetFloat」

OracleDbTypeの列挙型

OracleDbTypeの列挙値は、OracleParameterオブジェクトのOracleDbTypeを明示的に指定する際に使用されます。

表3-5では、すべてのOracleDbTypeの列挙値と、それぞれの列挙値の説明をリストしています。

表3-5 OracleDbTypeの列挙値

メンバー名

説明

Array

Oracleコレクション型

BFile

Oracle BFILE型

BinaryFloat

Oracle BINARY_FLOAT型

BinaryDouble

Oracle BINARY_DOUBLE型

Blob

Oracle BLOB型

Byte

byte型

Char

Oracle CHAR型

Clob

Oracle CLOB型

Date

Oracle DATE型

Decimal

Oracle NUMBER型

Double

8バイトのFLOAT型

Int16

2バイトのINTEGER型

Int32

4バイトのINTEGER型

Int64

8バイトのINTEGER型

IntervalDS

Oracle INTERVAL DAY TO SECOND型

IntervalYM

Oracle INTERVAL YEAR TO MONTH型

Long

Oracle LONG型

LongRaw

Oracle LONG RAW型

NChar

Oracle NCHAR型

Object

Oracle Object型

NClob

Oracle NCLOB型

NVarchar2

Oracle NVARCHAR2型

Raw

Oracle RAW型

Ref

Oracle REF型

RefCursor

Oracle REF CURSOR型

Single

4バイトのFLOAT型

TimeStamp

Oracle TIMESTAMP型

TimeStampLTZ

Oracle TIMESTAMP WITH LOCAL TIME ZONE型

TimeStampTZ

Oracle TIMESTAMP WITH TIME ZONE型

Varchar2

Oracle VARCHAR2型

XmlType

Oracle XMLType型

注意:
PL/SQLのLONG、LONG RAW、RAWおよびVARCHARデータ型は、32512バイトまでのサイズにバインドできます。

DbType、OracleDbTypeおよび.NETタイプの判断

この項では、OracleParameterクラス内のSystem.Data.DbType、OracleDbTypeおよびValueのプロパティからの判断を説明します。

OracleParameterクラスでは、DbType、OracleDbTypeおよびValueプロパティはリンクされています。これらのプロパティのいずれかに値を指定すると、残りの1つ以上のプロパティの値を推測できます。

OracleDbTypeからのDbTypeの判断

OracleParameterクラスでは、OracleDbTypeの値を指定すると、表3-6に示されているとおりDbTypeの値が判断されます。

表3-6 OracleDbTypeからのSystem.Data.DbTypeの判断

OracleDbType

System.Data.DbType

Array

Object

BFile

Object

Blob

Object

BinaryFloat

Single

BinaryDouble

Double

Byte

Byte

Char

StringFixedLength

Clob

Object

Date

Date

Decimal

Decimal

Double

Double

Int16

Int16

Int32

Int32

Int64

Int64

IntervalDS

Object

IntervalYM

Int64

Long

String

LongRaw

Binary

NChar

StringFixedLength

NClob

Object

NVarchar2

String

Object

Object

Raw

Binary

Ref

Object

RefCursor

Object

Single

Single

TimeStamp

DateTime

TimeStampLTZ

DateTime

TimeStampTZ

DateTime

Varchar2

String

XmlType

String

DbTypeからのOracleDbTypeの判断

OracleParameterクラスでは、DbTypeの値を指定すると、表3-7に示されているとおりOracleDbTypeの値が判断されます。

表3-7 DbTypeからのOracleDbTypeの判断

System.Data.DbType

OracleDbType

Binary

Raw

Boolean

サポート対象外

Byte

Byte

Currency

サポート対象外

Date

Date

DateTime

TimeStamp

Decimal

Decimal

Double

Double

Guid

サポート対象外

Int16

Int16

Int32

Int32

Int64

Int64

Object

Object

Sbyte

サポート対象外

Single

Single

String

Varchar2

StringFixedLength

Char

Time

TimeStamp

UInt16

サポート対象外

UInt32

サポート対象外

Uint64

サポート対象外

VarNumeric

サポート対象外

ValueからのDbTypeおよびOracleDbTypeの判断

OracleParameterクラスでは、Valueは任意のNET Frameworkデータ型またはODP.NETタイプになるオブジェクト型です。OracleParameterクラスにOracleDbTypeプロパティおよびDbTypeプロパティが指定されていない場合、OracleDbTypeプロパティはValueプロパティのタイプから推測されます。

表3-8は、Valueの型が.NET Frameworkデータ型の1つの場合における、ValueプロパティからのDbTypeプロパティおよびOracleDbTypeプロパティの判断を示します。

表3-8 Value(.NETデータ型)からのDbTypeおよびOracleDbTypeの判断

Value(.NETデータ型)

System.Data.DbType

OracleDbType

Byte

Byte

Byte

Byte[]

Binary

Raw

Char / Char []

String

Varchar2

DateTime

DateTime

TimeStamp

Decimal

Decimal

Decimal

Double

Double

Double

Float

Single

Single

Int16

Int16

Int16

Int32

Int32

Int32

Int64

Int64

Int64

IOracleCustomType

Object

Object

Single

Single

Single

String

String

Varchar2

TimeSpan

Object

IntervalDS

注意:
DbTypeまたはOracleDbTypeを指定せずに、OracleParameterの値としてその他の.NET Frameworkデータ型を使用すると、例外が発生します。これは、その他の.NET Frameworkデータ型からのDbTypeプロパティおよびOracleDbTypeプロパティの判断がサポートされていないためです。

表3-9は、Valueの型がOracle.DataAccess.Typesの1つの場合における、ValueプロパティからのDbTypeプロパティおよびOracleDbTypeプロパティの判断を示しています。

表3-9 Value(ODP.NETタイプ)からのDbTypeおよびOracleDbTypeの判断

Value(Oracle.DataAccess.Types)

System.Data.DbType

OracleDbType

OracleBFile

Object

BFile

OracleBinary

Binary

Raw

OracleBlob

Object

Blob

OracleClob

Object

Clob

OracleDate

Date

Date

OracleDecimal

Decimal

Decimal

OracleIntervalDS

Object

IntervalDS

OracleIntervalYM

Int64

IntervalYM

OracleRef

Object

Ref

OracleRefCursor

Object

RefCursor

OracleString

String

Varchar2

OracleTimeStamp

DateTime

TimeStamp

OracleTimeStampLTZ

DateTime

TimeStampLTZ

OracleTimeStampTZ

DateTime

TimeStampTZ

OracleXmlType

String

XmlType

PL/SQL連想配列バインド

ODP.NETは、PL/SQL連想配列(従来のPL/SQL索引付き表)バインドをサポートしています。

アプリケーションは、OracleParameterオブジェクトをPL/SQL連想配列としてPL/SQLストアド・プロシージャにバインドできます。次のOracleParameterプロパティは、この機能に使用されます。

- CollectionType
このプロパティは、PL/SQL連想配列にバインドするために、OracleCollectionType.PLSQLAssociativeArrayに設定する必要があります。

- ArrayBindSize
このプロパティは、固定長の要素タイプ(Int32など)の場合は無視されます。

可変長の要素タイプ(Varchar2など)の場合、ArrayBindSizeプロパティ内の各要素は、Valueプロパティ内の対応する要素のサイズを指定します。

Outputパラメータ、InputOutputパラメータおよび戻り値の場合、このプロパティは、可変長の変数に対して指定する必要があります。

- ArrayBindStatus
このプロパティは、OracleParameter.Valueプロパティ内の各要素の実行ステータスを指定します。

- Size
このプロパティは、PL/SQL連想配列にバインドされる要素の最大数を指定します。

- Value
このプロパティは、値の配列にNULLまたはDBNull.Valueを設定する必要があります。

ODP.NETはPL/SQL連想配列のバインド・パラメータをサポートしており、PL/SQL連想配列には次のデータ型があります。

- BINARY_FLOAT

- CHAR

- DATE

- NCHAR

- NUMBER

- NVARCHAR2

- RAW

- ROWID

- UROWID

- VARCHAR2

連想配列でサポートされていないデータ型を使用するとORA-600エラーが発生する場合があります。

PL/SQL連想配列の例

この例では、3つのOracleParameterオブジェクトをPL/SQL連想配列としてバインドします。Param1はInパラメータ、Param2はInputOutputパラメータ、Param3はOutputパラメータとしてバインドします。

PL/SQLパッケージ:MYPACK

/* Setup the tables and required PL/SQL:

connect scott/tiger@oracle
CREATE TABLE T1(COL1 number, COL2 varchar2(20));

CREATE or replace PACKAGE MYPACK AS
TYPE AssocArrayVarchar2_t is table of VARCHAR(20) index by BINARY_INTEGER;
PROCEDURE TestVarchar2(
Param1 IN     AssocArrayVarchar2_t,
Param2 IN OUT AssocArrayVarchar2_t,
Param3    OUT AssocArrayVarchar2_t);
END MYPACK;
/

CREATE or REPLACE package body MYPACK as
PROCEDURE TestVarchar2(
Param1 IN     AssocArrayVarchar2_t,
Param2 IN OUT AssocArrayVarchar2_t,
Param3    OUT AssocArrayVarchar2_t)
IS
i integer;
BEGIN
-- copy a few elements from Param2 to Param1\n
Param3(1) := Param2(1);
Param3(2) := NULL;
Param3(3) := Param2(3);
-- copy all elements from Param1 to Param2\n
Param2(1) := Param1(1);
Param2(2) := Param1(2);
Param2(3) := Param1(3);
-- insert some values to db\n
FOR i IN 1..3 LOOP
insert into T1 values(i,Param2(i));
END LOOP;
END TestVarchar2;
END MYPACK;
/
*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class AssociativeArraySample
{
static void Main()
{
OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);

OracleCommand cmd = new OracleCommand(
"begin MyPack.TestVarchar2(:1, :2, :3); end;", con);

OracleParameter Param1 = cmd.Parameters.Add("1", OracleDbType.Varchar2);
OracleParameter Param2 = cmd.Parameters.Add("2", OracleDbType.Varchar2);
OracleParameter Param3 = cmd.Parameters.Add("3", OracleDbType.Varchar2);

Param1.Direction = ParameterDirection.Input;
Param2.Direction = ParameterDirection.InputOutput;
Param3.Direction = ParameterDirection.Output;

// Specify that we are binding PL/SQL Associative Array
Param1.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
Param2.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
Param3.CollectionType = OracleCollectionType.PLSQLAssociativeArray;

// Setup the values for PL/SQL Associative Array
Param1.Value = new string[3] {
"First Element", "Second Element ", "Third Element "
};
Param2.Value = new string[3] {
"First Element", "Second Element ", "Third Element "
};
Param3.Value = null;

// Specify the maximum number of elements in the PL/SQL Associative Array
Param1.Size = 3;
Param2.Size = 3;
Param3.Size = 3;

// Setup the ArrayBindSize for Param1
Param1.ArrayBindSize = new int[3] { 13, 14, 13 };

// Setup the ArrayBindStatus for Param1
Param1.ArrayBindStatus = new OracleParameterStatus[3] {
OracleParameterStatus.Success, OracleParameterStatus.Success,
OracleParameterStatus.Success};

// Setup the ArrayBindSize for Param2
Param2.ArrayBindSize = new int[3] { 20, 20, 20 };

// Setup the ArrayBindSize for Param3
Param3.ArrayBindSize = new int[3] { 20, 20, 20 };

// execute the cmd
cmd.ExecuteNonQuery();

//print out the parameter's values
Console.WriteLine("parameter values after executing the PL/SQL block");
for (int i = 0; i < 3; i++)
Console.WriteLine("Param2[{0}] = {1} ", i,
(cmd.Parameters[1].Value as Array).GetValue(i));

for (int i = 0; i < 3; i++)
Console.WriteLine("Param3[{0}] = {1} ", i,
(cmd.Parameters[2].Value as Array).GetValue(i));

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine("Disconnected");
}
}

配列バインド

配列バインド機能を使用すると、アプリケーションでは、OracleParameterクラスを使用してタイプの配列をバインドできます。配列バインド機能を使用すると、アプリケーションは、1回のデータベース・ラウンドトリップで複数の行を表に挿入できます。

次のコード例は、1回のデータベース・ラウンドトリップで3行をDept表に挿入します。OracleCommand ArrayBindCountプロパティは、文の実行時に使用する配列の要素の数を定義します。

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class ArrayBindSample
{
static void Main()
{
OracleConnection con = new OracleConnection();
con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";
con.Open();
Console.WriteLine("Connected successfully");

int[] myArrayDeptNo = new int[3] { 10, 20, 30 };
OracleCommand cmd = new OracleCommand();

// Set the command text on an OracleCommand object
cmd.CommandText = "insert into dept(deptno) values (:deptno)";
cmd.Connection = con;

// Set the ArrayBindCount to indicate the number of values
cmd.ArrayBindCount = 3;

// Create a parameter for the array operations
OracleParameter prm = new OracleParameter("deptno", OracleDbType.Int32);

prm.Direction = ParameterDirection.Input;
prm.Value = myArrayDeptNo;

// Add the parameter to the parameter collection
cmd.Parameters.Add(prm);

// Execute the command
cmd.ExecuteNonQuery();
Console.WriteLine("Insert Completed Successfully");

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
}
}

関連項目:
詳細は、「Value」を参照してください。

OracleParameterの配列バインド・プロパティ

OracleParameterクラスは、配列バインド機能を使用するときに、詳細な制御を行うために2つのプロパティを提供します。

- ArrayBindSize
ArrayBindSizeプロパティは、配列内の対応する各値の最大サイズを指定する整数の配列です。ArrayBindSizeプロパティは、OracleParameterのSizeプロパティに類似していますが、ArrayBindSizeプロパティは配列内の各値のサイズを指定するという点が異なります。

アプリケーションは、実行前にArrayBindSizeプロパティを移入する必要があります。ODP.NETは、実行後にArrayBindSizeプロパティを移入します。

ArrayBindSizeプロパティは、Clob、Blob、Varchar2など、可変長のパラメータ・タイプにのみ使用されます。Unicode文字列タイプのバイナリ・データ型および文字の場合、サイズはバイトで表されます。文字列タイプのカウントには、終了文字は含まれません。サイズが明示的に設定されていない場合は、値の実際のサイズから推測されます。出力パラメータの場合、各値のサイズはODP.NETにより設定されます。固定長のデータ型の場合、ArrayBindSizeプロパティは無視されます。

- ArrayBindStatus
ArrayBindStatusプロパティは、パラメータの配列内の対応する各値のステータスを指定するOracleParameterStatus値の配列です。このプロパティは、OracleParameterのStatusプロパティに類似していますが、ArrayBindStatusプロパティは配列内の各値のステータスを指定するという点が異なります。

アプリケーションは、実行前にArrayBindStatusプロパティを移入する必要があります。ODP.NETは、実行後に移入します。ArrayBindStatusプロパティを使用するアプリケーションは、実行前に、パラメータの配列内の対応する要素にNULL値を指定できます。ODP.NETは、実行後にArrayBindStatusプロパティを移入して、配列内の対応する要素にNULL値があるか、または値がフェッチされたときにデータの切捨てが発生したかどうかを示します。

配列バインドのエラー処理

配列バインドの実行中にエラーが発生した場合、Valueプロパティ内のどの要素がエラーの原因になったかを判断するのは困難です。ODP.NETは、エラーが発生した行を判断する方法を提供することで、エラーの原因になった行の要素を簡単に検索できるようにします。

配列バインドの実行中にOracleExceptionオブジェクトがスローされた場合、OracleErrorCollectionには1つ以上のOracleErrorオブジェクトが含まれます。これらのOracleErrorオブジェクトはそれぞれ、実行中に発生した個別のエラーを表し、プロバイダ固有のプロパティArrayBindIndexを含みます。

次に配列バインドのエラー処理の例を示します。

/* Database Setup
connect scott/tiger@oracle
drop table depttest;
create table depttest(deptno number(2));
*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class ArrayBindExceptionSample
{
static void Main()
{
OracleConnection con = new OracleConnection();
con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";
con.Open();

OracleCommand cmd = new OracleCommand();

// Start a transaction
OracleTransaction txn = con.BeginTransaction(IsolationLevel.ReadCommitted);

try
{
int[] myArrayDeptNo = new int[3] { 10, 200000, 30 };
// int[] myArrayDeptNo = new int[3]{ 10,20,30};

// Set the command text on an OracleCommand object
cmd.CommandText = "insert into depttest(deptno) values (:deptno)";
cmd.Connection = con;

// Set the ArrayBindCount to indicate the number of values
cmd.ArrayBindCount = 3;

// Create a parameter for the array operations
OracleParameter prm = new OracleParameter("deptno", OracleDbType.Int32);

prm.Direction = ParameterDirection.Input;
prm.Value = myArrayDeptNo;

// Add the parameter to the parameter collection
cmd.Parameters.Add(prm);

// Execute the command
cmd.ExecuteNonQuery();
}
catch (OracleException e)
{
Console.WriteLine("OracleException {0} occured", e.Message);
if (e.Number == 24381)
for (int i = 0; i < e.Errors.Count; i++)
Console.WriteLine("Array Bind Error {0} occured at Row Number {1}",
e.Errors[i].Message, e.Errors[i].ArrayBindIndex);

txn.Commit();
}
cmd.Parameters.Clear();
cmd.CommandText = "select count(*) from depttest";

decimal rows = (decimal)cmd.ExecuteScalar();

Console.WriteLine("{0} row have been inserted", rows);
con.Close();
con.Dispose();
}
}

関連項目:
詳細は、「ArrayBindIndex」を参照してください。

OracleParameterStatusの列挙型

表3-10に、OracleParameterStatusの列挙値をリストします。

表3-10 OracleParameterStatusのメンバー

メンバー名

説明

Success

入力パラメータの場合、入力値が列に割り当てられたことを示します。

出力パラメータの場合、プロバイダによってそのままの値がパラメータに割り当てられたことを示します。

NullFetched

NULL値が列またはOUTパラメータからフェッチされたことを示します。

NullInsert

NULL値が列に挿入されることを示します。

Truncation

列からデータをフェッチする際に切捨てが行われたことを示します。

文キャッシング

文キャッシングにより、最初の実行で作成されたサーバー・カーソルのキャッシングによる実行の前に、各SQL文またはPL/SQL文を解析する必要がなくなります。同じ文を後で実行する場合、カーソルから解析された情報を再利用して、文を解析せずに実行することで、パフォーマンスが向上します。

文キャッシングによるパフォーマンスの向上を得るために、繰り返し実行される文のみをキャッシュすることをお薦めします。さらに、SQL文またはPL/SQL文では、リテラル値ではなくパラメータを使用してください。これにより、文キャッシングが有効になります。これは、後続の実行でパラメータ値が異なる場合でも、パラメータ化された文から解析された情報は再利用できるためです。ただし、文のリテラル値が異なる場合、解析された情報は、後続の文にも同じリテラル値がないかぎり、再使用できません。

文キャッシングの接続文字列属性

次の接続文字列属性は、ODP.NET文キャッシング機能の動作を制御します。

- Statement Cache Size
この属性は、ODP.NET文キャッシングを有効化または無効化します。デフォルトでは、この属性は0(無効)に設定されます。0より大きい値に設定すると、ODP.NET文キャッシングが有効になり、指定された値は接続用にキャッシュできる文の最大数として使用されます。指定された最大キャッシュ・サイズまで接続がキャッシュされると、最低使用頻度のカーソルが解放され、新しく作成されたカーソルをキャッシュするためのスペースが確保されます。

自動チューニングを有効にすると、文キャッシングも有効になります。その場合、Statement Cache Sizeは自動的に構成されます。

- Statement Cache Purge
この属性は、接続がクローズされた場合、または接続プールに戻された場合にキャッシュされるすべての文を消去する方法を提供します。デフォルトでは、この属性はfalseに設定されています。つまり、接続がプールに戻されてもカーソルは解放されません。

レジストリを使用した文キャッシングの有効化

アプリケーションを変更せずに、システムで実行しているすべてのODP.NETアプリケーションの文キャッシングをデフォルトで有効化するには、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Version \StatementCacheSizeのレジストリ・キーを0より大きい値に設定します。この値は、サーバーでキャッシュされるカーソルの数を指定します。

システムのデフォルト値は、接続プール・レベルで無視できます。Statement Cache Size属性は、レジストリ値とは異なるサイズに設定するか、無効にできます。Statement Cache Sizeは、XML構成ファイルで設定することもできます。詳細は、「Oracle Data Provider for .NETの構成」を参照してください。

文キャッシングのメソッドおよびプロパティ

次のプロパティおよびメソッドは、文キャッシングが有効な場合のみ当てはまります。

- OracleCommand.AddToStatementCacheプロパティ
文キャッシングが有効な場合、このプロパティをtrueに設定すると、文の実行時にキャッシュに文が追加されます。デフォルトでは、このプロパティはtrueに設定されています。文キャッシングが無効な場合、またはこのプロパティがfalseに設定されている場合、実行された文はキャッシュされません。

- OracleConnection.PurgeStatementCacheメソッド
このメソッドは、特定の接続に関連付けられたデータベースでオープンしているカーソルをすべてクローズすることで、キャッシュされた文をすべて消去します。このコールの後も、文キャッシングは有効です。

接続と文キャッシング

文キャッシングは、接続ごとに個別に管理されます。このため、異なる接続で同じ文を実行するには、接続ごとに1回消去して、接続ごとに個別のカーソルをキャッシュする必要があります。

プーリングと文キャッシング

プーリングと文キャッシングは同時に使用できます。接続プーリングが有効で、Statement Cache Purge属性がfalseに設定されている場合、個別の接続で実行される文は、プールされた接続の存続期間を通じてキャッシュされます。

Statement Cache Purge属性がtrueに設定されている場合は、接続がプールに戻されたときに、キャッシュされたすべてのカーソルが解放されます。接続プーリングが無効な場合、カーソルは接続の存続中にキャッシュされますが、OracleConnectionオブジェクトがクローズまたは処理されたときにはクローズされます。

自動チューニング

ODP.NETアプリケーションの自動チューニングを行ってパフォーマンスを最適化することができます。ODP.NETは実行時のアプリケーション問合せを動的に監視します。

注意:
Pooling接続文字列属性がfalseに設定されている場合、アプリケーションの自動チューニングは実行されません。また、自動チューニングは.NETストアド・プロシージャではサポートされません。

文キャッシュ・サイズ(StatementCacheSize)は、アプリケーションによって実行される文を監視することで自動的にチューニングされます。次の各項では、アプリケーションの自動チューニングについて説明します。

- 文キャッシングの自動チューニング

- アプリケーションの自動チューニングの有効化または無効化

- 最適化のための変更のトレース

文キャッシングの自動チューニング

文キャッシングを使用すると、各SQL文またはPL/SQL文を実行前に再解析する必要がなくなり、パフォーマンスが向上します。

アプリケーションの自動チューニングが有効な場合、ODP.NETは文キャッシュ・サイズの最適な値を決定するためにアプリケーションの動作を継続的に監視します。接続文字列、構成ファイルまたはレジストリに指定した文キャッシュ・サイズの値は無視されます。

アプリケーションが最初に初期化されるときは、文キャッシュ・サイズのデフォルト値が使用されます。アプリケーションが文を実行するのと並行して、ODP.NETは文キャッシュ・サイズの値の自動チューニングに使用される統計を収集します。文キャッシュ・サイズの自動チューニングを行うとパフォーマンスが向上します。

注意:
文キャッシングの利点を最大限活用するには、文の実行ごとに異なるインライン値で文を動的に生成しないでください。かわりに、パラメータ化されたコマンドを使用して、実行およびキャッシュする必要がある一意の文の数を最小限にします。これは、パラメータ値や文の実行回数にかかわらず、一意の各コマンド・テキストでキャッシュする必要のある文が1つのみになるためです。

接続ごとにキャッシュできる文の最大数は、MaxStatementCacheSize構成属性によって決まります。MaxStatementCacheSizeの値は、WindowsレジストリまたはXML構成ファイルで指定できます。

MaxStatementCacheSize設定は、キャッシュされる文の数やオープンしているカーソル数を制限する場合に便利です。これは、キャッシュされる文は、サーバーでオープンになっているカーソルと等しいためです。このため、MaxStatementCacheSizeをデータベースのMAX_OPEN_CURSORS設定よりも大きい値に設定しないでください。

MaxStatementCacheSize構成属性を構成するには、次のWindowsレジストリ・キーを使用します。

HKLM\Software\Oracle\ODP.NET\version\MaxStatementCacheSize

MaxStatementCacheSizeキーの種類はREG_SZです。これは、0からSystem.Int32.MaxValueの整数値に設定できます。

次の例では、ADO.NET 2.0以上の構成ファイルでMaxStatementCacheSizeプロパティを設定しています。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<oracle.dataaccess.client>
<settings>
<add name="MaxStatementCacheSize" value="300"/>
</settings>
</oracle.dataaccess.client>
</configuration>

アプリケーションの自動チューニングが無効な場合、文キャッシュ・サイズの値は接続文字列、構成ファイルまたはレジストリの設定によって決まります。これらのソースのいずれにも文キャッシュ・サイズが指定されていない場合、文キャッシュ・サイズのデフォルト値は0に設定されます。旧リリースのODP.NETと同じデフォルト設定でODP.NETを構成するには、自動チューニングを無効化し、StatementCacheSize値を10に設定します。

関連項目:
「文キャッシング」

アプリケーションの自動チューニングの有効化または無効化

ODP.NETアプリケーションの自動チューニングはデフォルトで有効になっています。アプリケーションの自動チューニングを有効化または無効化するには、次のいずれかの方法を使用します。

- 自動チューニングの接続文字列属性
Self Tuning接続文字列属性を変更すると、特定の接続プールについてアプリケーションの自動チューニングを有効化または無効化できます。Self Tuningのデフォルト値はtrueです。

- Windowsレジストリ
次のレジストリ・エントリを変更すると、ODP.NETの特定のバージョンについてアプリケーションの自動チューニングを有効化または無効化できます。

HKLM\Software\Oracle\ODP.NET\version\SelfTuning

SelfTuningキーの種類はREG_SZです。1(有効)または0(無効)に設定できます。

- 構成ファイル
アプリケーション構成ファイル(app.config)またはWeb構成ファイル(web.config)を変更すると、ODP.NETアプリケーションの自動チューニングを有効化または無効化できます。

次の例は、ADO.NET 2.0.xのアプリケーション構成ファイルで自動チューニングを有効化する方法を示しています。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<oracle.dataaccess.client>
<settings>
<add name="SelfTuning" value="1"/>
</settings>
</oracle.dataaccess.client>
</configuration>

注意:
アプリケーションの最適な文キャッシュ・サイズがわかっている場合、自動チューニングを無効化して、レジストリ、構成ファイルまたはアプリケーションでStatementCacheSizeを最適な値に設定できます。自動チューニングが無効化され、StatementCacheSizeを設定しない場合、デフォルト値である0がStatementCacheSizeに使用されます。

最適化のための変更のトレース

自動チューニングによる最適化のための変更をアプリケーションでトレースできます。StatementCacheSizeに加えられたすべての変更がトレースされます。エラーがあれば、それもトレースされます。

自動チューニングのトレースに使用されるTraceLevelは64です。

関連項目:
TraceLevel値の詳細は、表2-1「構成属性」を参照してください。

ODP.NETタイプの概要

ODP.NETタイプは、Oracleネイティブ・データ型およびPL/SQLデータ型を構造体またはクラスとして表します。ODP.NETタイプの構造体は値セマンティクスに従い、ODP.NETタイプのクラスは参照セマンティクスに従っています。.NETタイプと比べ、ODP.NETタイプは.NETアプリケーションでOracleのネイティブ・データおよびPL/SQLデータ型を取得する、より安全で効率的な方法を提供します。たとえば、OracleDecimal構造では最大38桁の精度を保持できますが、.NET Decimalでは最大28桁の精度しか保持できません。

表3-11には、ODP.NETによりサポートされているすべてのデータ型とそれらに対応するODP.NETタイプがリストされています。1列目のデータ型は、その名前のOracleネイティブ・データ型およびPL/SQLデータ型を参照します。PL/SQLにのみ存在するデータ型は、データ型の名前の後の(PL/SQLのみ)で示されています。また、PL/SQLデータ型のエントリは、データ型のサブタイプも表します(ある場合)。第3列には、各ODP.NETタイプのValueプロパティに対応する.NET Frameworkデータ型がリストされています。

表3-11 ODP.NETタイプのValueプロパティのタイプ

Oracleネイティブ・データ型またはPL/SQLデータ型

ODP.NETタイプ

.NET Frameworkデータ型

BFILE

OracleBFileクラス

System.Byte[]

BINARY_DOUBLE

OracleDecimal構造

System.Decimal

BINARY_FLOAT

OracleDecimal構造

System.Decimal

BINARY_INTEGER(PL/SQLのみ)

OracleDecimal構造

System.Decimal

BLOB

OracleBlobクラス

System.Byte[]

CHAR

OracleString構造

System.String

CLOB

OracleClobクラス

System.String

DATE

OracleDate構造

System.DateTime

INTERVAL DAY TO SECOND

OracleIntervalDS構造

System.Timespan

INTERVAL YEAR TO MONTH

OracleIntervalYM構造

System.Int64

LONG

OracleString構造

System.String

LONG RAW

OracleBinary構造

System.Byte[]

NCHAR

OracleString構造

System.String

NCLOB

OracleClobクラス

System.String

NUMBER

OracleDecimal構造

System.Decimal

NVARCHAR2

OracleString構造

System.String

PLS_INTEGER(PL/SQLのみ)

OracleDecimal構造

System.Decimal

RAW

OracleBinary構造

System.Byte[]

REF

OracleRefクラス

System.String

REF CURSOR(PL/SQLのみ)

OracleRefCursorクラス

適用不可

ROWID

OracleString構造

System.String

TIMESTAMP

OracleTimeStamp構造

System.DateTime

TIMESTAMP WITH LOCAL TIME ZONE

OracleTimeStampLTZ構造

System.DateTime

TIMESTAMP WITH TIME ZONE

OracleTimeStampTZ構造

System.DateTime

UROWID

OracleString構造

System.String

VARCHAR2

OracleString構造

System.String

XMLType

OracleXmlTypeクラス

System.String

OracleDataReaderオブジェクトからのデータの取得

OracleCommandオブジェクトのExecuteReaderメソッドは、OracleDataReaderオブジェクトを戻します。このオブジェクトは、読取り専用および順方向専用の結果セットです。

この項では、OracleDataReaderオブジェクトに関する次の情報を示します。

- OracleDataReader型指定アクセッサ

- LONGおよびLONG RAWデータの取得

- LOBデータの取得

- 1回のデータベース・ラウンドトリップでフェッチされる行数の制御

OracleDataReader型指定アクセッサ

OracleDataReaderクラスは、2つのタイプの型指定アクセッサを提供します。

- .NETタイプのアクセッサ

- ODP.NETタイプのアクセッサ

.NETタイプのアクセッサ

表3-12には、ODP.NETがサポートするすべてのOracleデータベースのネイティブ・タイプと、それらに対応した、Oracleネイティブ・タイプを表す.NETタイプがリストされています。Oracleネイティブ・タイプを表すために複数の.NETタイプが使用される場合、最初の.NETタイプ・エントリは、Oracleネイティブ・タイプを最も適切に表します。3列目は、.NETタイプとして取得されるOracleネイティブ・タイプに対して起動される有効な型指定アクセッサを示します。無効な型指定アクセッサが列に使用された場合、InvalidCastExceptionがスローされます。Oracleネイティブ・データ型は、データベースのバージョンに依存します。このため、Oracle Databaseの以前のバージョンでは使用できないデータ型もあります。

関連項目:

- 「OracleDataAdapterクラス」

- 「OracleDataReaderクラス」

表3-12 .NETタイプのアクセッサ

Oracleネイティブ・データ型

.NETタイプ

型指定アクセッサ

BFILE

System.Byte[]

GetBytes

BINARY_DOUBLE

System.Double

GetDouble

BINARY_FLOAT

System.Single

GetFloat

BLOB

System.Byte[]

GetBytes

CHAR

System.String

System.Char[]

GetString

GetChars

CLOB

System.String

System.Char[]

GetString

GetChars

DATE

System.DateTime

GetDateTime

INTERVAL DAY TO SECOND

System.Timespan

GetTimeSpan

INTERVAL YEAR TO MONTH

System.Int64

GetInt64

LONG

System.String

System.Char[]

GetString

GetChars

LONG RAW

System.Byte[]

GetBytes

NCHAR

System.String

System.Char[]

GetString

GetChars

NCLOB

System.String

System.Char[]

GetString

GetChars

NUMBER

System.Decimal

System.Byte

System.Int16

System.Int32

System.Int64

System.Single

System.Double

GetDecimal

GetByte

GetInt16

GetInt32

GetInt64

GetFloat

GetDouble

NVARCHAR2

System.String

System.Char[]

GetString

GetChars

RAW

System.Byte[]

GetBytes

REF

System.String

GetString

ROWID

System.String

System.Char[]

GetString

GetChars

TIMESTAMP

System.DateTime

GetDateTime

TIMESTAMP WITH LOCAL TIME ZONE

System.DateTime

GetDateTime

TIMESTAMP WITH TIME ZONE

System.DateTime

GetDateTime

UROWID

System.String

System.Char[]

GetString

GetChars

VARCHAR2

System.String

System.Char[]

GetString

GetChars

XMLType

System.String

System.Xml.XmlReader

GetString

GetXmlReader

OracleDataReaderオブジェクトの一部のメソッドおよびプロパティでは、列の精度とスケールに基づいて、ODP.NETでNUMBER列を.NETタイプにマップする必要があります。これらのメンバーは、次のとおりです。

- Itemプロパティ

- GetFieldTypeメソッド

- GetValueメソッド

- GetValuesメソッド

ODP.NETは、次の.NETタイプを順に検証して、列の値の範囲全体を表すリストの最初の.NETタイプを選択することで、適切な.NETタイプを決定します。

- System.Byte

- System.Int16

- System.Int32

- System.Int64

- System.Single

- System.Double

- System.Decimal

列の値の範囲全体を表す.NETタイプが存在しない場合、列値をSystem.Decimalタイプとして表そうとします。列の値をSystem.Decimalとして表せない場合、例外が発生します。

たとえば、2つの列をNUMBER(4,0)およびNUMBER(10,2)として定義してみます。列の値の範囲全体を表す前のリストでは、最初の.NETタイプはそれぞれSystem.Int16とSystem.Doubleです。次に、列をNUMBER(20,10)として定義してみます。この場合、列の値の範囲全体を表す.NETタイプが存在しないため、列の値をSystem.Decimalタイプとして戻そうとします。列の値をSystem.Decimalタイプとして表せない場合、例外が発生します。

OracleDataAdapterのFillメソッドは、OracleDataReaderオブジェクトを使用して、.NETタイプのDataTableまたはDataSetを移入あるいはリフレッシュします。その結果、DataTableまたはDataSetのNUMBER列を表すために使用される.NETタイプも、その列の精度とスケールに依存します。

関連項目:

- 「OracleDataReaderクラス」

- 「OracleDataAdapterクラス」

- 「Item」

- 「GetFieldType」

- 「GetValues」

- 「GetValue」

ODP.NETタイプのアクセッサ

ODP.NETは、データベースのデータ型をネイティブに表すプロバイダ固有のタイプを公開します。これらのODP.NETタイプにより、対応する.NETタイプよりもパフォーマンスおよび機能性が上回る機能が提供される場合があります。ODP.NETタイプは、それぞれの型指定アクセッサをコールすることで、OracleDataReaderオブジェクトから取得できます。

関連項目:
すべてのODP.NETタイプのリストは、「ODP.NETタイプの概要」を参照してください。

表3-13には、ODP.NETがOracleネイティブ・タイプのODP.NETタイプを取得する際に使用する有効なタイプのアクセッサがリストされています。

表3-13 ODP.NETタイプのアクセッサ

Oracleネイティブ・データ型

ODP.NETタイプ

型指定アクセッサ

BFILE

OracleBFile

GetOracleBFile

BINARY_DOUBLE

OracleDecimal

GetOracleDecimal

BINARY_FLOAT

OracleDecimal

GetOracleDecimal

BLOB

OracleBlob

OracleBlob

OracleBinary

GetOracleBlob

GetOracleBlobForUpdate

GetOracleBinary

CHAR

OracleString

GetOracleString

CLOB

OracleClob

OracleClob

OracleString

GetOracleClob

GetOracleClobForUpdate

GetOracleString

DATE

OracleDate

GetOracleDate

INTERVAL DAY TO SECOND

OracleIntervalDS

GetOracleIntervalDS

INTERVAL YEAR TO MONTH

OracleIntervalYM

GetOracleIntervalYM

LONG

OracleString

GetOracleString

LONG RAW

OracleBinary

GetOracleBinary

NCHAR

OracleString

GetOracleString

NCLOB

OracleString

GetOracleString

NUMBER

OracleDecimal

GetOracleDecimal

NVARCHAR2

OracleString

GetOracleString

RAW

OracleBinary

GetOracleBinary

REF

OracleRef

GetOracleRef

ROWID

OracleString

GetOracleString

TIMESTAMP

OracleTimeStamp

GetOracleTimeStamp

TIMESTAMP WITH LOCAL TIME ZONE

OracleTimeStampLTZ

GetOracleTimeStampLTZ

TIMESTAMP WITH TIME ZONE

OracleTimeStampTZ

GetOracleTimeStampTZ

UROWID

OracleString

GetOracleString

VARCHAR2

OracleString

GetOracleString

XMLType

OracleString

OracleXmlType

GetOracleString

GetOracleXmlType

LONGおよびLONG RAWデータの取得

ODP.NETは、OracleDataReaderオブジェクトでReadメソッドを起動中に、データベースから行をフェッチおよびキャッシュします。この操作により取得されるLONGおよびLONG RAW列データの量は、InitialLONGFetchSizeにより決定されます。InitialLONGFetchSizeが、0、0より大きな値および-1に設定されている場合の動作の違いは、次の各項で説明します。

注意:
ODP.NETでは、CommandBehavior.SequentialAccess列挙値はサポートされていません。このため、LONGおよびLONG RAWデータはランダムにフェッチできます。

InitialLONGFetchSizeを0(ゼロ)または0(ゼロ)より大きな値に設定

OracleDataReaderオブジェクトでReadメソッドを起動中に、LONGまたはLONG RAW列データに対して指定された、InitialLONGFetchSizeの文字数またはバイト数がキャッシュに取り出されます。

デフォルトでは、InitialLONGFetchSizeは0に設定されています。この場合ODP.NETは、OracleDataReader オブジェクト上でのReadメソッドの起動中、LONGまたはLONG RAW列データのいずれもフェッチしません。データがキャッシュされないため、データベースのラウンド・トリップの原因となるLONGまたはLONG RAW列に対して型指定アクセッサ・メソッドが明示的に起動されると、LONGまたはLONG RAWデータがフェッチされます。

InitialLONGFetchSizeが0より大きな値に設定された場合、OracleDataReaderオブジェクトでReadメソッドを起動すると、ODP.NETにより、指定された量のデータがキャッシュされます。アプリケーションが型指定アクセッサ・メソッドによりInitialLONGFetchSize以下のデータ量を要求した場合、データベース・ラウンドトリップは発生しません。ただし、InitialLONGFetchSizeを超えるデータをフェッチするには、追加のデータベース・ラウンドトリップが必要です。

InitialLONGFetchSize文字数またはバイト数よりも多くのデータを取得するには、選択リストに次のいずれかが必要です。

- 主キー

- ROWID

- 一意の列 - (一意制約が定義されたか、または一意索引が作成された1セットの列として定義されたもの。セット内の少なくとも1列には、ここで定義されたNOT NULL制約があります)

選択リストに主キー列(ROWID)または一意の列がない状態で、LONGまたはLONG RAWデータ全体をフェッチするには、OracleCommandオブジェクトのInitialLONGFetchSizeプロパティのサイズを、検索に必要な文字数またはバイト数以上に設定します。

OracleDataReaderオブジェクトで適切な型指定アクセッサ・メソッド(LONGの場合GetChars、GetOracleStringまたはGetString、LONG RAWの場合GetOracleBinaryまたはGetBytes)がコールされたときに、LONGまたはLONG RAWデータが戻されます。

InitialLONGFetchSizeを-1に設定

InitialLONGFetchSizeを-1に設定すると、選択リストに主キー、ROWIDまたは一意の列を必要とせずに、SELECT問合せに対してデータベースからLONGまたはLONG RAWデータ全体をフェッチできます。

InitialLONGFetchSizeが-1に設定されると、OracleDataReaderオブジェクトでReadメソッドを起動中に、LONGまたはLONG RAWデータ全体が取り出され、キャッシュされます。OracleDataReaderオブジェクトでGetString、GetOracleString、GetChars、GetBytesまたはGetOracleBinaryをコールすると、列データ全体が戻されます。

LOBデータの取得

ODP.NETは、OracleDataReaderオブジェクトでReadメソッドを起動中に、データベースから行をフェッチおよびキャッシュします。この操作により取得されるLOB列データの量は、InitialLOBFetchSizeにより決定されます。

次の各項では、InitialLOBFetchSizeが、0、0より大きな値および-1に設定されている場合の動作の違いを説明します。

InitialLOBFetchSizeを0(ゼロ)に設定

デフォルトで、InitialLOBFetchSizeプロパティを0に設定すると、OracleDataReaderでメソッドGetOracleBlob()とGetOracleClob()メソッドが起動され、OracleBlobオブジェクトおよびOracleClobオブジェクトを取得できます。

InitialLOBFetchSizeが0(ゼロ)に設定されている場合、アプリケーションがCLOB列およびBLOB列に対してコールできる型指定アクセッサ・メソッドの全リストを次に示します。

- BLOB列に対してコールできるメソッド

- GetBytes

- GetValue

- GetValues

- GetOracleBinary

- GetOracleBlob

- GetOracleBlobForUpdate

- GetOracleValue

- GetOracleValues

- CLOB列に対してコールできるメソッド

- GetChars

- GetString

- GetValue

- GetValues

- GetOracleString

- GetOracleClob

- GetOracleClobForUpdate

- GetOracleValue

- GetOracleValues

InitialLOBFetchSizeを0(ゼロ)より大きな値に設定

InitialLOBFetchSizeを0より大きな値に設定すると、OracleDataReaderオブジェクトに対するReadメソッドを起動中に、ODP.NETにより、選択された各LOBに対してInitialLOBFetchSizeの文字数またはバイト数までのLOBデータがキャッシュされます。

この項では、キャッシュされるInitialLOBFetchSize文字数またはバイト数よりも多くのデータをフェッチする方法について説明します。この機能は、Oracle Database 10gリリース2(10.2)以上では変更されています。

Oracle Database 10gリリース2(10.2)以前での追加データの取得

Oracle Database 10gリリース2(10.2)以前のリリースでは、InitialLOBFetchSize文字数またはバイト数よりも多くのデータを取得するには、問合せ選択リストに次のいずれかが必要です。

- 主キー

- ROWID

- 一意の列 - (一意制約が定義されたか、または一意索引が作成された1セットの列として定義されたもの。セット内の少なくとも1列には、ここで定義されたNOT NULL制約があります)

OracleDataReaderオブジェクトで適切な型指定アクセッサ・メソッドがコールされると、要求されたLOBデータがデータベースからフェッチされます。

選択リストに主キー列(ROWID)または一意の列がない場合、LOBデータ全体をフェッチするには、OracleCommandオブジェクトのInitialLOBFetchSizeプロパティのサイズを、検索に必要な文字数またはバイト数以上に設定します。

InitialLOBFetchSizeプロパティを0(ゼロ)以外の値に設定すると、GetOracleBlob、GetOracleClob、GetOracleBlobForUpdateおよびGetOracleClobForUpdate型指定アクセッサ・メソッドが無効になります。

Oracle Database 10gリリース2(10.2)以上での追加データの取得

Oracle Database 10gリリース2(10.2)以上では、InitialLOBFetchSizeプロパティに設定された値に関係なく、型指定アクセッサが起動されるとLOBデータ全体が戻されます。指定されたInitialLOBFetchSizeよりも多くのデータを取得するために、主キー、ROWIDまたは一意の列を問合せ選択リストに含める必要はありません。

Oracle Database 10gリリース2以上では、InitialLOBFetchSizeが0より大きな値であっても、GetOracleBlob、GetOracleClob、GetOracleBlobForUpdateおよびGetOracleClobForUpdateメソッドを起動できるようになりました。

InitialLOBFetchSizeが0より大きな値に設定されている場合に、アプリケーションがCLOB列およびBLOB列に対してコールできる型指定アクセッサ・メソッドの全リストを次に示します。

- BLOB列に対してコールできるメソッド

- GetBytes

- GetValue

- GetValues

- GetOracleBinary

- GetOracleBlob

- GetOracleBlobForUpdate

- GetOracleValue

- GetOracleValues

- CLOB列に対してコールできるメソッド

- GetChars

- GetString

- GetValue

- GetValues

- GetOracleString

- GetOracleClob

- GetOracleClobForUpdate

- GetOracleValue

- GetOracleValues

InitialLOBFetchSizeを-1に設定

InitialLOBFetchSizeを-1に設定することで、選択リストに主キー、ROWIDまたは一意の列がない場合も、SELECT問合せに対してデータベースからLOBデータ全体をフェッチできます。InitialLOBFetchSizeが-1に設定されると、OracleDataReaderオブジェクトでReadメソッドを起動中に、LOB列データ全体がフェッチおよびキャッシュされます。OracleDataReaderオブジェクトでGetString、GetOracleString、GetChars、GetBytesまたはGetOracleBinaryをコールすると、すべてのデータを取得できます。

InitialLOBFetchSizeを-1に設定した場合にサポートされるメソッド

この項では、InitialLOBFetchSizeプロパティが-1に設定されている場合に、CLOBおよびBLOBデータ型に対してサポートされているメソッドとサポートされていないメソッドをリストしています。

表3-14では、CLOBデータ型に対してサポートされているメソッドとサポートされていないメソッドをリストしています。

表3-14 OracleDataReader CLOBメソッド

サポート対象

サポート対象外

GetChars

GetOracleClob

GetString

GetOracleClobForUpdate

GetValue

GetValues

GetOracleString

GetOracleValue

GetOracleValues

表3-15では、BLOBデータ型に対してサポートされているメソッドとサポートされていないメソッドをリストしています。

表3-15 OracleDataReader BLOBメソッド

サポート対象

サポート対象外

GetBytes

GetOracleBlob

GetValue

GetOracleBlobForUpdate

GetValues

GetOracleBinary

GetOracleValue

GetOracleValues

InitialLOBFetchSizeプロパティに関連したパフォーマンス上の考慮事項

この項では、異なる状況における、InitialLOBFetchSizeプロパティの様々な設定のメリットおよびデメリットについて説明します。また、使用しているデータベース・リリースに応じたパフォーマンスの強化方法についても説明します。

Oracle Database 10gリリース2(10.2)以前

InitialLOBFetchSizeプロパティをゼロ以外の値に設定すると、パフォーマンスが向上する場合があります。InitialLOBFetchSizeプロパティを使用すると、OracleBlobオブジェクトまたはOracleClobオブジェクトを使用して基礎となるLOBデータを検索するよりもパフォーマンスが向上します。これは、アプリケーションがOracleDataReaderオブジェクトからOracleBlobオブジェクトおよびOracleClobオブジェクトを取得する必要がなく、LOB列データのサイズがあまり大きくない場合に当てはまります。問合せで戻されるLOB列データのサイズがすべての行でほぼ同じ場合、InitialLOBFetchSizeは特に便利です。

通常、InitialLOBFetchSizeプロパティは、問合せで戻される行の80%以上のLOBデータのサイズより大きい値に設定することをお薦めします。たとえば、LOBデータのサイズが行の80%で1KB未満で、行の20%で1MB以上である場合、InitialLOBFetchSizeプロパティを1KBに設定します。

関連項目:

- 「LOBサポート」

- 「InitialLOBFetchSize」

- 「InitialLONGFetchSize」

Oracle Database 10gリリース2(10.2)以上

アプリケーションで、パフォーマンスとOracleBlobおよびOracleClob機能のどちらをとるかを選択する必要はありません。InitialLOBFetchSizeプロパティを設定すると、パフォーマンスは向上し、OracleBlobオブジェクトおよびOracleClobオブジェクトを使用する自由度はそのままです。

LOBデータのサイズが不明であったり、LOBデータのサイズが不規則に変化する場合は、InitialLOBFetchSizeプロパティをデフォルト値の0のままにしてください。これでも、ほとんどの場合でパフォーマンスが改善されます。

大部分の行についてInitialLOBFetchSizeプロパティのサイズをLOBデータ・サイズ以上に設定すると、パフォーマンスが劇的に改善されます。通常、InitialLOBFetchSizeプロパティは、問合せで戻される行の80%以上のLOBデータのサイズより大きい値に設定することをお薦めします。たとえば、LOBデータのサイズが行の80%で1KB未満で、行の20%で1MB以上である場合、InitialLOBFetchSizeプロパティを1KBに設定します。

関連項目:

- 「LOBサポート」

- 「InitialLOBFetchSize」

- 「InitialLONGFetchSize」

1回のデータベース・ラウンドトリップでフェッチされる行数の制御

アプリケーションのパフォーマンスは、アプリケーションがフェッチする必要のある行数と、行の検索に必要なデータベース・ラウンドトリップの回数に依存します。

FetchSizeの使用

FetchSizeプロパティは、データベース・ラウンドトリップからフェッチされたデータをキャッシュするためにODP.NETが割り当てるメモリー・サイズの合計をバイトで表したものです。

FetchSizeプロパティは、状況に応じてOracleCommand、OracleDataReaderまたはOracleRefCursorオブジェクトで設定できます。これは、OracleDataAdapterを使用してDataSetまたはDataTableに移入を行う場合のフェッチ・サイズを制御します。

FetchSizeプロパティをOracleCommandオブジェクトで設定した場合、新しく作成されたOracleDataReaderは、OracleCommandオブジェクトのFetchSizeプロパティを継承します。この継承されたFetchSizeは、そのままにしておくか、継承された値を上書きするように変更できます。OracleDataReaderオブジェクトのFetchSizeプロパティは、最初のReadメソッドを起動する前に変更できます。このメソッドは、FetchSizeプロパティで指定されたメモリーを割り当てます。データベースからの後続のフェッチはすべて、そのOracleDataReaderに割り当てられた同じキャッシュを使用します。このため、最初のReadメソッドを起動した後にFetchSizeを変更しても影響はありません。

FetchSizeの微調整

FetchSizeプロパティを微調整することで、アプリケーションは、メモリー使用率、および1回のデータベース・ラウンドトリップでフェッチされる行数を制御して、パフォーマンスを向上させることができます。

たとえば、問合せが100行を戻し、各行が1024バイトある場合、FetchSizeプロパティを102400に設定すると、1回のデータベース・ラウンドトリップで100行をフェッチできます。同じ問合せで、FetchSizeプロパティを10240に設定すると、100行を検索するのに10回のデータベース・ラウンドトリップが必要になります。アプリケーションが結果セットからすべての行をフェッチする必要がある場合、最初の使用例の方が2番目の使用例より高速になります。ただし、アプリケーションが結果セットから最初の10行のみをフェッチする必要がある場合、100行ではなく10行のみをフェッチするため、2番目の使用例の方がパフォーマンスが向上します。次の10行をフェッチする場合、行1から10に割り当てられたメモリーが行11から20で再び使用されます。

FetchSizeが大きいほど、より多くのシステム・メモリーが使用されます。クライアント・システムのメモリー・リソースに制限がある場合、開発者は大きなフェッチ・サイズを設定できません。

RowSizeプロパティの使用

OracleCommandまたはOracleRefCursorオブジェクトのRowSizeプロパティには、SELECT文の実行後に行サイズ(バイト)が移入されます。FetchSizeプロパティは、RowSize値とデータベース・ラウンドトリップごとにフェッチされる行数の積に設定することで、RowSizeプロパティに応じた値に設定できます。

たとえば、FetchSizeをRowSize * 10に設定すると、OracleDataReaderオブジェクトでは、データベース・ラウンドトリップごとに10行のみが強制的にフェッチされます。各列のデータ長によってRowSizeが変わることはありません。RowSizeは、SELECT文が実行されるデータベース表のメタデータ情報から正確に決定されます。

RowSizeプロパティを使用すると、次の項で説明するように、設計時または実行時にFetchSizeプロパティを設定できます。

レジストリ内のFetchSize値の設定

HKLM\Software\Oracle\ODP.NET\version\FetchSizeレジストリ・エントリは、特定のバージョンのODP.NETを使用するすべてのアプリケーションに対するデフォルトの結果セットのフェッチ・サイズをバイト単位で指定するように設定できます。または、アプリケーション構成ファイルまたはweb.configファイルのFetchSize属性で、特定のアプリケーションに対するデフォルト値を指定できます。デフォルトのフェッチ・サイズは131072バイトです。この値は、実行時にアプリケーションのFetchSizeプロパティをOracleCommandまたはOracleDataReaderに対してプログラムで設定することによって無視できます。

設計時のFetchSize値の設定

特定のSELECT文の行サイズが前の実行ですでにわかっている場合、OracleCommandオブジェクトのFetchSize値は、設計時に、その行サイズとアプリケーションがデータベース・ラウンドトリップごとにフェッチする必要がある行数の積に設定できます。OracleCommandオブジェクトのFetchSize値セットは、OracleCommandオブジェクトでExecuteReaderメソッドを起動したときに作成されたOracleDataReaderオブジェクトにより継承されます。OracleCommandオブジェクトでFetchSizeを設定するのではなく、OracleDataReaderで直接FetchSizeを設定することもできます。いずれの場合にも、実行時にRowSizeプロパティ値にアクセスしなくても、FetchSizeは設計時に設定されます。

実行時のFetchSize値の設定

設計時に行サイズがわからないアプリケーションでは、OracleCommandオブジェクトのRowSizeプロパティを使用して、OracleDataReaderオブジェクトのFetchSizeプロパティを設定できます。RowSizeプロパティは、行のサイズに基づいて、動的な方法でFetchSizeプロパティを設定します。

OracleCommandオブジェクトでExecuteReaderメソッドを起動してOracleDataReaderオブジェクトを取得した後に、RowSizeプロパティが行のサイズ(バイト)とともに移入されます。RowSizeプロパティを使用することで、アプリケーションは、OracleDataReaderオブジェクトのFetchSizeプロパティを、RowSizeプロパティ値とアプリケーションがデータベース・ラウンドトリップごとにフェッチする必要がある行数の積に動的に設定できます。この使用例では、実行時にRowSizeプロパティにアクセスすることでFetchSizeが設定されます。

PL/SQL REF CURSORおよびOracleRefCursor

REF CURSORは、Oracle PL/SQL言語でのデータ型です。Oracle Database内のカーソルまたは結果セットを表します。OracleRefCursorオブジェクトは、REF CURSOR型に対応するODP.NETタイプです。

この項では、REF CURSORデータ型およびOracleRefCursorオブジェクトを使用する際の次の点について説明します。

- OracleRefCursorオブジェクトの取得

- REF CURSORデータ型の取得

- REF CURSORからのOracleDataReaderへの移入

- REF CURSORからのDataSetへの移入

- REF CURSORからのOracleRefCursorへの移入

- REF CURSORから取得したDataSetの更新

- REF CURSORに対するExecuteScalarメソッドの動作

- ストアド・プロシージャへのREFカーソルの引渡し

OracleRefCursorオブジェクトの取得

OracleRefCursorオブジェクトにはコンストラクタがありません。PL/SQLストアド・プロシージャ、ストアド・ファンクションまたは無名ブロックからパラメータ値として取得できるのみです。

OracleRefCursorオブジェクトは接続されたオブジェクトです。OracleRefCursorオブジェクトを戻すコマンドの実行に使用される接続が、コマンドの存続期間にわたり必要になります。OracleRefCursorオブジェクトに関連付けられている接続がクローズされると、OracleRefCursorオブジェクトは使用できなくなります。

REF CURSORデータ型の取得

REF CURSORデータ型は、OracleDataReader、DataSetまたはOracleRefCursorオブジェクトとして取得できます。REF CURSORデータ型をOracleRefCursorオブジェクトとして取得する場合は、OracleDataReaderオブジェクトの作成またはDataSetへの移入に使用できます。REF CURSORデータ型にアクセスするときは、常にOracleDbType.RefCursorパラメータとしてバインドする必要があります。

REF CURSORからのOracleDataReaderへの移入

REFCURSORデータ型は、OracleCommandオブジェクトのExecuteReaderメソッドを呼び出すことでOracleDataReaderとして取得できます。OracleDbTypeプロパティが設定された出力パラメータは、OracleDbType.RefCursorにバインドされます。タイプOracleDbType.RefCursorの出力パラメータは、ExecuteReaderメソッドが起動された後は移入されません。

複数の出力REF CURSORパラメータがある場合、次のREF CURSORデータ型にアクセスするにはOracleDataReaderオブジェクトのNextResultメソッドを使用します。OracleDataReaderのNextResultメソッドは、REF CURSORに対して順次アクセスを提供します。一時点でアクセスできるREF CURSORデータ型は1つのみです。

対応するREF CURSORデータ型に対してOracleDataReaderオブジェクトが作成される順序は、パラメータがバインドされている順序に依存します。PL/SQLストアド・プロシージャがREF CURSORデータ型を戻した場合は、これが最初のOracleDataReaderオブジェクトになり、出力されるすべてのREF CURSORデータ型はパラメータがバインドされている順序に従います。

REF CURSORからのDataSetへの移入

FillメソッドによりDataSetに正しく移入するには、OracleDataAdapterのSelectCommandプロパティをタイプOracleDbType.RefCursorの出力パラメータにバインドする必要があります。Fillメソッドが正常に実行されると、REF CURSORデータ型を表すDataTableがDataSetに移入されます。

コマンドの実行で複数のREF CURSORデータ型が戻されると、DataSetには複数のDataTableオブジェクトが移入されます。

Oracle Data Provider for .NETリリース11.1.0.6.20では、DataTableに移入されるREF CURSORを識別するため、拡張プロパティのREFCursorNameがDataTableに導入されています。

このプロパティは、DataSetに複数のREF CURSOR(その中の1つ以上がNULL)が移入されている場合に特に便利です。たとえば、3つのREF CURSORを戻すストアド・プロシージャを実行してDataSetが移入され、2番目のREF CURSORがNULLである場合、1番目のDataTableに対するREFCursorNameプロパティ値はREFCursorで、2番目のDataTableに対する値はREFCursor2です。NULL REF CURSORに対してDataTableは移入されません。

REF CURSORからのOracleRefCursorへの移入

1つ以上のREF CURSORデータ型を戻すコマンドに対してExecuteNonQueryが起動されると、OracleDbType.RefCursorとしてバインドされている各OracleCommandパラメータはOracleRefCursorオブジェクトへの参照を取得します。

OracleRefCursorオブジェクトからOracleDataReaderオブジェクトを作成するには、OracleRefCursorオブジェクトからGetDataReaderメソッドを起動します。後続のGetDataReaderメソッドへのコールでは、同一のOracleDataReaderオブジェクトへの参照が戻されます。

DataSetにOracleRefCursorオブジェクトを移入するには、OracleRefCursorオブジェクトを取るOracleDataAdapterクラスのFillメソッドをアプリケーションで起動できます。OracleDataReaderオブジェクトと同じく、OracleRefCursorオブジェクトも順方向専用です。したがって、OracleRefCursorオブジェクトから行が読み取られると、問合せから再度移入されないかぎり、同じ行は取得できません。

コマンドの実行で複数のREF CURSORデータ型がOracleRefCursorオブジェクトとして戻される場合、アプリケーションではOracleDataReaderオブジェクトを作成するか、特定のOracleRefCursorオブジェクトをDataSetに移入するかを選択できます。OracleRefCursorオブジェクトから作成されるOracleDataReaderオブジェクトまたはDataSetオブジェクトはすべて同時にアクティブになり、任意の順序でアクセスできます。

REF CURSORから取得したDataSetの更新

REF CURSOR型は更新不可能です。ただし、DataSetから取り出したデータは更新できます。このため、OracleDataAdapterクラスには、REF CURSORデータの更新をすべてデータベースにフラッシュするカスタムSQL文が必要になります。

REF CURSORの更新のためのSQLの生成にOracleCommandBuilderオブジェクトを使用することはできません。

REF CURSORに対するExecuteScalarメソッドの動作

次のいずれかの場合、ExecuteScalarメソッドは、REF CURSORの最初の行の最初の列の値を戻します。

- ストアド・ファンクション実行の戻り値

- ストアド・プロシージャ実行の最初のバインド・パラメータ

関連項目:
詳細は、Oracle Databaseアプリケーション開発者ガイド-ラージ・オブジェクトを参照

ストアド・プロシージャへのREFカーソルの引渡し

アプリケーションは、PL/SQLのストアド・プロシージャまたはファンクションからREF CURSORタイプを取り出して、別のストアド・プロシージャまたはファンクションに渡すことができます。この機能は、ストアド・プロシージャまたはファンクションが.NETアプリケーションにREF CURSORタイプを戻し、アプリケーションがそのロジックに応じて別のストアド・プロシージャまたは処理にこのREF CURSORを渡す場合に便利です。.NETアプリケーション内のREF CURSORタイプからデータを取り出す場合、そのデータを別のストアド・プロシージャに戻すことはできないので注意してください。

次の例では、REF CURSORの引渡しを示しています。

/*
connect scott/tiger@oracle
create table test (col1 number);
insert into test(col1) values (1);
commit;

create or replace package testPkg as type empCur is REF Cursor;
end testPkg;
/

create or replace procedure testSP(param1 IN testPkg.empCur, param2 OUT NUMBER)
as
begin
FETCH param1 into param2;
end;
/
*/

// C#

using System;
using Oracle.DataAccess.Client;
using System.Data;

class InRefCursorParameterSample
{
static void Main()
{
OracleConnection conn = new OracleConnection
("User Id=scott; Password=tiger; Data Source=oracle");

conn.Open(); // Open the connection to the database

// Command text for getting the REF Cursor as OUT parameter
String cmdTxt1 = "begin open :1 for select col1 from test; end;";

// Command text to pass the REF Cursor as IN parameter
String cmdTxt2 = "begin testSP (:1, :2); end;";

// Create the command object for executing cmdTxt1 and cmdTxt2
OracleCommand cmd = new OracleCommand(cmdTxt1, conn);

// Bind the Ref cursor to the PL/SQL stored procedure
OracleParameter outRefPrm = cmd.Parameters.Add("outRefPrm",
OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);

cmd.ExecuteNonQuery(); // Execute the anonymous PL/SQL block

// Reset the command object to execute another anonymous PL/SQL block
cmd.Parameters.Clear();
cmd.CommandText = cmdTxt2;

// REF Cursor obtained from previous execution is passed to this
// procedure as IN parameter
OracleParameter inRefPrm = cmd.Parameters.Add("inRefPrm",
OracleDbType.RefCursor, outRefPrm.Value, ParameterDirection.Input);

// Bind another Number parameter to get the REF Cursor column value
OracleParameter outNumPrm = cmd.Parameters.Add("outNumPrm",
OracleDbType.Int32, DBNull.Value, ParameterDirection.Output);

cmd.ExecuteNonQuery(); //Execute the stored procedure

// Display the out parameter value
Console.WriteLine("out parameter is: " + outNumPrm.Value.ToString());
}
}

暗黙的なREF CURSORのバインド

ODP.NET 11gリリース2(11.2.0.3.0)以上では、.NETコードにREF CURSORパラメータを明示的にバインドせずに、このパラメータを使用するストアド・プロシージャをアプリケーションで実行できます。

読取り専用の結果セット(OracleDataReaderを使用するREF CURSORなど)では、REF CURSORのスキーマ情報が自動的に取得されます。

更新可能なREF CURSORやEntity Frameworkを使用する場合など、開発者は、アプリケーションで暗黙的なREF CURSORをバインドできるように、REF CURSORのスキーマ情報を定義する必要のある場合があります。Entity Frameworkアプリケーションでは、暗黙的なREF CURSORのバインドを使用して、REF CURSORデータから複合型がインスタンス化されます。アプリケーションのapp.config、web.configまたはmachine.config .NET構成ファイルで、REF CURSORのバインド情報およびメタデータ情報を指定する必要があります。

.NET構成ファイルで指定した属性は、REF CURSORを表すOracleDataReaderオブジェクトからスキーマ情報をリクエストする際にも使用されます。これは、SELECTを使用して単一表から作成されるREF CURSORについて、OracleDataAdapterおよびOracleCommandBuilderを使用してその表を更新できることを意味します。

Entity Frameworkを使用する際は、関数インポートによって、明示的にバインドされたREF CURSORが戻されます。REF CURSORは、複合型またはエンティティ型の集合として戻されます。複合型の集合を戻すには、.NET構成ファイルでREF CURSORのバインド情報およびメタデータ情報を定義する必要があります。エンティティ型の集合を戻すには、.NET構成ファイルでバインド情報のみを定義する必要があります。

この項の内容は次のとおりです。

- .NET構成ファイルでのREF CURSORのバインド情報およびメタデータ情報の指定

- 構成ファイルおよびアプリケーションのサンプル

- 使用上の考慮事項

.NET構成ファイルでのREF CURSORのバインド情報およびメタデータ情報の指定

REF CURSORの情報は、.NET構成ファイルのoracle.dataacccess.client構成セクションで指定します。各情報に対して<add>要素を使用します。add要素では、name-value属性を使用してREF CURSORの情報を指定します。バインド情報を指定するには、次のフォーマットを使用します。

<add name="SchemaName.PackageName.StoredProcedureName.RefCursor.RefCursorParameterPositionOrName"
value="implicitRefCursor bindinfo='mode=InputOutput|Output|ReturnValue'" />

メタデータ情報を指定するには、次のフォーマットを使用します。

<add name="SchemaName.PackageName.StoredProcedureName.RefCursorMetaData.RefCursorParameterPositionorName.Column.ColumnOrdinal"
value="implicitRefCursor metadata=AttributesList" />

add要素は、REF CURSORの各列に対して定義する必要があります。たとえば、5つの列を返すREF CURSORでは、構成ファイルで5つのadd要素を定義する必要があります。

各add要素には、name属性およびvalue属性が含まれます。value属性は、implicitRefCursorで始まり、次にバインド情報またはメタデータ情報を指定するためのbindinfo属性またはmetadata属性が続く必要があります。

bindinfo情報は、ODP.NETで、REF CURSORパラメータのバインドに使用されます。metadata情報は、ODP.NETで、スキーマ情報を適切なREF CURSORと関連付けるために使用されます。メタデータは、パラメータとその値を含む属性リストで構成されます。

SchemaName、PackageNameおよびStoredProcedureNameでは、大/小文字が区別されます。暗黙的なREF CURSORのバインドを使用するストアド・プロシージャを実行するには、name属性のSchemaName.PackageName.StoredProcedureNameが、そのストアド・プロシージャのデータ・ディクショナリに指定されている名前と完全に一致している必要があります。

注意:
Entity Framework外で暗黙的なREF CURSORのバインド機能を使用する場合は、.NET構成ファイルおよびOracleCommand CommandTextで、ストアド・プロシージャ名の前にスキーマ名が連結されている必要がありません。

データベースのスキーマ名、パッケージ名またはストアド・プロシージャ名に小文字が含まれる場合は、小文字が保持されるように、構成ファイルで名前を二重引用符(")で囲む必要があります。name属性内で二重引用符を使用する必要がある場合は、&quot;を使用します。たとえば、データベースのスキーマ名がHrSchema、パッケージ名がHrPackage、ストアド・プロシージャ名がHrStoredProcedureである場合、構成ファイルには次を使用する必要があります。

<add name="&quot;HrSchema&quot;.&quot;HrPackage&quot;.&quot;HrStoredProcedure&quot;.RefCursorMetaData . . . />

デフォルトで、これらの名前はOracle Databaseに大文字で格納されます。ODP.NETではデフォルトの動作が想定されるため、二重引用符を使用して明示的に小文字を保持しないかぎり、すべての名前が大文字に変換されます。

注意:
SchemaName、PackageName、StoredProcedureNameまたはParameterNameは、名前にピリオド(「.」)を含むことができません。たとえば、P.0はパラメータ名として許可されません。

名前属性のRefCursorParameterPositionOrNameは、名前指定によるバインドと位置指定によるバインドのいずれを使用するかに基づいて、パラメータ位置(位置指定によるバインドの場合)またはパラメータ名(名前指定によるバインドの場合)に適切に設定する必要があります。ファンクションでは、位置は0ベースであり、位置0は戻り値を表します。プロシージャでは、戻り値が存在しないため、位置は1ベースです。たとえば、ストアド・プロシージャで5つのパラメータが許可され、3番目と5番目のパラメータ位置にある2つのREF CURSORのみが返される場合、.NET config REF CURSORのバインド情報には、位置3に1つと位置5に1つのエントリが含まれます。

名前によるバインドを使用する場合は、属性名によってREF CURSORパラメータを識別します。nameには、そのストアド・プロシージャのデータ・ディクショナリで指定されている名前と同じ名前を、大/小文字を区別して使用する必要があります。

bindinfoで、modeはパラメータのディレクションを指定します。モードは、InputOutput、Output、ReturnValueのいずれかである必要があります。

注意:
入力パラメータとしてのREF CURSORについては、暗黙的なREF CURSORのバインドがサポートされていません。
modeがInputに設定されているREF CURSORのエントリが.NET構成ファイルに含まれる場合は、実行時に例外がスローされます。

metadataでは、AttributesListにパラメータのリストが含まれます。表3-16に、AttributesListに含むことのできるパラメータを示します。

例3-2に、bindinfoを使用するadd要素のサンプルを示します。ここで、スキーマ名はSCOTTで、ストアド・プロシージャ名はTESTPROCです。パラメータ名はparameter1です。モードはoutputです。

例3-2 バインド情報を含むadd要素の使用

<add name="SCOTT.TESTPROC.RefCursor.parameter1" value="implicitRefCursor
bindinfo='mode=Output'" />

例3-3に、metadataを使用するadd要素のサンプルを示します。

例3-3 メタデータを含むadd要素の使用

<add name="scott.TestProc.RefCursorMetaData.parameter1.Column.0"
value="implicitRefCursor metadata='ColumnName=EMPNO;BaseColumnName=EMPNO;
BaseSchemaName=SCOTT;BaseTableName=EMP;NativeDataType=number;
ProviderType=Int32;DataType=System.Int32;ColumnSize=4;AllowDBNull=false;
IsKey=true'" />

表3-16 属性リストで許可されるパラメータ

名前

タイプ

Entity Frameworkで必須/オプション

説明

ColumnName

System.String

必須

列の名前です。

ProviderType

Oracle.DataAccess.Client.OracleDbType

必須

列のデータベース列タイプ(OracleDbType)

NativeDataType

System.String

必須

Oracleタイプ。たとえば、NCLOBなどです。

BaseColumnName

System.String

オプション

列に別名が使用されている場合の、データベース内の列名。

BaseSchemaName

System.String

オプション

列を含むデータベース内のスキーマ名。

BaseTableName

System.String

オプション

列を含むデータベース内の表名またはビュー名。

ColumnSize

System.Int64

オプション

列内の値として可能な最大長

NumericPrecision

System.Int16

オプション

列が数値のデータ型の場合の、列の最大精度。

NumericScale

System.Int16

オプション

列が数値のデータ型の場合の、列の最大スケール。

IsUnique

System.Boolean

オプション

列値が一意かどうかを示します。

IsKey

System.Boolean

オプション

列がキー列かどうかを示します。REF CURSORの情報を使用して更新する表では、REF CURSORメタデータの1つ以上の列で、この値がtrueに設定されている必要があります

IsRowID

System.Boolean

オプション

列がROWIDの場合はtrue、それ以外の場合はfalse。

DataType

System.RuntimeType

オプション

共通言語のランタイム型にマップします。

AllowDBNull

System.Boolean

オプション

null値が許可されている場合はtrue、それ以外の場合はfalse

IsAliased

System.Boolean

オプション

列が別名の場合はtrue、それ以外の場合はfalse。

IsByteSemantic

System.Boolean

オプション

IsByteSemanticの場合は次のとおりです。

- ColumnSize値にバイト・セマンティクスが使用されている場合はtrue

- ColumnSizeにキャラクタ・セマンティクスが使用されている場合はfalse

IsExpression

System.Boolean

オプション

列が式の場合はtrue、それ以外の場合はfalse。

IsHidden

System.Boolean

オプション

列が非表示の場合はtrue、それ以外の場合はfalse。

IsReadOnly

System.Boolean

オプション

列が読取り専用の場合はtrue、それ以外の場合はfalse

IsLong

System.Boolean

オプション

true(列がLONG、LONG RAW、BLOB、CLOBまたは

BFILE型の場合)、false(それ以外の場合)。

UdtTypeName

System.String

オプション

UDTのタイプ名。

ProviderDBType

System.Data.DbType

オプション

System.Data.DbType

ObjectName

System.String

オプション

オブジェクトの名前を表します。

表3-16にリストされている一部の属性については、結果セットのメタデータを使用して、値が自動的に設定されます。開発者は、明示的に値を設定して、デフォルトの値を上書きできます。

特定の操作でオプションとしてリストされている一部の属性について、明示的に定義する必要のある場合があります。たとえば、更新可能なREF CURSORでは、キー情報を定義する必要があります。

構成ファイルおよびアプリケーションのサンプル

この項では、サンプル・アプリケーションを構築して、暗黙的なREF CURSORのバインドを説明します。この章の内容は、次のとおりです。

- ストアド・プロシージャおよびストアド・ファンクションのサンプル

- アプリケーション構成ファイルのサンプル

- 構成ファイルを使用するアプリケーションのサンプル

ストアド・プロシージャおよびストアド・ファンクションのサンプル

CREATE OR REPLACE FUNCTION GETEMP (
EMPID IN NUMBER) return sys_refcursor is
emp sys_refcursor;
BEGIN
OPEN emp FOR SELECT empno, ename FROM emp where empno = EMPID;
return emp;
END;
/

CREATE OR REPLACE PROCEDURE "GetEmpAndDept" (
EMPS OUT sys_refcursor,
DEPTS OUT sys_refcursor) AS
BEGIN
OPEN EMPS for SELECT empno, ename from emp;
OPEN DEPTS for SELECT deptno, dname from dept;
END;
/

アプリケーション構成ファイルのサンプル

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<oracle.dataaccess.client>
<settings>

<!-- The following is for SCOTT.GETEMP -->
<add name="SCOTT.GETEMP.RefCursor.0"
value="implicitRefCursor bindinfo='mode=ReturnValue'" />

<!-- The following is for SCOTT.GETEMP's REF CURSOR metadata -->
<add name="SCOTT.GETEMP.RefCursorMetaData.0.Column.0"
value="implicitRefCursor metadata='ColumnName=EMPNO;
BaseColumnName=EMPNO;BaseSchemaName=SCOTT;BaseTableName=EMP;
NativeDataType=number;ProviderType=Int32;ProviderDBType=Int32;
DataType=System.Int32;ColumnSize=4;NumericPrecision=10;
NumericScale=3;AllowDBNull=false;IsKey=true'" />

<add name="SCOTT.GETEMP.RefCursorMetaData.0.Column.1"
value="implicitRefCursor metadata='ColumnName=ENAME;
BaseColumnName=ENAME;BaseSchemaName=SCOTT;BaseTableName=EMP;
NativeDataType=varchar2;ProviderType=Varchar2;
ProviderDBType=String;DataType=System.String;
ColumnSize=10;AllowDBNull=true'" />

<!-- The following is for "SCOTT"."GetEmpAndDept" -->
<add name="SCOTT.&quot;GetEmpAndDept&quot;.RefCursor.EMPS"
value="implicitRefCursor bindinfo='mode=Output'" />

<!-- The following is for SCOTT.GETEMP's EMPS REF CURSOR metadata -->
<add name="SCOTT.&quot;GetEmpAndDept&quot;
.RefCursorMetaData.EMPS.Column.0"
value="implicitRefCursor metadata='ColumnName=EMPNO;
BaseColumnName=EMPNO;BaseSchemaName=SCOTT;BaseTableName=EMP;
NativeDataType=number;ProviderType=Int32;ProviderDBType=Int32;
DataType=System.Int32;ColumnSize=4;NumericPrecision=10;
NumericScale=3;AllowDBNull=false;IsKey=true'" />

<add name="SCOTT.&quot;GetEmpAndDept&quot;
.RefCursorMetaData.EMPS.Column.1"
value="implicitRefCursor metadata='ColumnName=ENAME;
BaseColumnName=ENAME;BaseSchemaName=SCOTT;BaseTableName=EMP;
NativeDataType=varchar2;ProviderType=Varchar2;
ProviderDBType=String;DataType=System.String;
ColumnSize=10;AllowDBNull=true'" />

<!-- The following is for SCOTT.GETEMP's DEPTS REF CURSOR metadata -->
<add name="SCOTT.&quot;GetEmpAndDept&quot;.RefCursor.DEPTS"
value="implicitRefCursor bindinfo='mode=Output'" />

<add name="SCOTT.&quot;GetEmpAndDept&quot;
.RefCursorMetaData.DEPTS.Column.0"
value="implicitRefCursor metadata='ColumnName=DEPTNO;
BaseColumnName=DEPTNO;BaseSchemaName=SCOTT;BaseTableName=DEPT;
NativeDataType=number;ProviderType=Int32;ProviderDBType=Int32;
DataType=System.Int32;ColumnSize=4;NumericPrecision=10;
NumericScale=3;AllowDBNull=false;IsKey=true'" />

<add name="SCOTT.&quot;GetEmpAndDept&quot;
.RefCursorMetaData.DEPTS.Column.1"
value="implicitRefCursor metadata='ColumnName=DNAME;
BaseColumnName=DNAME;BaseSchemaName=SCOTT;BaseTableName=DEPT;
NativeDataType=varchar2;ProviderType=Varchar2;
ProviderDBType=String;DataType=System.String;
ColumnSize=10;AllowDBNull=true'" />
</settings>
</oracle.dataaccess.client>
</configuration>

構成ファイルを使用するアプリケーションのサンプル

using System;
using System.Data;
using Oracle.DataAccess.Client;

class Program
{
static void Main(string[] args)
{
try
{
// Open a connection
string constr =
"User Id=scott;Password=tiger;Data Source=inst1";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Use implicit REF CURSOR binding
//   to execute SCOTT.GETEMP function
// Use bind by position as configured
//   in app.config for SCOT.GETEMP
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "SCOTT.GETEMP";
cmd.CommandType = CommandType.StoredProcedure;
cmd.BindByName = false;
OracleParameter empid = cmd.Parameters.Add("empid",
OracleDbType.Int32, ParameterDirection.Input);
empid.Value = 7654;

// Populate the DataSet
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
Console.WriteLine("Retrieved {0} row from EMP",
ds.Tables[0].Rows.Count);

// Use implicit REF CURSOR binding
//   to execute "SCOTT"."GetEmpAndDept" procedure
// Use bind by name as configured
//   in app.config for "SCOTT"."GetEmpAndDept"
cmd = con.CreateCommand();
cmd.CommandText = "\"SCOTT\".\"GetEmpAndDept\"";
cmd.CommandType = CommandType.StoredProcedure;
cmd.BindByName = true;
adapter = new OracleDataAdapter(cmd);
adapter.Fill(ds);
Console.WriteLine("Retrieved {0} rows from DEPT",
ds.Tables[1].Rows.Count);
}
catch (Exception ex)
{
// Output the message
Console.WriteLine(ex.Message);
if (ex.InnerException != null)
{
// If any details are available regarding
// errors in the app.config, print them out
Console.WriteLine(ex.InnerException.Message);
if (ex.InnerException.InnerException != null)
{
Console.WriteLine(
ex.InnerException.InnerException.Message);
}
}
}
}
}

使用上の考慮事項

この項では、暗黙的なREF CURSORの使用に関する次の考慮事項について説明します。

- CommandTextプロパティに関する考慮事項

- バインドに関する考慮事項

- オーバーロードされたストアド・プロシージャ

- タイプの初期化時の例外

- 関数インポートでのストアド・ファンクションの使用

CommandTextプロパティに関する考慮事項

ODP.NETアプリケーションでは、ストアド・プロシージャ名とOracleCommand CommandTextが完全に一致している必要があります。データベースのストアド・プロシージャ名がSCOTT.TESTPROCであると仮定します。この場合にCommandTextにTESTPROCを使用すると、ODP.NETによって、TESTPROCに一致するエントリのみが検索されます。TESTPROCに現行のスキーマ名が自動的に追加されません。このため、ここでは適切なCommandTextとして、SCOTT.TESTPROCを使用する必要があります。

また、CommandTextでは大/小文字が区別されるため、データベースのストアド・プロシージャ名と同じ大/小文字を使用する必要があります。このため、データベースのストアド・プロシージャ名がSCOTT.Testprocである場合は、CommandTextにSCOTT.Testprocを使用する必要があります。

バインドに関する考慮事項

REF CURSORパラメータに関する情報が構成ファイルに追加された場合、アプリケーションで、OracleCommandにREF CURSORパラメータを明示的にバインドしないようにします。ODP.NETでは、構成ファイルで指定された情報に基づいて、REF CURSORパラメータが適切な位置に自動的にバインドされます。アプリケーションのストアド・プロシージャにREF CURSOR以外のバラメータも存在する場合、これらのパラメータについては、引き続き明示的にOracleCommandにバインドする必要があります。

ストアド・プロシージャの構成ファイルで指定されている情報で、REF CURSORパラメータが名前で識別されている場合は、REF CURSOR以外のすべてのパラメータも名前でバインドする必要があります。また、この場合は、OracleCommandオブジェクトのBindByNameプロパティをtrueに設定する必要があります。Entity Frameworkでは、ストアド・プロシージャの実行に常にBindByNameが使用されます。.NET構成ファイルのパラメータ名には、データベースでストアド・プロシージャを作成する際に使用したものと同じ大/小文字を使用する必要があります。

OracleCommand BindByNameプロパティがfalseに設定されている場合(デフォルト)、ODP.NETでは、パラメータが位置に基づいてバインドされ、かつすべてのパラメータが適切な順序で指定されていると想定されます。この場合、構成ファイルで指定されているパラメータは、構成ファイルに表示される順序と同じ順序でバインドされます。

オーバーロードされたストアド・プロシージャ

ODP.NETでは、構成ファイル内に、同じ名前のストアド・プロシージャが複数存在することはできません。オーバーロードされたストアド・プロシージャを使用すると、ODP.NETアプリケーションの構成ファイルには、オーバーロードされた1つのストアド・プロシージャの情報のみが格納されます。

タイプの初期化時の例外

タイプの初期化時の例外は、.NET構成ファイルに無効なエントリがある場合に発生することがあります。捕捉した例外と内部例外を評価して、例外を発生させている.NET構成ファイル・エントリまたは属性設定を確認します。

ODP.NETトレースは、ODP.NETによって解析された.NET構成ファイル・エントリのうち、有効なエントリおよび無効なエントリを記録します。.NET構成ファイルに関連するエントリを検索するには、TraceLevelを開始、終了およびSQL文の情報レベルに設定します。エラーが発生している場合、暗黙的なREF CURSORのバインドに関連するトレース・エントリには、(REFCURSOR)エントリとともに(ERROR)が表示されます。

関数インポートでのストアド・ファンクションの使用

関数インポートでは、ストアド・プロシージャのみがサポートされ、ストアド・ファンクションはサポートされません。ストアド・ファンクションが.NET構成ファイルで適切に構成されている場合であっても、作成したAdd Function ImportダイアログをEntity Data Modelで使用する際に、ストアド・ファンクションによって返されるREF CURSORのメタデータ情報がGet Column Informationボタンによって返されません。

LOBサポート

ODP.NETは、ラージ・オブジェクト(LOB)データ型にアクセスして操作するための簡単かつ最適な方法を提供します。

注意:
SecureFilesは既存のODP.NET LOBクラスとともに使用できます。

この項の内容は次のとおりです。

- ラージ・キャラクタ・データ型とラージ・バイナリ・データ型

- Oracle Data Provider for .NET LOBオブジェクト

- DataSetを使用したLOBの更新

- OracleCommandおよびOracleParameterを使用したLOBの更新

- ODP.NET LOBオブジェクトを使用したLOBの更新

- 一時LOB

ラージ・キャラクタ・データ型とラージ・バイナリ・データ型

Oracle Databaseは、ラージ・キャラクタ・データ型とラージ・バイナリ・データ型をサポートしています。

ラージ・キャラクタ・データ型

- CLOB - キャラクタ・データを4GBまで格納できます。

- NCLOB - Unicode各国語キャラクタ・セット・データを4GBまで格納できます。

ラージ・バイナリ・データ型

- BLOB - 非構造化バイナリ・データを4GBまで格納できます。

- BFILE - 外部ファイルに格納されるバイナリ・データを4GBまで格納できます。

注意:
LONGデータ型およびLONG RAWデータ型は、下位互換性のためOracle9iで使用可能になっていますが、新しいアプリケーションでは使用しないでください。

Oracle Data Provider for .NET LOBオブジェクト

ODP.NETでは、LOBデータを操作するために、OracleBFile、OracleBlobおよびOracleClobの3つのLOB用オブジェクトが提供されます。

表3-17は、特定のOracle LOBタイプに使用するのに適したODP.NETオブジェクトを示しています。

表3-17 ODP.NET LOBオブジェクト

Oracle LOB型

ODP.NET LOBオブジェクト

BFILE

OracleBFile

BLOB

OracleBlob

CLOB

OracleClob

NCLOB

OracleClob

ODP.NET LOBオブジェクトは、OracleDataReaderで適切な型指定アクセッサをコールするか、適切なバインド・タイプのコマンド実行で、出力パラメータとして取得できます。

ODP.NET LOBオブジェクトはすべて、汎用的なStream操作を実行するために.NET Streamクラスから継承されます。LOBデータ(BFILEタイプを除く)は、Writeなどのメソッドを使用することで、ODP.NET LOBオブジェクトを使用して更新できます。読取りおよび書込み操作が実行されている場合、LOBオブジェクトのデータはキャッシュされません。このため、ReadまたはWriteの各要求は、データベース・ラウンドトリップを発生させます。OracleClobオブジェクトはReadメソッドをオーバーロードして、CLOBからデータを読み取る2つの方法を提供します。byte[]をバッファとして取得するReadメソッドは、Unicodeバイト配列としてCLOBデータを移入します。char[]をバッファとして取得するReadメソッドは、Unicode文字を移入します。

OracleBFileオブジェクトには拡張機能もあります。OracleBFileオブジェクトは、データが読み込まれる前に、OpenFileメソッドを使用して明示的にオープンする必要があります。以前にオープンしたBFILEをクローズするには、CloseFileメソッドを使用します。

ODP.NET LOBオブジェクトはすべて接続済のオブジェクトで、存続中は接続している必要があります。LOBオブジェクトに関連付けられた接続がクローズすると、LOBオブジェクトは使用できなくなり、処理が必要になります。

ODP.NET LOBオブジェクトが型指定アクセッサによってOracleDataReaderオブジェクトから取得される場合、Connectionプロパティは、OracleDataReaderオブジェクトで使用される同じOracleConnectionオブジェクトへの参照を使用して設定されます。LOBオブジェクトが出力パラメータとして取得される場合、Connectionプロパティは、OracleCommandオブジェクトで使用される同じOracleConnectionプロパティへの参照を使用して設定されます。一時LOBを作成するためにODP.NET LOBオブジェクト・コンストラクタを起動させることで、LOBオブジェクトが取得される場合、Connectionプロパティは、コンストラクタで指定されたOracleConnectionオブジェクトへの参照を使用して設定されます。

ODP.NET LOBオブジェクトのConnectionプロパティは読取り専用であり、存続中は変更できません。また、ODP.NET LOBタイプ・オブジェクトは、ODP.NET LOBオブジェクトで参照される同じOracleConnectionのコンテキスト内でのみ使用できます。たとえば、ODP.NET LOBオブジェクトのConnectionプロパティは、ODP.NET LOBオブジェクトがOracleCommandのパラメータである場合、OracleCommandオブジェクトと同じ接続を参照する必要があります。それ以外の場合、ODP.NETはコマンドの実行時に例外を発生させます。

関連項目:
Oracle Database 10g LOBの詳細とその使用方法は、Oracle Databaseアプリケーション開発者ガイド-ラージ・オブジェクトを参照

DataSetを使用したLOBの更新

BFILEデータおよびBLOBデータは、byte配列としてDataSetに格納され、CLOBデータおよびNCLOBデータは、stringとして格納されます。他のタイプも同様に、OracleDataAdapterオブジェクトを使用して、SQLの自動生成にOracleCommandBuilderを使用することで、LOBデータの変更を入力および更新できます。

Oracle LOB列には、最大4GBのデータを格納できます。LOBデータがDataSetにフェッチされると、DataSetがLOB列に保持できるLOBデータの実際の量は、.NET文字列タイプの最大サイズ(2GB)に制限されます。このため、2GBより大きいLOBデータをフェッチする場合、ODP.NET LOBオブジェクトを使用してデータの損失を防ぐ必要があります。

OracleCommandおよびOracleParameterを使用したLOBの更新

LOB列を更新するには、LOBデータをSQL文、無名PL/SQLブロックまたはストアド・プロシージャのパラメータとしてバインドします。パラメータ値は、NET Frameworkタイプ、ODP.NETタイプまたはODP.NET LOBオブジェクト・タイプとして設定できます。たとえば、.NET文字列データをOracle9i以降のデータベースのLOB列に挿入する場合、そのパラメータをOracleDbType.Varchar2としてバインドできます。値がOracleClobオブジェクトに設定されているパラメータの場合、パラメータをOracleDbType.Clobとしてバインドする必要があります。

ODP.NET LOBオブジェクトを使用したLOBの更新

Oracle BFILEは更新できないため、OracleBFileオブジェクトでBFILE列を更新することはできません。

ODP.NET LOBオブジェクトを使用してLOBデータを更新するには、2つの要件を満たす必要があります。

1. LOB列を選択する前に、トランザクションを開始する必要があります。
OracleTransaction CommitメソッドまたはRollbackメソッドが起動されたときにロックが解除されるように、コマンド実行の前にOracleConnectionでBeginTransactionメソッドを使用してトランザクションを開始する必要があります。

2. 行ごとに、または結果セット全体の一部として、LOB列が存在する行をロックする必要があります。

1. 結果セット全体のロック
SELECT文の最後にFOR UPDATE句を追加します。コマンドの実行後、結果セット全体がロックされます。

2. 行のロックには、2つのオプションがあります。

- OracleDataReaderでOracleDataReaderの型指定アクセッサの1つ(GetOracleClobForUpdateまたはGetOracleBlobForUpdate)を起動して、現在の行がロックされている間にODP.NET LOBオブジェクトを取得します。
この方法では、結果セットに主キー、一意の列またはROWIDが必要です。OracleDataReaderオブジェクトは行を一意に識別して、ロック用に再選択するためです。

- RETURNING句でLOBを戻すINSERTまたはUPDATE文を実行します。

一時LOB

一時LOBは、BLOB、CLOBおよびNCLOBオブジェクトに対してインスタンス化できます。一時LOBを表すODP.NET LOBオブジェクトをインスタンス化するには、OracleClobまたはOracleBlobコンストラクタを使用します。

一時ODP.NET LOBオブジェクトは、次の目的に使用できます。

- 空または空ではないLOBデータを使用して、LOB列を初期化および移入します。

- LOBタイプをSQL文、無名PL/SQLブロックまたはストアド・プロシージャへの入力パラメータとして渡します。

- CopyTo操作において、2つのLOBオブジェクト間のデータ送信のソースまたは宛先として機能します。

注意:
一時LOBはトランザクションを認識しません。コミット操作およびロールバック操作は、一時LOBで参照されるデータには影響しません。

ODP.NETにおけるXMLのサポート

ODP.NETでは、リレーショナル表およびオブジェクト・リレーショナル表やビューからXML文書としてデータを抽出できます。XML文書の使用により、データベースへの挿入、更新および削除もできます。Oracle Databaseは、データベースでのXML、Oracle XML DBの使用、高パフォーマンスなXML記憶域および取得に関連する技術の個別のグループにネイティブに対応しています。Oracle XML DBは、データベースを発展させたものであり、相互運用方式でSQLおよびXMLデータ・モデルの両方を包含しているため、従来のXMLをサポートできます。

ODP.NETにおけるXMLのサポートに関するサンプルは、次のディレクトリを参照してください。

ORACLE_BASE\ORACLE_HOME\ODP.NET\Samples

この項は次の項目で構成されています。

- サポートされるXML機能

- OracleXmlTypeおよび接続依存性

- データベースでのXMLTypeデータの更新

- OracleXmlTypeでのXMLデータの更新

- XMLの特殊文字

- 問合せの結果セットのXML形式での取得

- XMLを使用したデータ操作

サポートされるXML機能

ODP.NETにおけるXMLのサポートでは、次の機能が提供されます。

- XMLデータをそのままの形で、ネイティブなOracle Database型であるXMLTypeとして、データベースに格納します。

- Oracle DatabaseインスタンスからMicrosoft .NET環境へ、XMLデータとしてリレーショナル・データおよびオブジェクト・リレーショナル・データにアクセスし、Microsoft .NET Frameworkを使用してXMLを処理します。

- XMLデータを使用してデータベースに変更を保存します。

- XQuery文を実行します。

関連項目:
「XQueryサポート」

.NETアプリケーション開発者を対象として、これらの機能には次のものが含まれます。

- OracleCommand、OracleConnectionおよびOracleDataReaderクラスの拡張機能。

- 次のXML固有のクラス。

- OracleXmlType
OracleXmlTypeオブジェクトは、Oracle固有のXMLTypeデータの取得に使用されます。

- OracleXmlStream
OracleXmlStreamオブジェクトは、OracleXmlTypeオブジェクトからXMLデータを読取り専用の.NET Streamオブジェクトとして取得する際に使用されます。

- OracleXmlQueryProperties
OracleXmlQueryPropertiesオブジェクトは、XmlCommandTypeプロパティがQueryである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

- OracleXmlSaveProperties
OracleXmlSavePropertiesオブジェクトは、XmlCommandTypeプロパティがInsert、UpdateまたはDeleteである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

関連項目:

- 「OracleCommandクラス」

- 「OracleXmlTypeクラス」

- 「OracleXmlStreamクラス」

- 「OracleXmlQueryPropertiesクラス」

- 「OracleXmlSavePropertiesクラス」

- 『Oracle XML DB開発者ガイド』

XQueryサポート

ODP.NETでは、Oracle Database 10gリリース2(10.2)から、SQL/XML機能、XMLQueryおよびXMLTableのネイティブ実装により、XQuery言語がサポートされます。XQuery文を実行すると、通常Oracle XML DBはXQuery式を関連する問合せとして同じベース構造にコンパイルし値を求めます。問合せは最適化され、リレーショナル・データベースおよびXQuery固有の最適化技術の両方を活用して、Oracle XML DBはネイティブのXQueryエンジンとして動作します。すべてのXQuery式の処理は、ネイティブでコンパイルされたか、または関数的に値を求めたかにかかわらず透過的であり、プログラマはXQuery最適化の利点を活かすためにこれらのコードを変更する必要はありません。

関連項目:
OracleのXQueryサポートの詳細は、Oracle XML DB開発者ガイドを参照

OracleXmlTypeおよび接続依存性

OracleXmlTypeクラスの読取り専用のConnectionプロパティは、OracleXmlTypeクラスのインスタンス化に使用されるOracleConnectionオブジェクトへの参照を保持します。

OracleXmlTypeオブジェクトがOracleConnectionオブジェクトへの参照を取得する方法は、OracleXmlTypeクラスがインスタンス化される方法に応じて異なります。

- GetOracleXmlTypeメソッド、GetOracleValueメソッドまたはGetOracleValuesメソッドを使用してOracleDataReaderクラスからインスタンス化された場合
Connectionプロパティは、OracleDataReaderオブジェクトにより使用される同じOracleConnectionオブジェクトへの参照によって設定されます。

- OracleConnection型のいずれかのパラメータにより、OracleXmlTypeコンストラクタを起動してインスタンス化された場合
Connectionプロパティは、コンストラクタに指定された同じOracleConnectionオブジェクトへの参照によって設定されます。

- OracleXmlType(OracleClob)コンストラクタを起動してインスタンス化された場合
Connectionプロパティは、OracleClobオブジェクトにより使用されるOracleConnectionオブジェクトへの参照によって設定されます。

ある接続に関連付けられたOracleXmlTypeオブジェクトは、別の接続に使用できません。たとえば、あるOracleXmlTypeオブジェクトがOracleConnection Aを使用して取得される場合、そのOracleXmlTypeオブジェクトはOracleConnection Bを使用するコマンドの入力パラメータとして使用できません。アプリケーションは、OracleXmlTypeオブジェクトのConnectionプロパティをチェックすることで、OracleXmlTypeオブジェクトが、その接続プロパティで参照されるOracleConnectionのコンテキスト内でのみ使用されることを保証できます。それ以外の場合、ODP.NETでは例外が発生します。

データベースでのXMLTypeデータの更新

XMLType列の更新には、トランザクションは必要ありません。ただし、データベースの更新プロセス全体をトランザクション内にカプセル化することをお薦めします。これにより、エラーが発生した場合に更新をロールバックできます。

データベース内のXMLType列をOracle Data Provider for .NETを使用して更新するには、次のように複数の方法があります。

- DataSet、OracleDataAdapterおよびOracleCommandBuilderによる更新

- OracleCommandおよびOracleParameterによる更新

DataSet、OracleDataAdapterおよびOracleCommandBuilderによる更新

XMLType列がDataSetにフェッチされた場合、XMLTypeデータは.NET Stringとして表されます。

DataSet内のXMLTypeデータの変更には、特別な処理は必要ありません。XMLTypeデータは、DataSetに格納されたデータと同様に変更できます。変更が加えられ、OracleDataAdapter.Updateメソッドが起動されると、OracleDataAdapterオブジェクトにより、XMLTypeデータが確実に正しく処理されます。OracleDataAdapterオブジェクトでは、提供されているカスタムSQL文のINSERT、UPDATEまたはDELETEが使用されます。それ以外の場合は、データベースへの変更をフラッシュする際に、必要に応じてOracleCommandBuilderオブジェクトにより有効なSQL文が生成されます。

OracleCommandおよびOracleParameterによる更新

OracleCommandクラスは、特にOracleParameterオブジェクトの使用により、XMLTypeデータを更新するための強力な手段となります。データベース表内の列を更新するには、列の新しい値をコマンドの入力パラメータとして渡すことができます。

入力バインド

データベース内のXMLType列を更新するには、静的な値を使用してSQL文を実行できます。さらに、入力パラメータをSQL文、無名PL/SQLブロックまたはストアド・プロシージャにバインドし、XMLType列を更新できます。パラメータ値は、.NET Frameworkタイプ、ODP.NETタイプまたはOracleXmlTypeオブジェクトとして設定できます。

XMLType列はOracleXmlTypeオブジェクトを使用して更新できますが、OracleXmlTypeクラスのインスタンスを保持していても、データベース内のXMLType列を更新できることが保証されるわけではありません。

XMLType列のNULL値への設定

アプリケーションでは、次のように入力バインドを使用する方法または使用しない方法で、データベース内のXMLType列をNULL値に設定できます。

- 入力バインドによるXMLType列内のNULL値の設定
XMLType列をNULLに設定するには、アプリケーションにより、値がDBNull.Valueである入力パラメータをバインドできます。これによって、OracleCommandオブジェクトに対し、NULL値が挿入されることが示されます。

NULLのOracleXmlTypeオブジェクトを入力パラメータとして渡した場合、XMLType列にNULLが挿入されません。この場合、OracleCommandオブジェクトでは例外が発生します。

- 入力バインドを使用しないXMLType列内のNULL値の設定
次の例では、入力バインドを使用せずにXMLType列でNULL値を設定する方法を示しています。

// Create a table with an XMLType column in the database
CREATE TABLE XML_TABLE(NUM_COL number, XMLTYPE_COL xmltype);

アプリケーションでは、明示的にNULLを挿入するか、または次の例のようにXMLType列になにも挿入しないことで、この列にNULL値を設定できます。

insert into xml_table(xmltype_col) values(NULL);

update xml_table t set t.xmltype_col=NULL;

XMLType列の空のXMLデータへの設定

XMLType列は、次のSQL文を使用して、空のXMLデータにより初期化できます。

// Create a table with an XMLType column in the database
CREATE TABLE XML_TABLE(NUM_COL number, XMLTYPE_COL xmltype);

INSERT INTO XML_TABLE (NUM_COL, XMLTYPE_COL) VALUES (4,
XMLType.createxml('<DOC/>'));

OracleXmlTypeでのXMLデータの更新

OracleXmlTypeオブジェクトでXMLデータを更新するには、複数の方法があります。

- OracleXmlTypeオブジェクトのUpdateメソッドにXPATH式および新しい値を渡すことで、XMLデータを更新できます。

- XMLデータは、OracleXmlTypeオブジェクトのGetXmlDocumentメソッドを使用して、.NET FrameworkのXmlDocumentオブジェクトとしてクライアント側で取得できます。このため、このXMLデータは適切な.NET Frameworkクラスを使用して操作できます。.NET Frameworkクラスから、更新されたXMLデータにより新規のOracleXmlTypeを作成できます。この新規のOracleXmlTypeは、入力パラメータとしてUPDATE文またはINSERT文にバインドされます。

XMLの特殊文字

表3-18の次の文字は、XMLでは特殊な意味を持ちます。詳細は、XML 1.0の仕様を参照してください。

表3-18 XMLの特殊文字

特殊文字

XMLでの意味

実体エンコード

<

XMLタグの開始

&lt;

>

XMLタグの終了

&gt;

"

引用符

"

'

アポストロフィまたは一重引用符

'

&

アンパサンド

&amp;

これらの文字がXML要素内のデータとして使用されている場合、対応する実体エンコードに置き換えられます。

また、XML要素名では特定の文字が無効です。SQL識別子(列名など)がXML要素名にマップされている場合、これらの文字は、Unicodeの文字エンコードから導出された一連の16進数字に変換され、前置きのアンダースコア、小文字のxおよび後続のアンダースコアで囲まれます。空白はXML要素名では有効な文字ではありません。SQL識別子に空白文字が含まれる場合、対応するXML要素名において、空白文字が_x0020_に置き換えられます。これは、空白文字のUnicodeエンコードに基づいています。

問合せの結果セットのXML形式での取得

この項では、SQL問合せから結果セットをXMLデータ形式で取得する方法について説明します。

日時書式の処理

表3-19では、異なるデータベース・リリースにおける、データ取得時の日時書式の処理をリストしています。

表3-19 データ取得時の日時書式の処理

データベース・リリース

サポートされる日時書式

Oracle9iリリース2(9.2.x)およびOracle Database 10g

Oracle DATE型のデータは、セッションでNLS_DATE_FORMATを使用して指定された書式で取得されます。

TIMESTAMPおよびTIMESTAMP WITH TIME ZONE型のデータは、セッションでNLS_TIMESTAMP_FORMATおよびNLS_TIMESTAMP_TZ_FORMATを使用して指定された書式で取得されます。

結果として得られたXML文書を使用して、データベースに変更を保存する場合は、すべてのDATEおよびTIMESTAMPデータが、ISO日時書式:YYYY-MM-DDThh:mm:ss.sss(ISO書式表記法)の形でXML文書で取得される必要があります。

このためには、問合せを実行する前に、アプリケーションで、セッションにおける次のNLSセッション・パラメータについて、ALTER SESSION文を明示的に実行する必要があります。

- NLS_DATE_FORMATOracle日時書式(YYYY-MM-DD"T"HH24:MI:SS)に設定する必要があります。

- NLS_TIMESTAMP_FORMATOracle日時書式(YYYY-MM-DD"T"HH24:MI:SS.FF3)に設定する必要があります。

- NLS_TIMESTAMP_TZ_FORMATOracle日時書式(YYYY-MM-DD"T"HH24:MI:SS.FF3)に設定する必要があります。

Oracle Database 10gリリース2(10.2)以上

生成されたXMLのDATEおよびTIMESTAMP書式は、標準のXML Schema書式を基にしています。

XML Schema仕様の詳細は、次のURLを参照してください。

http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#isoformats

列データの特殊文字

問合せ内の選択リスト列のいずれかにあるデータに、XMLの特殊文字が含まれている場合(表3-18を参照)、結果であるXML文書では、これらの文字は対応する実体エンコードに置き換えられます。

次の例では、ODP.NETで列データ内の山カッコの特殊文字が処理される方法を示しています。

/* Database Setup
connect scott/tiger@oracle
drop table specialchars;
create table specialchars ("id" number, name varchar2(255));
insert into specialchars values (1, '<Jones>');
commit;
*/

// C#

using System;
using System.Data;
using System.Xml;
using Oracle.DataAccess.Client;

class QueryResultAsXMLSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";
con.Open();

// Create the command
OracleCommand cmd = new OracleCommand("", con);

// Set the XML command type to query.
cmd.XmlCommandType = OracleXmlCommandType.Query;

// Set the SQL query
cmd.CommandText = "select * from specialchars";

// Set command properties that affect XML query behavior.
cmd.BindByName = true;

// Set the XML query properties
cmd.XmlQueryProperties.MaxRows = -1;

// Get the XML document as an XmlReader.
XmlReader xmlReader = cmd.ExecuteXmlReader();
XmlDocument xmlDocument = new XmlDocument();

xmlDocument.PreserveWhitespace = true;
xmlDocument.Load(xmlReader);
Console.WriteLine(xmlDocument.OuterXml);

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
}
}

この表に対して次のXML文書が生成されます。山カッコを表すXML実体エンコードは太字で表記されます。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<id>1</id >
<NAME>&lt;Jones&gt;</NAME>
</ROW>
</ROWSET>

表名またはビュー名の特殊文字

表名またはビュー名に英数字以外の文字(アンダースコア(_)を除く)が含まれる場合、この表名またはビュー名は引用符で囲む必要があります。

たとえば、名前がtest'ingの表からすべてのエントリを選択するには、OracleCommandオブジェクトのCommandTextプロパティを次の文字列に設定する必要があります。

"select * from \"test'ing\"";

列名とXML要素名のマッピングにおける大/小文字区別

SQL識別子(列名)とXML要素名のマッピングは大/小文字が区別され、要素名は表またはビューの列名と大/小文字がまったく同じになります。

ただし、ルート・タグ名および行タグ名は大/小文字が区別されません。次の例では、この場合の大/小文字区別を示しています。

//Create the following table
create table casesensitive_table ("Id" number, NAME varchar2(255));

//insert name and id
insert into casesensitive_table values(1, 'Smith');

次のXML文書が生成されます。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<Id>1</Id>
<NAME>Smith</NAME>
</ROW>
</ROWSET>

Id列の要素名の大/小文字が列名と一致する点に注意してください。

列名とXML要素名のマッピング

SQL問合せにより生成された行ごとに、SQL識別子(列名)が、生成されたXML文書内のXML要素にマップされます。

// Create the following table
create table emp_table (EMPLOYEE_ID NUMBER(4), LAST_NAME varchar2(25));
// Insert some data
insert into emp_table values(205, 'Higgins');

SELECT * FROM EMP_TABLEというSQL問合せにより、次のXML文書が生成されます。

<?XML version="1.0"?>
<ROWSET>
<ROW>
<EMPLOYEE_ID>205</EMPLOYEE_ID>
<LAST_NAME>Higgins</LAST_NAME>
</ROW>
</ROWSET>

employees表のEMPLOYEE_IDおよびLAST_NAMEデータベース列は、生成されたXML文書のEMPLOYEE_ID要素およびLAST_NAME要素にマップされます。

この項では、データベースからXMLとして問合せ結果を取得する場合に、Oracle DatabaseでSQL識別子のXML要素名へのマッピングを処理する方法について説明します。デモでは、some id列を含むspecialchars表を使用します。

// Create the specialchars table
create table specialchars ("some id" number, name varchar2(255));

specialchars表には、空白文字が含まれるsome id列がある点に注意してください。XML要素名では、空白文字は使用できません。

問合せ結果をXMLで取得する場合、問合せの選択リスト内のSQL識別子には、XML要素名で無効となる文字を使用できます。これらのSQL識別子(列名など)がXML要素名にマップされている場合、これらの各文字は、Unicodeの文字エンコードから導出された一連の16進数字に変換され、前置きのアンダースコア、小文字のxおよび後続のアンダースコアで囲まれます。

このため、次の例のSQL問合せを使用して、specialchars表から結果をXML文書で取得できます。

select "some id", name from specialchars;

関連項目:
「XMLの特殊文字」

デフォルト・マッピングの修正

次の方法でXML要素名へのSQL識別子のデフォルト・マッピングを修正できます。

- ソースを変更します。ソース・スキーマ上にオブジェクト・リレーショナル・ビューを作成し、このビューを新規ソースにします。

- SQL問合せでカーソル副問合せおよびキャスト多重集合構造を使用します。

- SQL問合せで列名または属性名の別名を作成します。別名にアットマーク(@)を付加し、別名をXML要素ではなくXML属性にマップします。

- XML文書を変更します。Extensible Stylesheet Language Transformation(XSLT)を使用してXML文書を変換します。XSL文書およびパラメータを指定します。リレーショナル・データからXML文書が生成された後、変換が自動的に実行されます。これはパフォーマンスに影響する可能性があります。

- XML文書で使用されるルート・タグおよび行タグの名前を指定します。

オブジェクト・リレーショナル・データ

ODP.NETでは、オブジェクト・リレーショナル列、表およびビューに格納されたデータについて、XML文書を生成できます。

// Create the following tables and types
CREATE TYPE "EmployeeType" AS OBJECT (EMPNO NUMBER, ENAME VARCHAR2(20));
/
CREATE TYPE EmployeeListType AS TABLE OF "EmployeeType";
/
CREATE TABLE mydept (DEPTNO NUMBER, DEPTNAME VARCHAR2(20),
EMPLIST EmployeeListType)
NESTED TABLE EMPLIST STORE AS EMPLIST_TABLE;
INSERT INTO mydept VALUES (1, 'depta',
EmployeeListType("EmployeeType"(1, 'empa')));

この表に対して次のXML文書が生成されます。

<?xml version = "1.0"?>
<ROWSET>
<ROW>
<DEPTNO>1</DEPTNO>
<DEPTNAME>depta</DEPTNAME>
<EMPLIST>
<EmployeeType>
<EMPNO>1</EMPNO>
<ENAME>empa</ENAME>
</EmployeeType>
</EMPLIST>
</ROW>
</ROWSET>

ODP.NETでは、コレクション要素内の各項目が、コレクション内の要素のデータベース型名で囲まれます。mydept表にはEMPLISTデータベース列にコレクションがあり、このコレクション内の各項目はEmployeeType型です。このため、XML文書では、例に太字で表されるように、コレクション内の各項目が型名EmployeeTypeで囲まれます。

NULL値

データベース行にNULL値の列が含まれる場合、生成されたXML文書内の対応する行には、その列は表示されません。

XMLを使用したデータ操作

この項では、XMLを使用してデータベースのデータに変更を加える方法について説明します。

日時書式の処理

表3-20では、異なるデータベース・リリースにおけるデータ保存時の日時書式の処理をリストしています。

表3-20 データ保存時の日時書式の処理

データベース・リリース

サポートされる日時書式

Oracle9iリリース2(9.2.x)およびOracle Database 10g

DATE、TIMESTAMPおよびTIMESTAMP WITH TIME ZONE型のすべてのデータは、ISO日時書式YYYY-MM-DDThh:mm:ss.sss(ISO書式表記法)でXML文書に指定される必要があります。

次の文字列は、Oracle日時書式表記法(YYYY-MM-DD"T"HH24:MI:SS.FF3)で表されたISO日時書式表記法です。

XML文書にISO書式表記法を使用するだけでなく、保存を実行する前に、アプリケーションで、セッションにおける次のNLSセッション・パラメータについて、ALTER SESSIONコマンドを明示的に実行する必要があります。

- NLS_DATE_FORMATOracle日時書式(YYYY-MM-DD"T"HH24:MI:SS)に設定する必要があります。

- NLS_TIMESTAMP_FORMATOracle日時書式(YYYY-MM-DD"T"HH24:MI:SS.FF3)に設定する必要があります。

- NLS_TIMESTAMP_TZ_FORMATOracle日時書式(YYYY-MM-DD"T"HH24:MI:SS.FF3)に設定する必要があります。

Oracle Database 10gリリース2(10.2)以上

生成されたXMLのDATEおよびTIMESTAMP書式は、標準のXML Schema書式を基にしています。

XML Schema仕様の詳細は、次のURLを参照してください。

http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#isoformats

XMLを使用した変更の保存

XMLデータを使用して、データベース表およびビューに変更を保存できます。ただし、挿入、更新および削除の操作は、単一のXML文書では組み合せることができません。ODP.NETでは、単一のXML文書を受け入れて、どの変更が挿入、更新または削除のいずれであるかを判別できません。

挿入変更では挿入する行、更新変更では更新する行、削除変更では削除する行のみが含まれるXML文書である必要があります。

たとえば、HRサンプル・スキーマに付属するemployees表を使用して、次の問合せを指定できます。

select employee_id, last_name from employees where employee_id = 205;

次のXML文書が生成されます。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<EMPLOYEE_ID>205</EMPLOYEE_ID>
<LAST_NAME>Higgins</LAST_NAME>
</ROW>
</ROWSET>

従業員205の名前をHigginsからSmithに変更するには、employees表および変更が含まれるXMLデータを次のように指定します。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<EMPLOYEE_ID>205</EMPLOYEE_ID>
<LAST_NAME>Smith</LAST_NAME>
</ROW>
</ROWSET>

列データの特殊文字

XML文書内のいずれかの要素内のデータに、XMLの特殊文字が含まれている場合(表3-18を参照)、そのデータがデータベース表列に正しく格納されるためには、XML文書で、これらの文字を適切な実体エンコードに置き換えるか、エスケープ文字で上書きする必要があります。そうしないと、ODP.NETは例外をスローします。

次の例では、ODP.NETで実体エンコードを使用して列データ内の山カッコの特殊文字が処理される方法を示しています。

// Create the following table
create table specialchars ("id" number, name varchar2(255));

次のXML文書を使用して、値(1、<Jones>)をspecialchars表に挿入できます。山カッコを表すXML実体エンコードは太字で表記されます。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<id>1</id >
<NAME>&lt;Jones&gt;</NAME>
</ROW>
</ROWSET>

表名またはビュー名の特殊文字

表名またはビュー名に英数字以外の文字(アンダースコア(_)を除く)が含まれる場合、この表名またはビュー名は引用符で囲む必要があります。

たとえば、名前がtest'ingの表に変更を保存するには、OracleCommand.XmlSaveProperties.TableNameプロパティを"\"test'ing\""に設定する必要があります。

XML要素名と列名のマッピングにおける大/小文字区別

XML文書内のデータ行を表すXML要素ごとに、子XML要素がデータベース列名にマップされます。子要素名と列名のマッピングでは常に大/小文字が区別されますが、ルート・タグ名および行タグ名では区別されません。この大/小文字区別の例を次に示します。

//Create the following table
create table casesensitive_table ("Id" number, NAME varchar2(255));

次のXML文書を使用して、値(1、Smith)をcasesensitive_tableに挿入できます。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<Id>1</Id>
<NAME>Smith</NAME>
</ROW>
</ROWSET>

Id列の要素名の大/小文字が列名と一致する点に注意してください。

XML要素名と列名のマッピング

この項では、データベースでデータ操作にXMLを使用する場合に、Oracle Databaseで列名へのXML要素名のマッピングを処理する方法について説明します。次にsome id列を含むspecialchars表を使用する処理を示します。

// Create the specialchars table
create table specialchars ("some id" number, name varchar2(255));

specialchars表には、空白文字が含まれるsome id列がある点に注意してください。XML要素名では、空白文字は使用できません。

XML文書を使用した表への変更の保存

XML文書を使用して表またはビューに変更を保存する場合、OracleCommand.XmlSaveProperties.UpdateColumnsListを使用して、更新または挿入する列のリストを指定します。

XML文書を使用して表またはビュー内の列の変更を保存する場合で、対応する列名にXML要素名では無効となる文字が含まれる場合、次の例のように、UpdateColumnsListプロパティにエスケープした列名を指定する必要があります。

次のXML文書を使用して、値(2、<Jones>)をspecialchars表に挿入できます。

<?xml version = '1.0'?>
<ROWSET>
<ROW>
<some_x0020_id>2</some_x0020_id>
<NAME>&lt;Jones&gt;</NAME>
</ROW>
</ROWSET>

次のコード例は、更新または挿入する列のリストを指定します。

/* Database Setup
connect scott/tiger@oracle
drop table specialchars;
create table specialchars ("some id" number, name varchar2(255));
insert into specialchars values (1, '<Jones>');
commit;
*/

// C#

using System;
using System.Data;
using System.Xml;
using Oracle.DataAccess.Client;

class InsertUsingXmlDocSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";
con.Open();
Console.WriteLine("Connected Successfully");

// Create the command
OracleCommand cmd = new OracleCommand("", con);

// Set the XML command type to query.
cmd.XmlCommandType = OracleXmlCommandType.Insert;

// Set the XML document
cmd.CommandText = "<?xml version = '1.0'?>\n" + "<ROWSET>\n" + "<ROW>\n" +
"<some_x0020_id>2</some_x0020_id>\n" + "<NAME>&lt;Jones&gt;</NAME>\n" +
"</ROW>\n" + "</ROWSET>\n";
cmd.XmlSaveProperties.Table = "specialchars";

string[] ucols = new string[2];

ucols[0] = "some_x0020_id";
ucols[1] = "NAME";
cmd.XmlSaveProperties.UpdateColumnsList = ucols;

// Insert rows
int rows = cmd.ExecuteNonQuery();

Console.WriteLine("Number of rows inserted successfully : {0} ", rows);

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
}
}

デフォルト・マッピングの修正

次の方法でデフォルト・マッピングを修正できます。

- ターゲットを変更します。ターゲット・スキーマ上にオブジェクト・リレーショナル・ビューを作成し、このビューを新規ターゲットにします。

- XML文書を変更します。XSLTを使用してXML文書を変換します。XSL文書およびパラメータを指定します。変更が保存される前に変換が実行されます。これはパフォーマンスに影響する可能性があります。

- XML文書で使用される行タグの名前を指定します。

オブジェクト・リレーショナル・データ

XML文書の変更は、オブジェクト・リレーショナル・データにも保存できます。コレクション内の各項目は、XML文書に次のいずれかの方法で指定できます。

- 項目のデータベース型名をXML要素名として囲みます。

- _ITEMがXML要素名として追加されたコレクションを保持するデータベース列名を囲みます。

複数の表

Oracle Databaseでは、結合された複数のリレーショナル表への変更は保存しません。リレーショナル表に対するビューを作成してから、そのビューを更新することをお薦めします。ビューが更新可能でない場合は、かわりにトリガーを使用できます。

関連項目:
CREATE VIEW文の説明および構文については、Oracle Database SQLリファレンスを参照

トランザクションのコミット

XML文書で変更を加えると、すべての変更がコミットされるか、エラーが発生した場合はすべての変更がロールバックされます。

Oracleユーザー定義タイプ(UDT)および.NETカスタム・タイプ

ODP.NETには、データベース内のOracle UDTを、.NETアプリケーションのカスタム・タイプとして表す機能があります。UDTはアプリケーション間で共有できる単一オブジェクトとして複雑な実体を表すのに便利です。Oracle製品(Oracle SpatialおよびOracle XML DBなど)では、製品独自の複雑なタイプを頻繁に使用しています。

Oracle UDTを.NETカスタム・タイプとして表すには、アプリケーションに.NET属性をカスタム・クラスおよび構造体、そしてそれらのパブリック・フィールドおよびプロパティに適用します

UDTおよびカスタム・タイプ間で変換するには、ODP.NETはカスタム・インタフェースを使用します。

このセクションの内容は次のとおりです。

- Oracleユーザー定義タイプ(UDT)

- カスタム・タイプ

- カスタム・タイプ・マッピングの指定

- カスタム・タイプおよびOracle UDT間の変換

- Oracle UDT属性マッピング

- OracleDataReaderからのOracle UDTの検索

- OracleDataReaderからのOracle UDTメタデータの検索

- OracleParameterとのOracle UDTパラメータのバインド

- Oracle UDTでのDataSetの移入

- Oracle UDTメソッドの起動

- Oracle UDTの構成設定

Oracleユーザー定義タイプ(UDT)

Oracle Data Provider for .NETは、Oracleオブジェクト型またはユーザー定義タイプ(UDT)をサポートしており、Oracle Databaseに定義されています。

次の2種類のUDTがあります。

- オブジェクト・タイプ(Oracleオブジェクト)

- コレクション・タイプ(VARRAYタイプまたはネスト表タイプ)

また、ODP.NETはオブジェクト・タイプに対して参照(REF)をサポートしています。

関連項目:
「OracleRefクラス」

UDTという用語は、Oracleオブジェクト型および抽出データ型(ADT)と同じ意味で使用されます。

関連項目:
オブジェクト・タイプの詳細な説明は、Oracle Databaseアプリケーション開発者ガイド-オブジェクト・リレーショナル機能を参照

Oracle UDTの名前は大/小文字を区別し、schema_name.type_name形式にする必要があります。

ORACLE_BASE\\ORACLE_HOME\ODP.NET\Samples\UDTディレクトリにUDTのサンプルが用意されています。

カスタム・タイプ

Oracle Data Provider for .NETは、UDTをサポートしており、.NETタイプ、つまりカスタム・タイプとしてデータベースに定義されたOracle UDTを表します。アプリケーションがフェッチおよび操作するOracle UDTごとに、1つのカスタム・タイプ・ファクトリおよび1つのカスタム・タイプが必要です。カスタム・ファクトリ・クラスは、カスタム・タイプのインスタンス化のみ実行します。ODP.NETはカスタム・ファクトリ・クラスに実装されたインタフェースを使用して、実行時にカスタム・タイプをインスタンス化します。カスタム・タイプは、Oracle UDT属性または要素間で.NETメンバーへのマッピングを定義します。ODP.NETはカスタム・タイプ・インスタンスに実装されたインタフェースを使用して、実行時にOracle UDTとカスタム・タイプ間で値を変換します。

カスタム・タイプは、.NETクラスまたは構造体のいずれかです。これらはOracleオブジェクトまたはOracleコレクションのいずれかを表します。カスタム・タイプは、アプリケーション開発者が手動でカスタム・タイプを実装するか、またはODP.NETコード生成ツールを使用して生成できます。

ファクトリ・クラスおよびカスタム・タイプが定義されて実装要件を満たすと、アプリケーションは、ODP.NETを設定してOracle UDTとカスタム・タイプ間のマッピングを自動的に検索します。この検索プロセスは、カスタム・ファクトリ・クラスに適用された属性に基づいています。また、構成ファイルから明示的なマッピングが提供されます。

Oracleコレクションを.NETタイプの配列として表すことができます。たとえば、Oracleコレクション型のNUMBERをint[]にマッピングできます。さらにOracleコレクション型のOracle UDTをカスタム・タイプの配列にマッピングできます。

カスタム・タイプは、カスタム・タイプとしてOracle UDTを表すためにODP.NETの一定の要件に従う必要があります。要件は次のとおりです。

必須カスタム・タイプ実装

この項では、カスタム.NETクラスまたは構造に必要な実装をリストします。

- Oracle.DataAcess.Types.IOracleCustomTypeインタフェースの実装
このインタフェースは、カスタム・タイプおよびOracle UDT間の変換に使用されます。

OracleUdtクラスの静的メソッドを使用して、このインタフェース・メソッドを実装します。

- カスタム・タイプ・ファクトリ
カスタム・タイプ・ファクトリを使用して、カスタム・タイプのインスタンスを作成します。カスタム・タイプ・ファクトリは、次に示すようなIOracleCustomTypeFactoryインタフェース、IOracleArrayTypeFactoryインタフェースまたは両方のインタフェースのいずれかになります。

- Oracleオブジェクトを表すカスタム・タイプを作成するには、カスタム・タイプまたは個々のカスタム・タイプ・ファクトリ・クラスがOracle.DataAccess.Types.IOracleCustomTypeFactoryインタフェースを実装する必要があります。

- Oracleコレクションを表すカスタム・タイプを作成するには、カスタム・タイプまたは個々のカスタム・タイプ・ファクトリ・クラスがOracle.DataAccess.Types.IOracleCustomTypeFactoryインタフェースおよびOracle.DataAccess.Types.IOracleArrayTypeFactoryインタフェースを実装する必要があります。

- Oracleコレクションを表す配列タイプを作成するには、カスタム・タイプ・ファクトリ・クラスがOracle.DataAccess.Types.IOracleArrayTypeFactoryインタフェースを実装する必要があります。

- カスタム・タイプ・メンバーのマッピング属性
カスタム・タイプ・メンバーのマッピング属性は、カスタム・タイプ・メンバーと、OracleオブジェクトまたはOracleコレクション要素のいずれかの間のマッピングを指定します。

カスタム・タイプ・メンバーのマッピング属性には次の2種類があります。

- OracleObjectMappingAttribute
この属性は、カスタム・タイプ・メンバーと、Oracleオブジェクトを表すカスタム・タイプのOracleオブジェクト属性の間のマッピングを指定します。この属性を、Oracleオブジェクト属性を表す各カスタム・タイプ・メンバー(フィールドやプロパティ)に適用する必要があります。

注意:
すべてのOracleオブジェクト属性をカスタム・タイプ・メンバーにマップする必要はありません。特定のオブジェクト属性にOracleObjectMappingAttributeがない場合、Oracleオブジェクトとカスタム・タイプ間の変換の際にはODP.NETはそのオブジェクト属性を無視します。

- OracleArrayMappingAttribute
この属性は、Oracleコレクションを表すカスタム・タイプのOracleコレクションの要素を格納するカスタム・タイプ・メンバーを指定します。属性は、1つのカスタム・タイプ・メンバーで指定される必要があります。

- Oracle.DataAcess.Types.INullableインタフェースの実装
このインタフェースは、カスタム・タイプのインスタンスがNULL UDTを表しているかどうかを判断するために使用されます。このインタフェースのIsNullプロパティにより、アプリケーションおよびODP.NETはUDTがNULLかどうかを判断できます。

- 静的NULLフィールド
パブリック静的Nullプロパティは、NULL UDTを戻すために使用されます。このプロパティは、TRUEを戻すIsNullプロパティと関連するカスタム・タイプを戻します。

オプションのカスタム・タイプの実装

次に示すのはオプションです。

- IXMLSerializable
IXMLSerializableインタフェースを.NET 2.0 frameworkで使用すると、カスタム・タイプとそのXML表現の間の変換が可能になります。このインタフェースが使用されるのは、カスタム・タイプのシリアライゼーションおよびデシリアライゼーションがDataSetで必要となる場合のみです。

- Static ParseおよびPublic ToStringメソッド
これらのメソッドにより、カスタム・タイプとその文字列表現の間の変換が可能になります。

このメソッドはDataGridコントロールが変更を受け入れてインスタンス値を表示する際に呼び出されます。

- タイプの継承
タイプの継承は、スーパー・タイプからデータベース内のOracle UDTを導出するプロセスを参照します。

カスタム・タイプがスーパー・タイプから導出されるOracle UDTを表す場合、カスタム・クラスは同じタイプの階層に従う必要があるため、カスタム・クラスは、データベース内で定義されたスーパー・タイプを表す別のカスタム・クラスから導出される必要があります。

- OracleCustomTypeMappingAttribute
OracleCustomTypeMappingAttributeオブジェクトは、カスタム・タイプ(または配列タイプ)とOracle UDT間のマッピングを指定します。

次に示すアプリケーションが使用する各Oracle UDTに対して、カスタム・タイプ・ファクトリは一意である必要があります。

- Oracleオブジェクト型には次のものがあります。
カスタム・タイプ・ファクトリは、指定されたOracleオブジェクト型を表すカスタム・タイプのみを戻す必要があります。

- Oracleコレクション型には次のものがあります。
カスタム・タイプ・ファクトリは、その他のOracleコレクション型が使用できるカスタム・タイプを戻す場合があります。これは、たとえばint[]がNUMBERのコレクションを表すために使用される場合など、配列タイプがOracleコレクションを表すために使用される場合に共通です。

OracleCustomTypeMappingAttributeが指定されていない場合、カスタム・タイプ・マッピングは、XML構成ファイル、つまりmachine.configおよびWindowsアプリケーションのapp.configか、またはWebアプリケーションのweb.configから指定する必要があります。

関連項目:

- 「IOracleCustomTypeインタフェース」

- 「OracleRefクラス」

- 「IOracleCustomTypeFactoryインタフェース」

カスタム・タイプ・マッピングの指定

カスタム・タイプの作成後、アプリケーションはカスタム・タイプ・マッピングを指定し、カスタム・タイプをデータベース内のOracle UDTにマップする必要があります。これは、カスタム・タイプ・ファクトリまたは構成ファイルにあるXMLを使用して実行できます。

この両方が実装されている場合は、XMLを使用したカスタム・タイプ・マッピングの指定が優先されます。実行時に、構成ファイルで指定されたカスタム・タイプ・マッピングがODP.NETによって検出されると、OracleCustomTypeMappingAttributeオブジェクトを使用して指定されたカスタム・タイプ・マッピングは無視されます。

カスタム・タイプ・マッピングの場合、マッピングがOracleCustomTypeMappingAttributeオブジェクトまたはXML構成ファイルによるものかどうかにかかわらず、シノニムの使用を指定することはできません。

関連項目:
UDTマッピングの詳細は、Oracle Developer Tools for Visual StudioヘルプのServer Explorer for Visual Studio 2005およびOracle Explorer for Visual Studio 2003の項にあるユーザー定義タイプ・ノードに関する項を参照してください。

この項の内容は次のとおりです。

- 「カスタム・タイプ・ファクトリを使用したカスタム・タイプ・マッピングの指定」

- 「構成ファイルのXMLを使用したカスタム・タイプ・マッピングの指定」

カスタム・タイプ・ファクトリを使用したカスタム・タイプ・マッピングの指定

アプリケーションは、カスタム・タイプ・ファクトリを使用してカスタム・タイプ・マッピングを指定できます。アプリケーションはschema_name.type_nameの形式でOracleCustomTypeMappingAttributeオブジェクトにOracle UDTの名前を指定し、その名前を対応するカスタム・タイプ・ファクトリに適用します。カスタム・タイプ・ファクトリはクラスまたは構造体であり、IOracleCustomTypeFactoryおよびIOracleArrayTypeFactoryインタフェースのいずれかまたは両方を実装しています。

アプリケーションが使用する各Oracle UDTは、必ず一意のカスタム・タイプ・ファクトリであることに注意してください。さらに、Oracleオブジェクト型では、カスタム・タイプ・ファクトリは指定されたOracleオブジェクト型を一意に表すカスタム・タイプを戻す必要があります。Oracleコレクション型では、カスタム・タイプ・ファクトリは、他のOracleコレクション型が使用できるカスタム・タイプを戻します。これは、配列タイプのカスタム・タイプがOracleコレクションを表す場合、つまりint[]を使用してNUMBERのコレクションを表す場合に共通です。

実行時にリフレクション・プログラミングを使用すると、OracleCustomTypeMappingAttributeオブジェクトを通して、ODP.NETはアプリケーションが指定するすべてのカスタム・タイプ・マッピングを検索します。

注意:
OracleCustomTypeMappingAttributeで指定されたUDT名には、ピリオドを使用できません。

構成ファイルのXMLを使用したカスタム・タイプ・マッピングの指定

アプリケーションは、構成ファイルのXMLを使用してカスタム・タイプ・マッピングを指定できます。たとえば、machine.configおよびWindowsアプリケーションのapp.configまたはWebアプリケーションのweb.configのいずれかを使用します。

カスタム・タイプ・マッピングは、oracle.dataaccess.client構成セクション・グループに指定される必要があります。各カスタム・タイプ・マッピングは、XML要素<add>を使用してカスタム・タイプ・マッピングのコレクションに追加される必要があります。

各カスタム・タイプ・マッピングは、名前属性および値属性で構成されます。名前属性は、カスタム・タイプ・マッピングを表す任意のユーザー固有の名前を指定できます。値属性は、udtMappingで始まり、次にリストされた必須およびオプション属性に従う必要があります。

必須属性

- factoryName
カスタム・タイプ・ファクトリ・クラスまたは構造体の大/小文字を区別するアセンブリ修飾名。

カスタム・タイプ・ファクトリを定義するアセンブリにストロング・ネームがない場合、アセンブリ名のみを構成する部分的なアセンブリ名で十分です。ストロング・ネーム・アセンブリの場合、完全なアセンブリ名が必要です。アセンブリ名、Version、Culture、PublicKeyTokenを含める必要があります。

- typeName
データベース内で定義される大/小文字を区別するUDTの名前。デフォルトでは、すべてのUDTはデータベース内に大文字で作成されます

- schemaName
データベース内でUDTが定義される大/小文字を区別するスキーマ。デフォルトでは、すべてのスキーマはデータベース内に大文字で作成されます

オプション属性

- dataSource
指定された場合、アプリケーションが接続するデータベース(TNS名別名で指定される)で定義されるOracle UDTに対してのみ、カスタム・タイプ・マッピングが適用されていることを示します。

データ・ソースは大/小文字を区別します。

次に示す例は、.NET 2.0の構成ファイルで指定できるXMLの書式です。

<oracle.dataaccess.client>
<settings>
<add name="Person" value="udtMapping factoryName='Sample.PersonFactory,
Sample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
typeName='PERSON' schemaName='SCOTT' dataSource='oracle'"/>
<add name="Student" value="udtMapping factoryName='Sample.StudentFactory,
Sample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
typeName='STUDENT' schemaName='SCOTT'"/>
</settings>
</oracle.dataaccess.client>

カスタム・タイプ・マッピングの使用

データの検索中、アプリケーションはカスタム・タイプ・マッピングを使用してOracle UDTをカスタム・タイプに変換します。入力および入出力パラメータ、またはOracle REFを使用した更新によってデータが戻される場合、アプリケーションはマッピングを使用してカスタム・タイプをOracle UDTに変換します。

また、入力および入出力パラメータの場合、アプリケーションはOracleParameter UdtTypeNameプロパティをパラメータのユーザー定義のタイプ名に設定する必要があります。

Oracle UDTがタイプ階層の一部になっている場合、カスタム・タイプはタイプ階層内の固有のタイプとしてインスタンス化される必要があります。カスタム・タイプ・マッピングが指定するOracle UDTは、OracleParameter UdtTypeNameプロパティが指定するOracle UDTのサブタイプである必要があります。

たとえば、ストアド・プロシージャのパラメータはタイプSCOTT.PERSONで、サブタイプSCOTT.STUDENTを含みます。アプリケーションには、SCOTT.STUDENTを表すカスタム・クラス・インスタンスがあります。Oracle UDTをインスタンス化する際にUdtTypeNameはSCOTT.PERSONに設定されますが、カスタム・タイプ・マッピングは、カスタム・クラスがSCOTT.STUDENTにマップされ、UdtTypeNameがオーバーライドされることを示します。このため、カスタム・オブジェクトがパラメータ・タイプのサブタイプであるOracle UDTを表す場合には、ODP.NETはOracle UDTを適切にインスタンス化し、バインドします。

カスタム・タイプおよびOracle UDT間の変換

ODP.NETがOracle UDTとカスタム・タイプ間で変換できるのは、適切な属性マッピングが指定され、カスタム・タイプが適切に定義されている場合です。

ODP.NETが変換を実行するのは、Oracle UDTが次に示すものとしてフェッチされる場合です。

- SQLまたはPL/SQL実行にバインドされる入力、出力、入出力パラメータ
OracleParameterのDbTypeプロパティをDbType.Objectに設定するか、またはOracleDbTypeプロパティをOracleDbType.ObjectまたはOracleDbType.Arrayに設定する必要があります。

ユーザー定義タイプのパラメータの場合、OracleParameterオブジェクトのUdtTypeNameプロパティを、常にパラメータ・タイプに設定する必要があります。

注意: UdtTypeNameはカスタム・タイプ・マッピングで指定されたOracle UDTとは異なる場合があります。これは、パラメータ・タイプが、カスタム・タイプが表すOracle UDTのスーパー・タイプの場合です。

- OracleDataReaderオブジェクトから取得される列の値
GetValue、GetValues、GetOracleValue、GetOracleValues、GetProviderSpecificValueまたはGetProviderSpecificValuesメソッド、またはUDT列のItem[]プロパティのいずれかを通じてアプリケーションが値を要求する場合、ODP.NETはOracle UDTに対応するカスタム・タイプを検出し、適切に変換します。

- DataSetを移入する結果セットの一部
OracleDataAdapterのFillメソッドを使用して、アプリケーションがUDTを含む結果を持つDataSetを移入する場合、DataSetにOracle UDTを表すカスタム・タイプが移入されます。ADO.NET 2.0の場合、OracleDataAdapterのReturnProviderSpecificTypesがtrueまたはfalseに設定されているかどうかにかかわらず、DataSetにUDT列のカスタム・タイプが移入されます。

- REFを通して参照されるオブジェクト
REFが参照するオブジェクトが取得される場合、Oracle UDTを表すカスタム・タイプが戻されます。

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

- OracleUdtFetchOption.Cacheオプションが指定され、キャッシュされたオブジェクトのコピーが存在する場合、キャッシュされたコピーはすぐに戻されます。キャッシュされたコピーが存在しない場合、データベースの最新のオブジェクトのコピーがキャッシュされて戻されます。

- OracleUdtFetchOption.Serverオプションが指定された場合、データベースの最新のオブジェクトのコピーがキャッシュされて戻されます。オブジェクトがすでにキャッシュされている場合、最新のオブジェクトのコピーは既存のオブジェクトのコピーを上書きします。

- OracleUdtFetchOption.TransactionCacheオプションが指定された場合、同一トランザクション内では次の2つの可能性があります。

- ServerまたはTransactionCacheオプションを使用してオブジェクトのコピーを以前に取得した場合、TransactionCacheオプションの動作はCacheオプション動作と同じになります。

- ServerまたはTransactionCacheオプションを使用してオブジェクトのコピーを以前に取得していない場合は、TransactionCacheオプションの動作はServerオプション動作と同じになります。

Oracle UDT属性マッピング

表3-21は、Oracle UDTタイプと、.NETタイプまたはOracleプロバイダ固有のタイプ(ODP.NETタイプ)のいずれかであるカスタム・オブジェクト・タイプ間の、有効な属性(オブジェクトの場合)および要素(コレクションの場合)のマッピングをリストしています。

Oracleコレクションは、カスタム・クラスにマップする必要はありません。Oracleコレクションは、固有のタイプの配列とマップできます。表3-21は、指定されたOracleタイプの要素のコレクションで、.NETタイプまたはプロバイダ固有のタイプ配列にマップできることを示しています。たとえば、OracleコレクションがNUMBER(8)のVARRAYの場合、typeof(int[])にマップできます。これにより、int[]のみ保持するクラスを作成する必要がなくなります。

.NET 2.0の場合、OracleコレクションをNullableタイプにマップできます。これにより、.NET 2.0アプリケーションはNULLを使用できるint[]を取得できるので、int[]内にNULL値を保持できます。

Oracle UDT属性および要素をobjectまたはobject[]にマップできないことに注意してください。

表3-21 UDTおよびカスタム・オブジェクト・タイプ間の属性マッピング

UDT属性または要素のタイプ

.NETタイプ

ODP.NETタイプ

BFILE #1

System.Byte[]

OracleBFile

BINARY FLOAT

System.Byte、System.Int16、System.Int32、System.Int64、System.Single、System.Double、 System.Decimal

OracleDecimal

BINARY DOUBLE

System.Byte、System.Int16、System.Int32、System.Int64、System.Single、System.Double、 System.Decimal

OracleDecimal

BLOB

System.Byte[]

OracleBlob

CHAR

System.Char[]、System.String

OracleString

CLOB

System.Char[]、System.String

OracleClob

DATE

System.DateTime

OracleDate

INTERVAL DAY TO SECOND

System.Timespan

OracleIntervalDS

INTERVAL YEAR TO MONTH

System.Int64

OracleIntervalYM

LONG RAW

System.Byte[]

OracleBinary

NCHAR

System.Char[]、System.String

OracleString

NCLOB

System.Char[]、System.String

OracleClob

ネストした表

custom type、.NET type[]、またはcustom type[]

ODP Type[]

NUMBER

System.Byte、System.Int16、System.Int32、System.Int64、System.Single、System.Double、 System.Decimal

OracleDecimal

NVARCHAR2

System.Char[]、System.String

OracleString

オブジェクト・タイプ

custom type

N/A

RAW

System.Byte[]

OracleBinary

REF

System.String

OracleRef

TIMESTAMP

System.DateTime

OracleTimeStamp

TIMESTAMP WITH LOCAL TIME ZONE

System.DateTime

OracleTimeStampLTZ

TIMESTAMP WITH TIME ZONE

System.DateTime

OracleTimeStampTZ

VARCHAR2

System.Char[]、System.String

OracleString

VARRAY

custom type、.NET type[]、またはcustom type[]

ODP Type[]

注意:

1. System.Byte[]からBFILEへの変換はサポートされていないため、読取り専用の場合、System.Byte[]はBFILEのみを表します。

OracleDataReaderからのOracle UDTの検索

OracleDataReaderからOracle UDTを取得するには、アプリケーションはOracle UDTを表すタイプを識別するカスタム・タイプ・マッピングを指定する必要があります。カスタム・タイプ・マッピングが指定されていて、任意の必要なカスタム・タイプが作成されている場合、アプリケーションはOracle UDTを取得できます。

表3-22は、呼び出されたメソッドに基づいてOracleDataReaderオブジェクトから戻されるタイプおよび値、列タイプ、および有効なカスタム・タイプ・マッピングがあるかどうかを示しています。

注意:
PS Objectは、プロバイダ固有のオブジェクトです。

表3-22 OracleDataReaderオブジェクトから戻されるタイプおよび値

OracleDataReaderメソッドおよびプロパティの起動

列データ型

カスタム・タイプ・マッピング

Oracle UDTに戻される値

Oracle UDTに戻されるNULL値

Item[index]、Item[name]、GetValue()、GetValues()

Object、Collection

none

スローされる例外

スローされる例外

Item[index]、Item[name]、GetValue()、GetValues()

Object

schema.type

custom object

DBNull.Value

Item[index]、Item[name]、GetValue()、GetValues()

Collection

schema.type

custom object | custom object[] | .NET Type[] | PS object[]

DBNull.Value

Item[index]、Item[name]、GetValue()、GetValues()

REF

none | schema.type

string(16進)

DBNull.Value

GetString()

REF

none | schema.type

string(16進)

スローされる例外

GetProviderSpecificValue()、GetProviderSpecificValues()、GetOracleValue()、GetOracleValues()

Object、Collection

schema.type

custom object

custom type.Null

GetProviderSpecificValue()、GetProviderSpecificValues()、GetOracleValue()、GetOracleValues()

Collection

schema.type

custom object[] | .NET Type[] | PS object[]

null

GetProviderSpecificValue()、GetProviderSpecificValues()、GetOracleValue()、GetOracleValues()、GetOracleRef()

REF

none | schema.type

OracleRef

OracleRef.Null

GetOracleString()

REF

none | schema.type

OracleString(16進)

OracleString.Null

関連項目:
「OracleDataReaderオブジェクトからのデータの取得」

OracleDataReaderからのOracle UDTメタデータの検索

OracleDataReaderオブジェクトは、.NETタイプまたはプロバイダ固有のタイプ・アクセッサが呼び出される場合にメタデータを戻してカスタム・タイプがOracle UDTを表すかを判断するために使用します。OracleDataAdapter.Fillメソッドを使用してDataSetを移入する場合、同じカスタム・タイプを使用します。

表3-23は、列の.NETタイプを指定するOracleDataReader GetFieldTypeおよびGetProviderSpecificFieldTypeメソッドから戻される値を示しています。

表3-23 OracleDataReaderメソッドから戻される値

OracleDataReaderメソッドおよびプロパティの起動

列データ型

カスタム・タイプ・マッピング

戻り値

GetFieldType(index)

Object、Collection

none

スローされる例外

GetFieldType(index)

Object

schema.type

typeof(custom type)

GetFieldType(index)

Collection

schema.type

typeof(custom type) | typeof(custom type[])) | typeof(.NET type[])) | typeof(PS type[])

GetFieldType(index)

REF

none | schema.type

typeof(string)

GetProviderSpecificFieldType(index)

Object、Collection

none

スローされる例外

GetProviderSpecificFieldType(index)

Object

schema.type

typeof(custom type)

GetProviderSpecificFieldType(index)

Collection

schema.type

typeof(custom type) | typeof(custom type[])) | typeof(.NET type[])) | typeof(PS type[])

GetProviderSpecificFieldType(index)

REF

none | schema.type

typeof(OracleRef)

OracleParameterとのOracle UDTパラメータのバインド

この項では、UDT出力および入力パラメータのOracleParameterオブジェクトとのバインドの使用について説明します。

関連項目:
「パラメータ・バインド」

この項の内容は次のとおりです。

- UDT入力および出力パラメータのバインドのガイドライン

- OracleParametersを指定したUDT入力パラメータのバインド

- OracleParametersを指定したUDT出力パラメータのバインド

UDT入力および出力パラメータのバインドのガイドライン

UDTパラメータのOracleParameterオブジェクトとのバインドを使用する場合は、開発者は次のことを考慮する必要があります。

- UdtTypeNameプロパティを設定する必要があります。UdtTypeNameプロパティに基づいているバインドは、パラメータ・ディレクションには関係ありません。

注意:
UdtTypeNameは、カスタム・タイプ・マッピングで指定されたOracle UDTとは異なる場合があります。これが発生するのは、パラメータ・タイプが、カスタム・タイプが表すOracle UDTのスーパー・タイプの場合です。

- 入出力バインドの場合、その動作は入力および出力パラメータと同じになります。

- 入力パラメータ値の場合、バインド値は、カスタム・タイプ・マッピングにより指定されたUDTに変換されます。

- 出力パラメータの場合は次のようになります。

- 戻り値がOracleオブジェクトまたはコレクションの場合、戻り値はカスタム・タイプ・マッピングにより指定されたカスタム・タイプまたは配列タイプに変換されます。戻り値は常にカスタム・タイプまたは配列タイプであり、プロパティの最新の設定値がDbTypeまたはOracleDbTypeであるかは関係ありません。

- 戻り値がREFの場合、カスタム・タイプ・マッピングは不要です。

OracleParametersを指定したUDT入力パラメータのバインド

OracleParameterオブジェクトには、OracleParameterのプロパティ値、DbType、OracleDbType、およびUdtTypeNameの特定の組合せのみ存在できます。OracleParameterオブジェクトを、リストされていない組合せに設定することはできません。

表3-24では、Oracle UDTに入力パラメータをバインドする有効な手段について説明します。

最後の列は、ODP.NETがOracleParameter値をOracleタイプに変換してからバインドするOracleタイプを示しています。

表3-24 Oracle UDTに入力パラメータをバインドする有効な手段

OracleParameter.Value

OracleParameter.DbTypeまたはOracleParameter.OracleDbType

OracleParameter.UdtTypeName

カスタム・タイプ・マッピング

バインド前に行う変換先のOracleタイプ

custom object | custom object[] | .NET object[] | PS object[]String(16進) | OracleString(16進) | OracleRef

DbType.Object | OracleDbType.Object | OracleDbType.Array | OracleDbType.Ref |

未設定

none | schema.type

スローされる例外

custom object[] | .NET object[] | PS object[]

DbType.Object | OracleDbType.Object | OracleDbType.Array

schema.type

none

スローされる例外

custom object

DbType.Object

schema.type

schema.type

指定されたUDTをインスタンス化します。値はオブジェクトまたはコレクションとして、UdtTypeNameプロパティに基づいてバインドされます

custom object

OracleDbType.Object

schema.type

schema.type

指定されたUDTをインスタンス化します。schema.typeはオブジェクトを表す必要があります。

custom object

OracleDbType.Array

schema.type

schema.type

指定されたUDTをインスタンス化します。schema.typeはコレクションを表す必要があります。

.NET object[] | PS object[] | custom object[]

DbType.Object | OracleDbType.Array

schema.type

schema.type

OracleParameter.UdtTypeNameが指定するUDTをインスタンス化します。

.NET object[] | PS object[] | custom object[]

OracleDbType.Object

schema.type

none | schema.type

スローされる例外

custom object | .NET object[] | PS object[] custom object[]

OracleDbType.Ref

schema.type

none | schema.type

スローされる例外

String(16進) | OracleString(16進) | OracleRef

DbType.Object | OracleDbType.Object | OracleDbType.Array

schema.type

none | schema.type

スローされる例外

Char[](16進) | String(16進) | OracleString(16進) | OracleRef

OracleDbType.Ref

schema.type

none | schema.type

REF

OracleParametersを指定したUDT出力パラメータのバインド

OracleParameterオブジェクトには、OracleParameterのプロパティ値、DbType、OracleDbType、およびUdtTypeNameの特定の組合せのみ存在できます。OracleParameterオブジェクトを、リストされていない組合せに設定することはできません。

表3-25は、サポートされているODP.NETのOracleデータベース・オブジェクトの出力パラメータ・バインドを示しています。

最後の列は、ODP.NETはOracleParameter値をそのタイプに変換してからバインドする列を示しています。

表3-25 Oracle UDTに出力パラメータをバインドする有効な手段

Oracleから戻されたタイプ

OracleParameter.DbType

OracleParameter.UdtTypeName

カスタム・タイプ・マッピング

変換先のタイプ

Object/Collection/REF

DbType.Object | OracleDbType.Object | OracleDbType.Array | OracleDbType.Ref

未設定

none | schema.type

スローされる例外

Object/Collection

DbType.Object | OracleDbType.Object | OracleDbType.Array

schema.type

none

スローされる例外

Object

DbType.Object | OracleDbType.Object

schema.type

schema.type

custom object

Object

OracleDbType.Array | OracleDbType.Ref

schema.type

none | schema.type

スローされる例外

Collection

OracleDbType.Array | DbType.Object

schema.type

schema.type

custom object | custom object[] | .NET object[] | PS object[]

Collection

OracleDbType.Ref | OracleDbType.Object

schema.type

none | schema.type

スローされる例外

REF

DbType.Object | OracleDbType.Object | OracleDbType.Array

schema.type

none | schema.type

スローされる例外

REF

OracleDbType.Ref

schema.type

none | schema.type

OracleRef

関連項目:

- 「パラメータ・バインド」

- 「OracleDataReader型指定アクセッサ」

Oracle UDTでのDataSetの移入

DataSetは切断された結果セットです。ADO.NET 2.0では、.NETまたはプロバイダ固有のどちらのタイプを使用してもDataSetを移入できます。この項では、列がOracle UDTの場合にDataSetを移入するために使用するタイプについて説明します。

表3-26は、Oracle列タイプに基づくDataSet列、DataAdapterのReturnProviderSpecificTypesプロパティ、既存のカスタム・タイプ・マッピング、DataSetの列タイプ、DataSetの列の値およびDataSetの列のNULL値をリストしています。

表3-26 ADO.NET 2.0でのDataSetを移入するタイプ

Oracle列タイプ

ReturnProvider-SpecificTypesプロパティ

カスタム・タイプ・マッピング

DataSet列タイプ

DataSet列値

DataSet列NULL値

Object / Collection

False/True

none

スローされる例外

スローされる例外

スローされる例外

Object / Collection

False

schema.type

typeof(custom type)

custom object

DbNull.Value

Object / Collection

True

schema.type

typeof(custom type)

custom object

custom object.Null

Collection

False

schema.type

typeof(custom type[]) | typeof(.NET type[]) | typeof(PS type[])

.NET type[] | PS object[] | custom object[]

DbNull.Value

Collection

True

schema.type

typeof(custom type[]) | typeof(.NET type[]) | typeof(PS type[])

.NET type[] | PS object[] | custom object[]

null

REF

False

none | schema.type

typeof(string)

string/16進

DbNull.Value

REF

True

none | schema.type

typeof(OracleRef)

OracleRef

OracleRef.Null

UDTメソッドの起動

ODP.NETは、データベースのUDTに対して定義されたメソッドの起動をサポートします。次のいずれかを実行するとメソッドを起動できます。

1. CommandTypeをCommandType.StoredProcedureとして設定する。

2. CommandTextを"type_name.procedure_name"として設定する

3. 任意のExecuteメソッドをOracleCommandオブジェクトで使用してコマンドを実行する。

インスタンスのファンクションでは、パラメータは次のとおりです。

- 最初のパラメータは戻り値にする必要があります。

- 2番目のパラメータはインスタンス・メソッドが呼び出されるUDTインスタンスにする必要があります。これは.NETカスタム・オブジェクトのインスタンスです。

- 後続のパラメータはファンクション用です。

インスタンスのプロシージャでは、最初のパラメータはUDTインスタンスにする必要があります。

静的メソッドでは、UDTインスタンスは不要です。

Oracle UDTの構成設定

ODP.NETは、2つの構成設定を公開してODP.NETによるOracle UDTの処理方法を決定します。

- StatementCacheWithUdts

- UdtCacheSize

これらの構成設定は、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Versionの下に存在する名前のレジストリ・キーを使用すれば、ODP.NETの特定バージョンに対するマシン全体の設定として指定できます。.NET Framework全体の設定についてmachine.configでエントリが作成された場合、またはアプリケーション固有の設定についてapp.configまたはweb.configでエントリが作成された場合、レジストリで指定された構成設定よりも優先されます。ODP.NETの構成の詳細は、「Oracle Data Provider for .NETの構成」を参照してください。

StatementCacheWithUdts

StatementCacheWithUdtsは、文キャッシュに戻される場合に、SELECT文によって取得されるOracle UDTをSELECT文と一緒にODP.NETがキャッシュするかどうかを指定します。戻される値は1 - Yes(デフォルト)または0 - Noです。

値が1の場合、Oracle UDTは文と一緒にキャッシュされます。そのため、UDTが含まれていたメモリーを再利用できます。その後同じ文を実行する場合には、追加メモリーは不要です。これにより全体のパフォーマンスは向上します。

値が0の場合、ODP.NETが取得されたOracle UDTのメモリーを解放してから、文は文キャッシュに戻されます。これによりパフォーマンスが低下するのは、その後の実行に新しいメモリーの割当てが必要になるためです。

UdtCacheSize

UdtCacheSizeは、Oracle UDTを取得して操作する場合にODP.NETが使用する接続ごとのオブジェクト・キャッシュのサイズを指定します。この設定値はKB単位で指定し、デフォルトは4096KB(4MB)です。

この構成設定を使用して、オブジェクト・キャッシュ・サイズ制限に達した場合にオブジェクト・キャッシュのオブジェクトが消去される頻度(LRU方式の使用)を決定します。

Oracle Streamsアドバンスト・キューイングのサポート

Oracle Streamsアドバンスト・キューイング(AQ)は、データベース統合型のメッセージ・キューイング機能を提供します。Oracle Streams AQはOracle Streamsを基盤とし、Oracle Databaseの機能を活用して、メッセージの永続的な格納、異なるコンピュータおよびデータベース上のキュー間でのメッセージの伝播、Oracle Net ServicesおよびHTTP(S)を使用したメッセージの送信を可能にしています。

関連項目:
Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイドおよびリファレンス

Oracle Streams AQはデータベース表に実装されるため、運用上の利点である高可用性、スケーラビリティ、信頼性のすべてがキュー・データにも適用されます。Oracle Streams AQは、リカバリや再起動、セキュリティなどの標準的なデータベース機能もサポートしています。

次の各項でOracle Streams AQの概念について説明します。

- キューおよびキュー表
キューにエンキューされたメッセージは、キュー表に格納されます。キュー表に基づいてキューを作成するには、先にキュー表を作成しておく必要があります。キュー表およびキューの作成と管理には、DBMS_AQADM PL/SQLパッケージまたはOracle Developer Tools for Visual Studioを使用します。

キューはOracleAQQueueオブジェクトで表されます。

関連項目:
「OracleAQQueueクラス」

- 単一コンシューマ・キューおよび複数コンシューマ・キュー
単一コンシューマ・キューは、単一コンシューマ・キュー表に基づいて作成されます。単一コンシューマ・キューにエンキューされたメッセージは、単一コンシューマのみがデキューできます。

複数コンシューマ・キューは、複数コンシューマ・キュー表に基づいて作成されます。このキューは、キュー・サブスクライバとメッセージ受信者をサポートしています。

- メッセージ受信者
メッセージ・プロデューサは、メッセージのエンキュー時に受信者のリストを発行できます。これにより、キュー内の各メッセージと一連の受信者を一意に対応させることができます。キューに関連付けられたサブスクライバ・リストがある場合でも、メッセージに関連付けられた受信者リストが優先されます。受信者がサブスクライバ・リストに指定されている必要はありません。ただし、サブスクライバの中から受信者を選択できます。OracleAQMessageのRecipientsプロパティを使用すると、OracleAQAgentオブジェクトの観点から特定のメッセージの受信者を指定できます。

関連項目:

- 「Recipients」

- 「OracleAQAgentクラス」

- エンキュー
プロデューサ・アプリケーションがキューにメッセージをプッシュすると、そのメッセージはエンキューされます。これを実現するには、OracleAQQueueオブジェクトに対してEnqueueメソッドをコールします。EnqueueArrayメソッドを使用すれば、複数のメッセージをエンキューできます。

関連項目:

- 「Enqueue」

- 「EnqueueArray」

- デキュー
コンシューマ・アプリケーションがキューからメッセージをプルすると、そのメッセージはデキューされます。これを実現するには、OracleAQQueueオブジェクトに対してDequeueメソッドをコールします。DequeueArrayメソッドを使用すれば、複数のメッセージをデキューできます。

関連項目:

- 「Dequeue」

- 「DequeueArray」

- リスニング
サブスクライバ・アプリケーションでは、Listenコールを使用して複数のキューを監視することで、様々なキューをサブスクライブできます。これは、サブスクライバ・アプリケーションが多くのキューをサブスクライブしており、どのキューに到着したメッセージもすべて受信する場合に適している、スケーラブルなソリューションです。これを実現するには、OracleAQQueueクラスのListenメソッドをコールし、サブスクリプションのリストを配列の形式で渡します。

関連項目:
「Listen」

- 通知
サブスクライバ・アプリケーションでは、通知メカニズムを利用して、キュー内のメッセージの可用性に関する通知を受信できます。受信した情報に基づいて、メッセージをスキップするか、キューからデキューすることを決定できます。

サブスクライバ・アプリケーションでは、通知の受信元となるキューのイベント通知を登録する必要があります。これは、OracleAQQueueのMessageAvailableイベントで表されます。サブスクリプションに一致するメッセージが到着すると、イベントがトリガーされます。

通知は、通常の通知またはグループ化通知として登録できます。これらの通知のタイムアウト値も指定可能です。OracleAQQueue.Notificationプロパティを使用すると、様々な通知オプションを設定できます。OracleAQQueueオブジェクトに設定した通知は、オブジェクトが破棄されると自動的に取り消されます。

関連項目:

- 「MessageAvailableイベント」

- 「Notification」

- バッファ・メッセージング
バッファ・メッセージングはOracle Streams AQ 10gリリース2(10.2)で導入されました。バッファ・メッセージングでは、メッセージは共有メモリー領域に格納されます。そのため、バッファ・メッセージングは永続メッセージングより高速です。メッセージがディスクに書き込まれるのは、バッファ・メッセージの総メモリー使用率が使用可能な共有メモリーの上限に達した場合のみです。バッファ・メッセージングは、Oracle Streams AQの永続メッセージングの信頼性とトランザクション・サポートを必要としないアプリケーションに最適です。

バッファ・メッセージと永続メッセージは、同一の単一コンシューマ・キューまたは複数コンシューマ・キューと、同一の管理インタフェースおよび操作インタフェースを使用します。この2種類のメッセージは、配信モード・パラメータで区別されます。アプリケーションでは、Oracle Streams AQキューにメッセージをエンキューする際に、配信モード・パラメータも設定します。

OracleAQMessageに配信モード・パラメータを設定するには、DeliveryModeプロパティを変更します。バッファ・メッセージングは、8.1以上の互換性で作成されたすべてのキュー表でサポートされます。

関連項目:
「DeliveryMode」

アドバンスト・キューイングでのODP.NETの使用

.NETアプリケーションでは、ODP.NETを使用して、エンキュー、デキュー、リスニング、通知など、AQのすべての操作機能を利用できます。

表3-27は、AQ機能を対応するODP.NET実装にマップしたものです。

表3-27 AQ機能とODP.NET実装とのマッピング

機能

ODP.NET実装

メッセージの作成

OracleAQMessageオブジェクトを作成

単一メッセージのエンキュー

メッセージをOracleAQMessageとして、キューをOracleAQQueueとして指定し、OracleAQQueueにエンキュー・オプションを指定して、OracleAQQueue.Enqueueをコール

複数メッセージのエンキュー

OracleAQQueue.EnqueueArrayにメッセージをOracleAQMessage配列として指定

単一メッセージのデキュー

OracleAQQueueにデキュー・オプションを指定し、OracleAQQueue.Dequeueをコール

複数メッセージのデキュー

OracleAQQueue.DequeueArrayをコール

キューのメッセージのリスニング

OracleAQQueue.Listenをコール。複数のキューでリスニングするには、OracleAQQueueのListen静的メソッドを使用

メッセージ通知

OracleAQQueue.MessageAvailable EventをNotificationConsumersプロパティとともに使用

注意:
ORACLE_BASE\ORACLE_HOME\ODP.NET\SamplesディレクトリにAQのサンプルが用意されています。

エンキューおよびデキューの例

次の例では、単一コンシューマ・キューを使用するエンキューおよびデキューのメッセージを示しています。この例の最初の部分では、データベース・ユーザーSCOTTの必要なデータベース設定を実行しています。この例の2番目の部分は、エンキューおよびデキューのメッセージを示しています。

-- Part I: Database setup required for this demo

------------------------------------------------------------------
-- SQL to grant appropriate privilege to database user, SCOTT
------------------------------------------------------------------
SQL> ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY Pwd4Sct;
User altered.
SQL> GRANT ALL ON DBMS_AQADM TO scott;

------------------------------------------------------------------
-- PL/SQL to create queue-table and queue and start queue for SCOTT
------------------------------------------------------------------
BEGIN
DBMS_AQADM.CREATE_QUEUE_TABLE(
queue_table=>'scott.test_q_tab',
queue_payload_type=>'RAW',
multiple_consumers=>FALSE);

DBMS_AQADM.CREATE_QUEUE(
queue_name=>'scott.test_q',
queue_table=>'scott.test_q_tab');

DBMS_AQADM.START_QUEUE(queue_name=>'scott.test_q');
END;
/

------------------------------------------------------------------
-- PL/SQL to stop queue and drop queue & queue-table from SCOTT
------------------------------------------------------------------
BEGIN
DBMS_AQADM.STOP_QUEUE('scott.test_q');

DBMS_AQADM.DROP_QUEUE(
queue_name => 'scott.test_q',
auto_commit => TRUE);

DBMS_AQADM.DROP_QUEUE_TABLE(
queue_table => 'scott.test_q_tab',
force => FALSE,
auto_commit => TRUE);
END;
/
-- End of Part I, database setup.

//Part II: Enqueuing and dequeuing messages
//C#
using System;
using System.Text;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace ODPSample
{
/// <summary>
/// Demonstrates Enqueuing and Dequeuing raw message
/// using a single consumer queue
/// </summary>
class EnqueueDequeue
{
static void Main(string[] args)
{
// Create connection
string constr = "user id=scott;password=Pwd4Sct;data source=oracle";
OracleConnection con = new OracleConnection(constr);

// Create queue
OracleAQQueue queue = new OracleAQQueue("scott.test_q", con);

try
{
// Open connection
con.Open();

// Begin txn for enqueue
OracleTransaction txn = con.BeginTransaction();

// Set message type for the queue
queue.MessageType = OracleAQMessageType.Raw;

// Prepare message and RAW payload
OracleAQMessage enqMsg = new OracleAQMessage();
byte[] bytePayload = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
enqMsg.Payload = bytePayload;

// Prepare to Enqueue
queue.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;

// Enqueue message
queue.Enqueue(enqMsg);

Console.WriteLine("Enqueued Message Payload      : "
+ ByteArrayToString(enqMsg.Payload as byte[]));
Console.WriteLine("MessageId of Enqueued Message : "
+ ByteArrayToString(enqMsg.MessageId));

// Enqueue txn commit
txn.Commit();

// Begin txn for Dequeue
txn = con.BeginTransaction();

// Prepare to Dequeue
queue.DequeueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
queue.DequeueOptions.Wait = 10;

// Dequeue message
OracleAQMessage deqMsg = queue.Dequeue();

Console.WriteLine("Dequeued Message Payload      : "
+ ByteArrayToString(deqMsg.Payload as byte[]));
Console.WriteLine("MessageId of Dequeued Message : "
+ ByteArrayToString(deqMsg.MessageId));

// Dequeue txn commit
txn.Commit();
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
finally
{
// Close/Dispose objects
queue.Dispose();
con.Close();
con.Dispose();
}
}

// Function to convert byte[] to string
static private string ByteArrayToString(byte[] byteArray)
{
StringBuilder sb = new StringBuilder();
for (int n = 0; n < byteArray.Length; n++)
{
sb.Append((int.Parse(byteArray[n].ToString())).ToString("X"));
}
return sb.ToString();
}
}
}

Database Change Notificationサポート

Oracle Data Provider for .NETでは、Continuous Query Notificationをサポートする通知フレームワークが提供され、問合せ結果セット、スキーマ・オブジェクトまたはデータベースの状態に変更があったときに、Oracle Data Provider for .NETデータベース接続が存在していなくても、アプリケーションがクライアント側の通知を受け取れます。Continuous Query Notificationを使用すると、アプリケーションでは、クライアント側のキャッシュ妥当性(ADO.NET DataSetなど)を簡単に維持できます。

注意:
ODP.NET Database Change Notification機能では、OracleデータベースのContinuous Query Notification機能を使用します。

注意:
Database Change Notificationは、.NETストアド・プロシージャではサポートされません。

通知フレームワークを使用して、アプリケーションではデータベースの通知要求に対する登録済問合せとして問合せ結果セットを指定し、この通知登録を作成して問合せ結果セットの妥当性を維持できます。クライアント側のキャッシュの問合せ結果に影響するデータベースに変更があれば、通知フレームワークがアプリケーションに通知します。

注意:
変更通知の内容は無効化メッセージとして参照されます。これは、問合せ結果セットが現在無効であり、変更についての情報を提供していることを示します。

無効化メッセージにより提供される情報に基づき、アプリケーションはそれに応じた動作ができます。たとえば、アプリケーション内のローカルに格納されている、登録済問合せのデータのコピーをリフレッシュする必要がある場合があります。

注意:
登録済オブジェクトがデータベースから削除され、同じ名前の新規オブジェクトが同じスキーマ内に作成される場合、再登録して新規作成されたオブジェクトの通知を受け取る必要があります。

関連項目:
Continuous Query Notificationの詳細は、Oracle Databaseアドバンスト・アプリケーション開発者ガイドを参照

デフォルトにより、Windows VistaおよびWindows XP Service Pack 2以降のすべてのインストレーションにおいて、Windowsファイアウォールは、着信接続に対するほとんどすべてのTCPネットワーク・ポートをブロックできます。したがって、これらのオペレーティング・システムでContinuous Query Notificationを適切に機能させるには、特定の実行可能ファイルで特定のポートをオープンできるように、Windowsファイアウォールを適切に設定する必要があります。

関連項目:
Windowsファイアウォールの設定の詳細は、Oracle Databaseプラットフォーム・ガイドfor Windowsを参照

Oracle Database 11gおよびODP.NET 11g(11.1)以降では、Database Change Notificationの問合せは、問合せベース(デフォルト)またはオブジェクトベースになります。問合せベースの登録では、選択した行がデータベースで変更されるとODP.NETからアプリケーションへ通知されます。オブジェクトベースの登録の場合は、選択した行を含む表に変更が生じるとODP.NETからアプリケーションへ通知されます。

問合せベースの登録には、保証モードとベストエフォート・モードの2つのモードがあります。保証モードでは、データベース変更通知によって、問合せ結果セットに含まれている内容に変更があったことが保証されます。ただし、複雑な問合せは、保証モードで登録できません。このような場合は、ベストエフォート・モードが使用されます。

ベストエフォート・モードでは、問合せベースの登録の問合せが簡略化されます。簡略化が原因で通知が失われることはありません。ただし、簡略バージョンの結果は元の問合せの結果が変更されなくても変更される場合があるため、簡略化によって誤検出が発生することがあります。ベストエフォート・モードの問合せベースの登録を問合せに含める場合は、いくつかの制限があります。このような場合、開発者はほとんどの問合せタイプを登録できるオブジェクトベースの登録を使用できます。オブジェクトベースの登録では、問合せオブジェクトが変更されると、実際の問合せ結果に変更がなくても通知が生成されます。このことは、オブジェクト・ベースの登録が、問合せベースの登録よりも誤検出することが多いということも意味します。開発者は、各データベース変更通知オプションの相対的な長所と短所を認識し、要件に最も適したものを選択する必要があります。

関連項目:

- 「データベース通知をリスニングするポートの構成」

- Continuous Query Notificationの要件の詳細は、Oracle Databaseアドバンスト・アプリケーション開発者ガイドを参照

この項の内容は次のとおりです。

- Database Change Notificationクラス

- サポートされている操作

- 通知登録の要件

- Database Change Notificationの使用

- ベスト・プラクティスの指針とパフォーマンス上の考慮点

Database Change Notificationクラス

次のクラスは連続問合せ通知サポートに関連しています。

- OracleDependency
アプリケーションとそれに関連するデータベース・イベントに基づいたOracle Database間の依存性を表します。これには依存性に関する情報が含まれており、指定のデータベース・イベントが発生した際にアプリケーションに通知する方法が提供されます。またOracleDependencyクラスでは、データベース通知をリスニングする通知リスナーも作成されます。各アプリケーション・ドメインには、データベース通知リスナーが1つのみあります。アプリケーション・プロセスが終了すると、この通知リスナーも終了します。

アプリケーションとデータベースの間の依存性は、OracleDependencyオブジェクトの作成時には確立されません。依存性は、このOracleDependencyオブジェクトに関連付けられたコマンドの実行時に確立されます。そのコマンドの実行により、データベース内にデータベース変更通知登録が作成されます。

データベース内で変更が発生すると、OracleDependencyオブジェクトのHasChangesプロパティがtrueに設定されます。さらに、イベント・ハンドラがOracleDependencyオブジェクトのOnChangeイベントで登録された場合、登録済イベント・ハンドラ関数が起動されます。

- OracleNotificationRequest
データベース内に登録される通知要求を表します。これには、要求に関する情報と通知のプロパティが含まれます。

- OracleNotificationEventArgs
指定されたデータベース・イベントが発生し、そのデータベース・イベントに関する詳細が含まれる際に通知に対して生成された、無効化メッセージを表します。

関連項目:

- 「OracleDependencyクラス」

- 「OracleNotificationRequestクラス」

- 「OracleNotificationEventArgsクラス」

サポートされている操作

ODP.NET通知フレームワークでは、連続問合せ通知と連携して次のアクティビティがサポートされます。

- 通知登録の作成

- OracleDependencyインスタンスを作成してOracleCommandインスタンスにバインドします。

- 複数の通知要求を1つの登録にグループ化

- OracleDependency.AddCommandDependencyメソッドを使用します。

- 同じOracleNotificationRequestインスタンスを使用してOracleCommand.Notification要求を設定します。

- データベース変更通知の登録

- OracleCommandを実行します。通知プロパティがNULLであるか、NotificationAutoEnlistがfalseである場合、通知は作成されません。

- 通知登録の削除

- OracleDependency.RemoveRegistrationメソッドを使用します。

- 登録が作成される前に、OracleNotificationRequestインスタンス内にTimeoutプロパティを設定します。

- 登録が作成される前に、OracleNotificationRequestインスタンス内のIsNotifiedOnceプロパティをtrueに設定します。データベース通知が送信されると、登録が削除されます。

- 変更通知の永続性の確保

- 配信前に、無効化メッセージがデータベース内で永続的にキューされるかどうかを指定します。無効化メッセージがデータベース内で永続的に保存されると、変更通知の送信が保証されます。無効化メッセージをメモリー内キューに保存すると、変更通知はよりすばやく受信できますが、データベースのシャットダウンまたはクラッシュ時に失われる可能性があります。

- 次の項目を含む通知情報の取得:

- 変更されたオブジェクト名

- 変更されたオブジェクトのスキーマ名

- 通知を発生させるデータベース・イベント(挿入、削除など)

- 変更されたオブジェクト行のRowID
Oracle SQLのROWIDTOCHAR(ROWID)およびROWIDTONCHAR(ROWID)関数は、ROWID値をVARCHAR2およびNVARCHARデータ型にそれぞれ変換します。これらの関数をSQL文で使用すると、データベース変更通知のコールバックに渡されるOracleNotificationEventArgsオブジェクトにROWIDが戻されません。

- リスナー・ポート番号の定義
デフォルトでは、静的なOracleDependency.Portプロパティは-1に設定されています。これは、ODP.NETがアプリケーション実行時に初めてデータベース変更通知要求を登録した場合、ODP.NETがランダムに選択されたポート上でリスニングすることを示します。

ODP.NETは、1つのポート上でリスニングするリスナーをアプリケーション・ドメイン内に1つのみ作成します。ODP.NETでリスナーが起動されると、ポート番号を変更できません。リスナーがすでに作成されている場合、静的なOracleDependency.Portプロパティに対する変更はエラーになります。

関連項目:

- 「OracleCommandクラス」

- 「Notification」

- 「NotificationAutoEnlist」

- 「OracleDependencyクラス」

- 「OracleNotificationEventArgsクラス」

通知登録の要件

接続済ユーザーは、通知登録を作成する、CHANGE NOTIFICATION権限を持っている必要があります。

このSQL文により、CHANGE NOTIFICATION権限が付与されます。

grant change notification to user name

このSQL文により、CHANGE NOTIFICATION権限が取り消されます。

revoke change notification from user name

Database Change Notificationの使用

この項では、アプリケーションで実行する必要がある処理、およびアプリケーションが連続問合せ通知を使用して登録済問合せ結果セットから変更結果の通知を受け取る際の処理フローを説明します。

アプリケーション側の手順

アプリケーションで必要になる手順は次のとおりです。

1. OracleDependencyインスタンスを作成します。

2. データベースの変更が検出されたときにアプリケーションでイベント・ハンドラを起動する場合は、イベント・ハンドラをOracleDependency.OnChangeイベント・プロパティに割り当てます。それ以外の場合は、OracleDependencyオブジェクトのHasChangesプロパティに対してポーリングするよう、アプリケーションで選択できます。このイベント・ハンドラは、変更通知を受け取ると起動されます。

3. リスナーがリスニングを行うポート番号を設定します。アプリケーションでは、1つの通知リスナーがリスニングを行うポート番号を指定できます。アプリケーションでポート番号を指定しないと、ランダムな番号がリスナーで使用されます。

4. 実際に実行される問合せを含むOracleCommandインスタンスにOracleDependencyインスタンスをバインドします。内部的に、連続問合せ通知要求(OracleNotificationRequestインスタンス)が作成され、OracleCommand.Notificationプロパティに割り当てられます。

通知処理フロー

1. 通知要求に関連付けられたコマンドが実行されると、データベース内に通知登録が作成されます。コマンドの実行により、結果セットが戻される、またはPL/SQLストアド・プロシージャのREFカーソルが1つ以上含まれる必要があります。

2. ODP.NETは、最初に成功した通知登録上でアプリケーション・リスナーを開始します。

3. データベース内で登録に関連する変更が発生すると、OracleDependency.OnChangeイベント・プロパティに割り当てられたイベント・デリゲート経由でアプリケーションに通知されるか、またはアプリケーションでOracleDependency.HasChangesプロパティをポーリングできます。

次の例は、データベース変更通知機能を示しています。

// Database Setup
// NOTE: unless the following SQL command is executed,
// ORA-29972 will be obtained from running this sample
/*
grant change notification to scott;
*/
using System;
using System.Threading;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

//This sample shows the database change notification feature in ODP.NET.
//Application specifies to get a notification when emp table is updated.
//When emp table is updated, the application will get a notification
//through an event handler.
namespace NotificationSample
{
public class MyNotificationSample
{
public static bool IsNotified = false;

public static void Main(string[] args)
{
//To Run this sample, make sure that the change notification privilege
//is granted to scott.
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = null;
OracleDependency dep = null;

try
{
con = new OracleConnection(constr);
OracleCommand    cmd = new OracleCommand("select * from emp", con);
con.Open();

// Set the port number for the listener to listen for the notification
// request
OracleDependency.Port = 1005;

// Create an OracleDependency instance and bind it to an OracleCommand
// instance.
// When an OracleDependency instance is bound to an OracleCommand
// instance, an OracleNotificationRequest is created and is set in the
// OracleCommand's Notification property. This indicates subsequent
// execution of command will register the notification.
// By default, the notification request is using the Database Change
// Notification.
dep = new OracleDependency(cmd);

// Add the event handler to handle the notification. The
// OnMyNotification method will be invoked when a notification message
// is received from the database
dep.OnChange +=
new OnChangeEventHandler(MyNotificationSample.OnMyNotificaton);

// The notification registration is created and the query result sets
// associated with the command can be invalidated when there is a
// change.  When the first notification registration occurs, the
// notification listener is started and the listener port number
// will be 1005.
cmd.ExecuteNonQuery();

// Updating emp table so that a notification can be received when
// the emp table is updated.
// Start a transaction to update emp table
OracleTransaction txn = con.BeginTransaction();
// Create a new command which will update emp table
string updateCmdText =
"update emp set sal = sal + 10 where empno = 7782";
OracleCommand updateCmd = new OracleCommand(updateCmdText, con);
// Update the emp table
updateCmd.ExecuteNonQuery();
//When the transaction is committed, a notification will be sent from
//the database
txn.Commit();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}

con.Close();
// Loop while waiting for notification
while(MyNotificationSample.IsNotified == false)
{
Thread.Sleep(100);
}
}

public static void OnMyNotificaton(object src,
OracleNotificationEventArgs arg)
{
Console.WriteLine("Notification Received");
DataTable changeDetails = arg.Details;
Console.WriteLine("Data has changed in {0}",
changeDetails.Rows[0]["ResourceName"]);
MyNotificationSample.IsNotified = true;
}
}
}

ベスト・プラクティスの指針とパフォーマンス上の考慮点

この項では、連続問合せ通知およびODP.NET通知フレームワークの使用上、役立つ指針を提供し、パフォーマンスへの影響について説明します。変更通知登録が行われると、データベース・メモリー、ストレージまたはネットワーク・リソース(あるいはそれらの組合せ)が消費されます。リソースの消費量は、さらに、無効化メッセージのボリュームとサイズに依存します。多数の中間層クライアントに適切に対応するために、クライアントで次のベスト・プラクティスを実装することをお薦めします。

- 表の数を減らし、多くを読取り専用にすること
登録済のオブジェクト数を減らし、多くを読取り専用にしてください。オブジェクトの揮発性がきわめて高い場合、多数の無効化通知が送信され、大量のスペース(メモリー内またはディスク上)が必要になる可能性があります。これは、オブジェクトが多数登録されている場合にも当てはまります。

- 各表で更新される行の数を減らすこと
トランザクションでは、登録済の表中の行のうち、少数のみを更新(または挿入、削除)するようにしてください。任意の表で、単一のトランザクション内で更新する行が多すぎると、データベース・リソースに応じて、表全体が無効化される可能性があります。

この方針により、単一の無効化メッセージのサイズが抑制され、無効化キュー用のディスク・ストレージが削減されます。

関連項目:
Continuous Query Notificationの詳細は、Oracle Databaseアドバンスト・アプリケーション開発者ガイドを参照

OracleDataAdapter Safeタイプ・マッピング

次に示すOracleデータ型がDataSetで近似の.NETタイプに変換された場合にデータが失われる可能性があるため、ODP.NETのOracleDataAdapterクラスではSafeタイプ・マッピング機能を提供しています。

- NUMBER

- DATE

- TimeStamp(すべてのTimeStampオブジェクトが対象)

- INTERVAL DAY TO SECOND

この項の内容は次のとおりです。

- Oracleデータ型と.NETタイプとの比較

- SafeMappingプロパティ

Oracleデータ型と.NETタイプとの比較

次の項では、Oracleデータ型と対応する.NETタイプとの違いの詳細を説明します。一般に、Oracleデータ型は.NETタイプより優れた精度を持っています。

Oracle NUMBER型から.NET Decimalタイプへの変換

Oracleデータ型NUMBERでは最大38までの精度を保持できますが、.NET Decimalタイプでは最大28までの精度を保持できます。28より大きい精度のNUMBERデータ型が.NET Decimalタイプに取り出された場合は、精度が失われます。

表3-28は、Oracle NUMBERおよび.NET Decimalタイプの最大値と最小値のリストです。

表3-28 Oracle NUMBERと.NET Decimalとの比較

限界値

Oracle NUMBER

.NET Decimal

最大値

9.9999999999999999999999999999999999999 e125

79,228,162,514,264,337,593,543,950,335

最小値

-9.9999999999999999999999999999999999999 e125

-79,228,162,514,264,337,593,543,950,335

Oracle Date型から.NET DateTimeタイプへの変換

Oracleデータ型DATEでは紀元前の日付を表すことができますが、.NET DateTimeタイプでは表せません。紀元前を示すDATEが.NET DateTimeタイプに取り出された場合は、データが失われます。

表3-29は、Oracle Dateおよび.NET DateTimeタイプの最大値と最小値のリストです。

表3-29 Oracle Dateと.NET DateTimeとの比較

限界値

Oracle Date

.NET DateTime

最大値

西暦9999年12月31日

西暦9999年12月31日23時59分59.9999999秒

最小値

紀元前4712年1月1日

西暦1年1月1日00時00分00.0000000秒

Oracle TimeStamp型から.NET DateTimeタイプへの変換

DATEデータ型と同様に、Oracleデータ型TimeStampでは紀元前の日付を表すことができますが、.NET DateTimeタイプでは表せません。紀元前を示すTimeStampが.NET DateTimeタイプに取り出された場合は、データが失われます。Oracle TimeStamp型はeの-9乗の単位で値を表すことができますが、.NET DateTimeタイプではeの-7乗の単位でしか値を表せません。Oracleのタイムゾーン付きTimeStampデータ型ではタイムゾーン情報を格納できますが、.NET DateTimeでは格納できません。

表3-30は、Oracle TimeStampおよび.NET DateTimeタイプの最大値と最小値のリストです。

表3-30 Oracle TimeStampと.NET DateTimeとの比較

限界値

Oracle TimeStamp

.NET DateTime

最大値

西暦9999年12月31日23時59分59.999999999秒

西暦9999年12月31日23時59分59.9999999秒

最小値

紀元前4712年1月1日00時00分00.000000000秒

西暦1年1月1日00時00分00.0000000秒

Oracle INTERVAL DAY TO SECONDから.NET TimeSpanへの変換

Oracleデータ型INTERVAL DAY TO SECONDでは、最大9までの精度を保持でき、.NET TimeSpanタイプは最大7までの精度を保持できます。7より大きい精度のINTERVAL DAY TO SECONDデータ型が.NET TimeSpanタイプに取り出された場合は、精度が失われます。Oracle INTERVAL DAY TO SECONDではeの-9乗の単位で値を表すことができますが、.NET TimeSpanではeの-7乗の単位でしか値を表せません。

表3-31は、Oracle INTERVAL DAY TO SECONDおよび.NET DateTimeタイプの最大値と最小値のリストです。

表3-31 Oracle INTERVAL DAY TO SECONDと.NET TimeSpanとの比較

限界値

Oracle INTERVAL DAY TO SECOND

.NET TmeSpan

最大値

+999999999 23:59:59.999999999

+10675199 02:48:05.4775807

最小値

-999999999 23:59:59.999999999

-10675199 02:48:05.4775808

SafeMappingプロパティ

OracleDataAdapter Safeタイプ・マッピング機能により、これらのタイプのいずれかのOracleデータが.NET DataSetへ移入された場合のデータの消失を防ぎます。SafeMappingプロパティを適切に設定することにより、このような型を次のいずれかとしてDataSet内で安全に表すことができます。

- .NET byte[](Oracle書式)

- .NET String

Safeタイプ・マッピングはデフォルトでは無効です。

Safeタイプ・マッピングの使用

Safeタイプ・マッピング機能を使用するには、キーと値のペアのハッシュ・テーブルを使用してOracleDataAdapter.SafeMappingプロパティを設定する必要があります。キーと値のペアでは、データベース表の列名(string型)を.NETタイプ(Type型)にマップする必要があります。ODP.NETはbyte[]型およびString型へのSafeタイプ・マッピングをサポートします。これ以外のタイプ・マッピングでは、例外が発生します。

設計時に列名が不明な場合は、アスタリスク(*)を使用すると、データベース型のすべての出現を安全な.NETタイプにマップできます。有効な列名とアスタリスクが両方ある場合は、列名が使用されます。

注意:

- データベース表の列名では、大文字と小文字が区別されます。

- ハッシュ・テーブル内で無効な列名に対応する列名は無視されます。

StringとしてのSafeタイプ・マッピングは判断しやすいため、それ以上の変換は不要です。Oracleデータ型の中にはStringへの変換時にさらに変換が必要になるものがあり、その場合はbyte[]への変換よりも時間がかかります。.NET文字列からODP.NETタイプに戻す場合は、セッションの書式情報に依存します。

Safeタイプの例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class SafeMappingSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";

// In this SELECT statement, EMPNO, HIREDATE and SALARY must be
// preserved using safe type mapping.
string cmdstr = "SELECT EMPNO, ENAME, HIREDATE, SAL FROM EMP";

// Create the adapter with the selectCommand txt and the connection string
OracleDataAdapter adapter = new OracleDataAdapter(cmdstr, constr);

// Get the connection from the adapter
OracleConnection connection = adapter.SelectCommand.Connection;

// Create the safe type mapping for the adapter
// which can safely map column data to byte arrays, where
// applicable. By executing the following statement, EMPNO, HIREDATE AND
// SALARY columns will be mapped to byte[]
adapter.SafeMapping.Add("*", typeof(byte[]));

// Map HIREDATE to a string
// If the column name in the EMP table is case-sensitive,
// the safe type mapping column name must be case-sensitive.
adapter.SafeMapping.Add("HIREDATE", typeof(string));

// Map EMPNO to a string
// If the column name in the EMP table is case-sensitive,
// the safe type mapping column name must also be case-sensitive.
adapter.SafeMapping.Add("EMPNO", typeof(string));
adapter.SafeMapping.Add("SAL", typeof(string));

// Create and fill the DataSet using the EMP
DataSet dataset = new DataSet();
adapter.Fill(dataset, "EMP");

// Get the EMP table from the dataset
DataTable table = dataset.Tables["EMP"];

// Get the first row from the EMP table
DataRow row = table.Rows[0];

// Print out the row info
Console.WriteLine("EMPNO Column: type = " + row["EMPNO"].GetType() +
"; value = " + row["EMPNO"]);
Console.WriteLine("ENAME Column: type = " + row["ENAME"].GetType() +
"; value = " + row["ENAME"]);
Console.WriteLine("HIREDATE Column: type = " + row["HIREDATE"].GetType()+
"; value = " + row["HIREDATE"]);
Console.WriteLine("SAL Column: type = " + row["SAL"].GetType() +
"; value = " + row["SAL"]);
}
}

関連項目:
「SafeMapping」

OracleDataAdapterのRequeryプロパティ

OracleDataAdapterのRequeryプロパティは、OracleDataAdapterの最初のFillコールの後のFillコールで問合せを再実行するかどうかを制御します。

OracleDataAdapterのFillメソッドを使用すると、DataSet内のデータの追加またはリフレッシュが行えます。後続のFillコールで同じ問合せを使用してDataSetに追加する場合は、問合せを再実行しない方が得策です。

Requeryプロパティをtrueに設定すると、後続のFillコールのたびに問合せが再実行され、DataSetにデータが充填されます。これはコスト高の操作であるため、再実行が不要な場合は、Requeryプロパティをfalseに設定しておきます。SelectCommandのプロパティまたは関連パラメータのいずれかを変更する必要がある場合は、Requeryをtrueに設定する必要があります。

Requeryプロパティをfalseに設定すると、DataSetにはデータ全体が特定時点のスナップショットとして含まれます。問合せは最初のFillコールで実行されるのみで、後続のFillコールでは、問合せの最初の実行でオープンされたカーソルからデータがフェッチされます。この機能がサポートされているのは、順方向専用フェッチのみです。最後にフェッチされた行より前の行をフェッチしようとするFillコールでは、例外が発生します。最初のFillコールに使用された接続が、後続のFillコールでも使用できる必要があります。

OracleRefCursorをDataSetに移入するとき、同様の方法でRequeryプロパティを使用できます。Requeryプロパティをfalseに設定すると、最初のFillに使用した接続とOracleRefCursorが両方とも後続のFillコールでも使用できる必要があります。

関連項目:

- 「Requery」

- 「SelectCommand」

データベースへのDataSetの更新における一意性の保証

この項では、OracleCommandBuilderオブジェクトがDataSetの変更をデータベースに更新するときに、一意性を保証するDataTableオブジェクトのPrimaryKeyおよびConstraintsプロパティがOracleDataAdapterによって構成される方法について説明します。

OracleCommandBuilderオブジェクトを使用して、データベースに対して実行されるDML文を動的に生成するのは、1つのDataTableオブジェクトにおける変更をデータベースと一致させる方法の1つです。

このプロセスでは、OracleCommandBuilderオブジェクトは、1つのDataRowの変更を一致させるときに、データベース内の1行に影響する(更新または削除)DML文を生成することはできません。それ以外の場合、OracleCommandBuilderによりデータベース内のデータが破損する可能性があります。

各DataRowオブジェクトの変更が1行にのみ影響を与えるようにするには、DataTable内のすべての行が一意の値のセットを持つDataTableのDataColumnオブジェクトのセットが必要です。プロパティDataTable.PrimaryKeyおよびDataTable.Constraintsによって示されるDataColumnオブジェクトのセットは、この要件を満たします。OracleCommandBuilderオブジェクトは、DataTable.PrimaryKeyがNULL以外か、またはDataTable.ConstraintsコレクションにUniqueConstraintオブジェクトが存在するかどうかをチェックすることで、DataTableの一意性を確認します。

これにより、DataRowオブジェクトの一意性を構成する要素と、DataTableプロパティの構成によって更新中に一意性を維持する方法が説明されます。

この項の内容は次のとおりです。

- DataRowオブジェクトの一意性を構成する要素

- PrimaryKeyおよびConstraintsプロパティの構成

- PrimaryKeyおよびConstraintsが構成されていない場合の更新

DataRowオブジェクトの一意性を構成する要素

この項では、DataRowオブジェクトの一意性を保証するために満たす必要がある最低条件について説明します。一意性の条件は、次の項で説明するように、DataTable.PrimaryKeyおよびDataTable.Constraintsプロパティが構成される前に保証される必要があります。

DataTableオブジェクトの一意性は、次のいずれかに当てはまる場合に保証されます。

- 主キーの列はすべて、OracleDataAdapter.SelectCommandプロパティの選択リスト内にあります。

- 一意制約の列はすべて、OracleDataAdapter.SelectCommandプロパティの選択リスト内にあり、含まれる少なくとも1つの列にNOT NULL制約が定義されています。

- 一意索引の列はすべて、OracleDataAdapter.SelectCommandプロパティの選択リスト内にあり、含まれる少なくとも1つの列にNOT NULL制約が定義されています。

- ROWIDは、OracleDataAdapter.SelectCommandプロパティの選択リスト内に存在します。

注意:
一意制約が定義されたか、または一意索引が作成された列のセットには、少なくとも1つのNULL値不可の列が必要です。その理由は、列セットのすべての列がNULL値可能な場合、列セットの列ごとにNULL値を持つ複数の行が存在する可能性があるためです。これは、各行に列セットの値の一意のセットがあるという一意性条件に違反します。

PrimaryKeyおよびConstraintsプロパティの構成

「DataRowオブジェクトの一意性を構成する要素」で説明した最小条件が満たされる場合、DataTable.PrimaryKeyまたはDataTable.Constraintsプロパティを設定できます。

これらのプロパティを設定した後に、OracleCommandBuilderオブジェクトは、DataTable.PrimaryKeyプロパティまたはDataTable.ConstraintsコレクションのUniqueConstraintオブジェクトの存在をチェックすることで、DataTableの一意性を確認できます。一意性が確認されると、OracleCommandBuilderオブジェクトはDML文を安全に生成してデータベースを更新できます。

OracleDataAdapter.FillSchemaメソッドは、次の優先順位に従ってこれらのプロパティを設定しようとします。

1. 選択リスト内で主キーが戻される場合、DataTable.PrimaryKeyプロパティとして設定されます。

2. 次の基準を満たす列のセットが選択リスト内で戻される場合、DataTable.PrimaryKeyプロパティとして設定されます。
基準:列のセットには、定義された一意制約または作成された一意索引があり、各列にNOT NULL制約が定義されています。

3. 次の基準を満たす列のセットが選択リストで戻される場合、DataTable.ConstraintsコレクションにUniqueConstraintオブジェクトが追加されますが、DataTable.PrimaryKeyプロパティは設定されません。
基準:列のセットには、定義された一意制約または作成された一意索引があり、少なくとも1つの列にNOT NULL制約が定義されています。

4. ROWIDが選択リストの一部の場合、DataTable.PrimaryKeyプロパティとして設定されます。

また、OracleDataAdapter.FillSchemaメソッドは次の動作を示します。

- DataTable.PrimaryKeyプロパティを暗黙的に設定すると、UniqueConstraintオブジェクトが作成されます。

- 列がDataTable.PrimaryKeyプロパティまたはUniqueConstraintオブジェクト(あるいはその両方)の一部である場合、選択リストに列が出現するたびにこれが繰り返されます。

PrimaryKeyおよびConstraintsが構成されていない場合の更新

アプリケーションがOracleDataAdapter.FillSchemaメソッドをコールしていない場合など、DataTable.PrimaryKeyまたはConstraintsプロパティが構成されていない場合、OracleCommandBuilderオブジェクトはOracleDataAdapter.SelectCommandプロパティの選択リストを直接チェックして、DataTableの一意性が保証されているかどうかを確認します。ただし、このチェックによりデータベース・ラウンドトリップが1回行われ、OracleDataAdapter.SelectCommandのSELECT文のメタデータが取得されます。

PL/SQL文はメタデータのキー情報を戻さないため、OracleCommandBuilderオブジェクトはPL/SQL文から作成されたDataTableを更新できません。

グローバリゼーション・サポート

ODP.NETグローバリゼーション・サポートを使用すると、アプリケーションでは地域に依存するデータを適切に処理できます。この機能により、Oracleグローバリゼーション設定に応じて、適切な文字列書式、日付、時刻、金額、数値、ソート順序およびカレンダの表記規則が使用されます。

関連項目:
「OracleGlobalizationクラス」

この項の内容は次のとおりです。

- グローバリゼーション設定

- グローバリゼーションに依存した操作

グローバリゼーション設定

OracleGlobalizationオブジェクトを使用すると、次のものを表すことができます。

- クライアントのグローバリゼーション設定

- セッションのグローバリゼーション設定

- スレッドベースのグローバリゼーション設定

クライアントのグローバリゼーション設定

クライアントのグローバリゼーション設定は、ローカル・コンピュータのWindowsレジストリのOracleグローバリゼーション設定(NLS_LANG)から導出されます。クライアントのグローバリゼーション・パラメータ設定は読取り専用で、アプリケーションの存続中は一定です。クライアントのグローバリゼーション設定は、OracleGlobalization.GetClientInfo静的メソッドをコールすることで取得できます。

次の例は、クライアントのグローバリゼーション設定を取得します。

// C#

using System;
using Oracle.DataAccess.Client;

class ClientGlobalizationSample
{
static void Main()
{
OracleGlobalization ClientGlob = OracleGlobalization.GetClientInfo();

Console.WriteLine("Client machine language: " + ClientGlob.Language);
Console.WriteLine("Client characterset: " + ClientGlob.ClientCharacterSet);
}
}

OracleGlobalizationオブジェクトのプロパティは、Oracleグローバリゼーション値の設定を指定します。

セッションのグローバリゼーション設定

セッション・グローバリゼーション・パラメータは、最初はクライアントのグローバリゼーション設定と同じです。クライアント設定と異なり、セッションのグローバリゼーション設定は更新可能ですが、データベースに対する接続を確立した後にのみ取得できます。セッションのグローバリゼーション設定は、OracleConnectionオブジェクトでGetSessionInfoメソッドをコールすることで取得できます。このメソッドを起動すると、プロパティがセッションのグローバリゼーション設定を表すOracleGlobalizationクラスのインスタンスのプロパティが戻されます。

OracleConnectionオブジェクトが接続を確立すると、クライアント・コンピュータのOracleグローバリゼーション(またはNational Language Setting(NLS))レジストリ設定で指定された値でグローバリゼーション・パラメータが初期化されたセッションが暗黙的にオープンします。セッション設定は更新可能で、存続中に変更できます。

次の例は、セッションの日付書式の設定を変更します。

// C#

using System;
using Oracle.DataAccess.Client;

class SessionGlobalizationSample
{
static void Main()
{
OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";
con.Open();

OracleGlobalization SessionGlob = con.GetSessionInfo();

// SetSessionInfo updates the Session with the new value
SessionGlob.DateFormat = "YYYY/MM/DD";
con.SetSessionInfo(SessionGlob);
Console.WriteLine("Date Format successfully changed for the session");

// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
}
}

スレッドベースのグローバリゼーション設定

スレッドベースのグローバリゼーション・パラメータ設定は、各スレッドに固有です。最初は、これらの設定はクライアントのグローバリゼーション設定と同じですが、アプリケーションで指定されたとおりに変更できます。ODP.NETタイプと文字列の間で変換が行われると、スレッドベースのグローバリゼーション・パラメータが使用されます(該当する場合)。

スレッドベースのグローバリゼーション・パラメータ設定は、OracleGlobalizationクラスのGetThreadInfo静的メソッドを起動することで取得されます。OracleGlobalizationクラスのSetThreadInfo静的メソッドをコールすると、スレッドのグローバリゼーション設定を設定できます。

文化によって異なるデータを操作する場合、ODP.NETクラスおよび構造体は、OracleGlobalization設定のみを使用します。.NETスレッドの文化情報は使用されません。アプリケーションで.NET型のみを使用する場合は、OracleGlobalizationの設定は影響しません。ただし、ODP.NETタイプと.NETタイプ間で変換が行われる場合、OracleGlobalization設定が使用されます(該当する場合)。

注意:
System.Threading.Thread. CurrentThread.CurrentCultureプロパティを変更しても、スレッドまたはセッションのOracleGlobalization設定には影響せず、その逆も同じです。

次のコードは、スレッドのグローバリゼーション設定がODP.NETタイプでどのように使用されるかを示しています。

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class ThreadBasedGlobalizationSample
{
static void Main(string[] args)
{
// Set the thread's DateFormat for the OracleDate constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.DateFormat = "YYYY-MON-DD";
OracleGlobalization.SetThreadInfo(info);

// construct OracleDate from a string using the DateFormat specified.
OracleDate date = new OracleDate("1999-DEC-01");

// Set a different DateFormat for the thread
info.DateFormat = "MM/DD/YYYY";
OracleGlobalization.SetThreadInfo(info);

// Print "12/01/1999"
Console.WriteLine(date.ToString());
}
}

OracleGlobalizationオブジェクトは、プロパティの変更を検証します。プロパティの設定に無効な値が使用された場合、例外がスローされます。TerritoryおよびLanguageプロパティに対する変更により、OracleGlobalizationオブジェクトの他のプロパティも暗黙的に変更されます。

関連項目:
TerritoryおよびLanguageグローバリゼーション設定の影響を受けるプロパティの詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照

グローバリゼーションに依存した操作

この項では、グローバリゼーション設定に依存するODP.NETタイプおよび操作をリストします。

クライアント・コンピュータのグローバリゼーション設定に依存する操作

OracleString構造は、クライアント・コンピュータのOracleGlobalization設定に依存します。ローカル・コンピュータのクライアント・キャラクタ・セットは、GetNonUnicodeメソッドでUnicode文字列をbyte[]に変換する場合、およびbyte[]を受け入れるOracleStringコンストラクタでANSI文字のbyte[]をUnicodeに変換する場合に使用されます。

スレッドのグローバリゼーション設定に依存する操作

スレッドのグローバリゼーション設定は、.NET文字列タイプとの間で変換が行われるときにODP.NETタイプで使用されます(該当する場合)。ほとんどの場合、次のODP.NETタイプによって、特定のスレッドのグローバリゼーション設定を使用します。

- ToStringメソッド

- Parse静的メソッド

- .NET文字列データを受け入れるコンストラクタ

- .NET文字列との間の変換演算子

たとえば、ToStringメソッドが起動される場合、OracleDateタイプは、スレッド・グローバリゼーション設定のDateFormatプロパティを使用します。これは、スレッドの設定で指定された書式の文字列としてDATEを戻します。

ODP.NETタイプと.NET文字列タイプの間で変換を行うODP.NETタイプ・メソッドの詳細、およびその特定のメソッドに使用されているスレッド・グローバリゼーション設定の判別方法は、第10章の記述を参照してください。

スレッドのグローバリゼーション設定は、Safeタイプ・マッピングを使用する文字列としてDataSetに取得されるデータにも影響します。タイプが書式に依存する場合、文字列は常にスレッドのグローバリゼーション設定で指定された書式になります。

たとえば、INTERVAL DAY TO SECONDデータは、スレッド設定の影響を受けません。このタイプには書式が適用されないためです。ただし、DateFormatプロパティおよびNumericCharactersプロパティは、Safeタイプ・マッピングによってDataSetに文字列として取得される場合、それぞれDATEタイプおよびNUMBERタイプの文字列表現に影響します。

関連項目:

- 「OracleDataAdapter Safeタイプ・マッピング」

- 第10章「Oracle Data Provider for .NETのグローバリゼーション・クラス」

- 第14章「Oracle Data Provider for .NETタイプの構造」

セッション・グローバリゼーション・パラメータに依存する操作

セッション・グローバリゼーション設定は、データベースとの間で文字列として取得または送信されたデータに影響します。

たとえば、TO_CHAR()関数が適用されたDATE列を選択した場合、DATE列データは、セッション・グローバリゼーション設定のDateFormatプロパティで指定された日付書式の文字列になります。データを他のディレクションに送信する場合、DATE列に挿入される文字列データは、セッション・グローバリゼーション設定のDateFormatプロパティで指定された書式にする必要があります。

デバッグ・トレース

ODP.NETではデバッグ・トレースをサポートしています。これにより、ODP.NETのすべてのアクティビティをトレース・ファイルに記録できます。複数のレベルのトレースを使用できます。

プロバイダは次の情報をログに記録できます。

- ODP.NETパブリック・メソッドの開始および終了情報

- ユーザー指定のSQL文およびプロバイダにより変更されたSQL文

- 登録および登録解除などの接続プーリング統計情報

- スレッドID(開始および終了)

- HAイベントおよびロード・バランシングの情報

- 分散トランザクション

- 自動チューニング情報

- 非管理例外におけるユーザーモード・ダンプ

ODP.NETでトレースを有効にするには、TraceFileName、TraceLevelおよびTraceOptionをWindowsレジストリまたはXML構成ファイルに適切に設定する必要があります。

関連項目:
詳細は、「Oracle Data Provider for .NETの構成」を参照してください

4 Oracle Data Provider for .NETのサーバー側機能

この章では、Oracle Data Provider for .NETで提供されているサーバー側機能について説明します。

Oracle Database Extensions for .NETが提供する、Windows対応のOracle Database内での.NETストアド・プロシージャのサポートとともに、ODP.NETを使用すると、.NETストアド・プロシージャ実行のコンテキストから使用できる暗黙的なデータベース接続によりOracleデータにアクセスできます。明示的なユーザー接続を作成して、.NETストアド・プロシージャのホストのデータベースまたはOracle以外のデータベースへの接続を確立することもできます。

関連項目:
Oracle Database Extensions for .NET開発者ガイド

この章の内容は次のとおりです。

- ODP.NETを使用した.NETストアド・プロシージャの実行の概要

- .NETストアド・プロシージャにおけるODP.NETに関する制限事項

- .NETストアド・プロシージャに対するクライアント・アプリケーションのポーティング

ODP.NETを使用した.NETストアド・プロシージャの実行の概要

Oracle Data Provider for .NETクラスとAPIを使用して、.NETクライアント・アプリケーションから、および.NETストアド・プロシージャとファンクションからOracle Databaseのデータにアクセスできます。

ただし、Oracle Data Provider for .NETを.NETストアド・プロシージャ内で使用する場合はいくつかの制限があります。これらの制限を次の項で説明します。

単純な.NETストアド・プロシージャの例を次に示します。

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

public class CLRLibrary1
{
// .NET Stored Function returning the DEPTNO of the employee whose
// EMPNO is 'empno'
public static uint GetDeptNo(uint empno)
{
uint deptno = 0;

// Create and open a context connection
OracleConnection conn = new OracleConnection();
if( OracleConnection.IsAvailable == true )
{
conn.ConnectionString = "context connection=true";
}
else
{
//set connection string for a normal client connection
conn.ConnectionString = "user id=scott;password=tiger;" +
"data source=oracle";
}
conn.Open();

// Create and execute a command
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT DEPTNO FROM EMP WHERE EMPNO = :1";
cmd.Parameters.Add(":1",OracleDbType.Int32,empno,
System.Data.ParameterDirection.Input);
OracleDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
deptno = (uint)rdr.GetInt32(0);
rdr.Close();
cmd.Dispose();
conn.Close();
return deptno;
} // GetDeptNo
} // CLRLibrary1

関連項目:

- .NETストアド・プロシージャの作成方法の詳細は、Oracle Database Extensions for .NET開発者ガイドを参照

- 表4-1「クライアント・アプリケーションと.NETストアド・プロシージャ間でのAPIサポートの比較」

.NETストアド・プロシージャにおけるODP.NETに関する制限事項

この項では、Oracle Data Provider for .NETを.NETストアド・プロシージャ内で使用する際に適用される重要な概念について説明します。

暗黙的なデータベース接続

.NETストアド・プロシージャでは、暗黙的なデータベース接続を使用してOracleデータにアクセスできます。暗黙的なデータベース接続が.NETストアド・プロシージャのコール元によりすでに確立されているため、ユーザー接続を確立するかわりに、この暗黙的なデータベース接続を使用する必要があります。これにより、リソースの使用量が最小化されます。

暗黙的なデータベース接続を表すOracleConnectionオブジェクトを.NETストアド・プロシージャで取得するには、OracleConnectionオブジェクトのConnectionStringプロパティを"context connection=true"に設定し、Openメソッドを起動します。"context connection=true"は、Statement Cache Size属性以外の接続文字列属性と一緒に使用することはできません。

暗黙的なデータベース接続の可用性は、実行時にOracleConnection.IsAvailable静的プロパティを使用して確認できます。このプロパティでは、Oracle Data Provider for .NETが.NETストアド・プロシージャで使用されている場合は常にtrueを戻します。それ以外の場合は、falseが戻されます。

注意:
データベース・リンクは、.NETストアド・プロシージャではサポートされません。

.NETストアド・プロシージャを起動して使用できる暗黙的なデータベース接続は1つのみです。暗黙的なデータベース接続に加えてさらに接続を確立するには、明示的な接続を作成する必要があります。暗黙的なデータベース接続を表すOracleConnectionに対してCloseメソッドが起動されると、接続は実際にはクローズされません。したがって、同一の、または別のOracleConnectionオブジェクトに対してOpenメソッドを起動して、暗黙的なデータベース接続を表す接続を取得することができます。

暗黙的なデータベース接続を取得できるのは、最初に.NETストアド・プロシージャを起動した、ネイティブのOracleスレッドでOpenメソッドを起動するときのみです。ただし、ネイティブのOracleスレッドから生成されたスレッドでは、ネイティブのOracleスレッドにより取得された暗黙的なデータベース接続を使用できます。

関連項目:
「OracleConnection.IsAvailable」

トランザクションのサポート

暗黙的なデータベース接続では、.NETストアド・プロシージャを実行すると、現在のトランザクションが自動的に継承されます。コンテキスト接続では、明示的なトランザクションは.NETストアド・プロシージャ内で開始、コミット、またはロールバックできませんが、クライアント接続では、明示的なトランザクションは.NETストアド・プロシージャ内で開始、コミット、またはロールバックできます。

たとえば、コンテキスト接続の場合、OracleConnection.BeginTransactionを.NETストアド・プロシージャ内で使用できませんが、クライアント接続の場合は使用できます。.NETストアド・プロシージャは分散トランザクションをサポートしません。分散トランザクションのクライアント接続に参加して.NETストアド・プロシージャまたはファンクションをコールした場合、エラーが発生します。

トランザクションの一部にする必要があるデータベース上で、.NETストアド・プロシージャまたは関数の操作を実行する場合、このトランザクションは、.NETストアド・プロシージャを呼び出す前に開始する必要があります。必要なコミットまたはロールバックは、.NETストアド・プロシージャや関数から戻された後に実行する必要があります。

次の例は、クライアント・アプリケーションと従業員のレコードをEMP表に挿入するInsertRecordSPという.NETストアド・プロシージャで構成されています。

例(.NETストアド・プロシージャ)

using System;
using System.Data;
using Oracle.DataAccess.Client;
// This class represents an Oracle .NET stored procedure that inserts
// an employee record into an EMP table of SCOTT schema.
public class InsertRecordSP
{
// This procedure will insert a row into the emp database
// For simplicity we are using only two parameters, the rest are hard coded
public static void InsertRecord( int EmpNo, string EmpName )
{
if(OracleConnection.IsAvailable == true )
{
OracleConnection conn = new OracleConnection(
"context connection=true");
conn.Open();
// Create new command object from connection context
OracleCommand Cmd = conn.CreateCommand();
Cmd.CommandText = "INSERT INTO EMP( EMPNO, ENAME, JOB," +
"MGR, HIREDATE, SAL, COMM, DEPTNO ) " +
"VALUES ( :1, :2, 'ANALYST', 7566, " +
"'06-DEC-04', 5000, 0, 20 )";
Cmd.Parameters.Add( ":1", OracleDbType.Int32,
EmpNo, ParameterDirection.Input );
Cmd.Parameters.Add( ":2", OracleDbType.Varchar2,
EmpName, ParameterDirection.Input );
Cmd.ExecuteNonQuery();
}
}
}

例(クライアント・アプリケーション)

この例では、従業員番号7950のBernsteinという新しい従業員をEMP表に入力します。

// C#
// This sample demonstrates how to start the transaction with ODP.NET client
// application and execute an Oracle .NET stored procedure that performs
// a DML operation. Since .NET stored procedure inherits the current
// transaction from the implicit database connection,  DML operation
// in .NET stored procedure will not be in auto-committed mode.
// Therefore, it is up to the client application to do a COMMIT or ROLLBACK
// after returning from .NET stored procedure
using System;
using System.Data;
using Oracle.DataAccess.Client;
// In this class we are starting a transaction on the client side and
// executing a .NET stored procedure, which inserts a record into EMP
// table and then verifies record count before and after COMMIT statement
class TransactionSample
{
static void Main(string[] args)
{
OracleConnection Conn = null;
OracleTransaction Txn = null;
OracleCommand Cmd = null;
try
{
Console.WriteLine( "Sample: Open DB connection in non auto-committed "
+ "mode," +
"DML operation performed by .NET stored " +
"procedure doesn't have an effect before COMMIT " +
"is called." );
// Create and Open oracle connection
Conn = new OracleConnection();
Conn.ConnectionString = "User Id=scott;Password=tiger;" +
"Data Source=oracle;";
Conn.Open();
// Start transaction
Txn = Conn.BeginTransaction( IsolationLevel.ReadCommitted );
// Create command object
Cmd = new OracleCommand();
Cmd.Connection = Conn;
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.CommandText = "InsertRecord"; // .NET Stored procedure
// Parameter settings
OracleParameter EmpNoPrm = Cmd.Parameters.Add(
"empno", OracleDbType.Int32 );
EmpNoPrm.Direction = ParameterDirection.Input;
EmpNoPrm.Value = 7950;
OracleParameter EmpNamePrm = Cmd.Parameters.Add(
"ename", OracleDbType.Varchar2, 10 );
EmpNamePrm.Direction = ParameterDirection.Input;
EmpNamePrm.Value = "Bernstein";
// Execute .NET stored procedure
Cmd.ExecuteNonQuery();
Console.WriteLine( "Number of record(s) before COMMIT {0}",
RecordCount() );
Txn.Commit();
Console.WriteLine( "Number of record(s) after COMMIT {0}",
RecordCount() );
}
catch( OracleException OE )
{
Console.WriteLine( OE.Message );
}
finally
{
// Cleanup objects
if( null != Txn )
Txn.Dispose();
if( null != Cmd )
Cmd.Dispose();
if( null != Conn && Conn.State == ConnectionState.Open )
Conn.Close();
}
}
static int RecordCount()
{
int EmpCount = 0;
OracleConnection Conn = null;
OracleCommand Cmd = null;
try
{
Conn = new OracleConnection( "User Id=scott;Password=tiger;" +
"Data Source=oracle;" );
Conn.Open();
Cmd = new OracleCommand( "SELECT COUNT(*) FROM EMP", Conn );
Object o = Cmd.ExecuteScalar();
EmpCount = Convert.ToInt32(o.ToString());
}
catch( OracleException OE )
{
Console.WriteLine( OE.Message );
}
finally
{
if( null != Cmd )
Cmd.Dispose();
}
return EmpCount;
}
}

未サポートのSQLコマンド

.NETストアド・プロシージャでは、COMMIT、ROLLBACKおよびSAVEPOINTなどのトランザクション制御コマンドはサポートされていません。

CREATEやALTERなどのデータ定義コマンドは暗黙的なデータベース接続ではサポートされていませんが、.NETストアド・プロシージャにおける明示的なユーザー接続ではサポートされています。

Oracleユーザー定義タイプ(UDT)のサポート

UDTはコンテキスト接続内ではサポートされませんが、クライアント接続ではサポートされます。UDTは.NETストアド・プロシージャのパラメータとしてサポートされていません。

.NETストアド・プロシージャに対するクライアント・アプリケーションのポーティング

すべてのクラスおよびクラス・メンバーは、特に記述のないかぎり、クライアント・アプリケーションと.NETストアド・プロシージャの両方に同じ機能を提供します。

表4-1には、クライアント・アプリケーションで使用されるかどうか、または.NETストアド・プロシージャで使用されるかどうかに応じて、異なる動作をするクラスとクラス・メンバーをリストします。

列見出し

この表の列見出しは次のとおりです。

クライアント・アプリケーション:クライアント・アプリケーション

暗黙的な接続:.NETストアド・プロシージャにおける暗黙的なデータベース接続

明示的な接続:.NETストアド・プロシージャにおける明示的なユーザー接続

表4-1 クライアント・アプリケーションと.NETストアド・プロシージャ間でのAPIサポートの比較

クラスまたはクラス・メンバー

クライアント・アプリケーション

暗黙的な接続/明示的な接続

OnChangeEventHandlerデリゲート
-すべてのメンバー

Yes

No/No

OracleDependencyクラス
-すべてのメンバー

Yes

No/No

OracleNotificationEventArgsクラス
-すべてのメンバー

Yes

No/No

OracleNotificationRequestクラス
-すべてのメンバー

Yes

No/No

OracleFailoverEventArgsクラス
-すべてのメンバー

Yes

No/No

OracleFailoverEventHandlerデリゲート
-すべてのメンバー

Yes

No/No

OracleTransactionクラス
-すべてのメンバー

Yes

No/No

OracleCommandクラス
-Transactionプロパティ

Yes

No #1/No #1

OracleConnectionクラス
-ConnectionTimeoutプロパティ
-DataSourceプロパティ
-BeginTransactionメソッド
-ChangeDatabaseメソッド
-Cloneメソッド
-EnlistDistributedTransactionメソッド
-OpenWithNewPassword メソッド
-Failoverイベント
-OracleFailoverEventHandlerデリゲート

Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
Yes

Yes #3/Yes
Yes #2/Yes
No/Yes
No/No
No/Yes
No/No
No/Yes
No/No
No/No

ODP.NET列挙
-FailoverEvent列挙
-FailoverReturnCode列挙
-FailoverType列挙
-OracleNotificationInfo列挙
-OracleNotificationSource列挙
-OracleNotificationType列挙

Yes
Yes
Yes
Yes
Yes
Yes

No/No
No/No
No/No
No/No
No/No
No/No

表4-1の項目に関するコメント

1. 常にnullを戻します。

2. 暗黙的なデータベース接続は常に空の文字列を戻します。

3. 暗黙的なデータベース接続は常に0を戻します。

5 Oracle Data Provider for .NETクラス

この章では、次のOracle Data Provider for .NETクラスについて説明します。

- OracleCommandクラス

- OracleCommandBuilderクラス

- OracleConnectionクラス

- OracleDataAdapterクラス

- OracleDatabaseクラス

- OracleDataReaderクラス

- OracleErrorクラス

- OracleErrorCollectionクラス

- OracleExceptionクラス

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventHandlerデリゲート

- OracleParameterクラス

- OracleParameterCollectionクラス

- OraclePermissionクラス

- OraclePermissionAttributeクラス

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventHandlerデリゲート

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventHandlerデリゲート

- OracleTransactionクラス

- OracleConnectionTypeの列挙

- OracleCollectionTypeの列挙

- OracleDBShutdownModeの列挙

- OracleDBStartupModeの列挙

- OracleDbTypeの列挙

- OracleParameterStatusの列挙

OracleCommandクラス

OracleCommandオブジェクトは、SQLコマンド、ストアド・プロシージャまたは表の名前を表します。OracleCommandオブジェクトは、要求を作成してこれをデータベースに渡す処理を担当します。結果が戻される場合、OracleCommandは、OracleDataReader、.NET XmlReader、.NET Stream、スカラー値または出力パラメータとして結果を戻す処理を担当します。

クラスの継承

System.Object

System.MarshalByRefObject

System.ComponentModel.Component

System.Data.Common.DbCommand (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleCommand

宣言

// ADO.NET 2.0: C#
public sealed class OracleCommand : DbCommand, ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleCommandからトランザクション関連文を実行しても、現行のローカル・トランザクション(存在する場合)を表すOracleTransactionオブジェクトの状態に反映されないため、お薦めできません。

ExecuteXmlReader、ExecuteStreamおよびExecuteToStreamメソッドは、XML操作でのみサポートされています。

ExecuteReaderおよびExecuteScalarメソッドは、XML操作ではサポートされていません

オープン・サーバー・カーソルの数を最小限にするには、OracleCommandオブジェクトを明示的に処理する必要があります。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleCommandSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

string cmdQuery = "select ename, empno from emp";

// Create the OracleCommand
OracleCommand cmd = new OracleCommand(cmdQuery);

cmd.Connection = con;
cmd.CommandType = CommandType.Text;

// Execute command, create OracleDataReader object
OracleDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
// output Employee Name and Number
Console.WriteLine("Employee Name : " + reader.GetString(0) + " , " +
"Employee Number : " + reader.GetDecimal(1));
}

// Clean up
reader.Dispose();
cmd.Dispose();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandメンバー

- OracleCommandコンストラクタ

- OracleCommand静的メソッド

- OracleCommandプロパティ

- OracleCommandパブリック・メソッド

OracleCommandメンバー

OracleCommandメンバーは、次の各表にリストしています。

OracleCommandコンストラクタ

OracleCommandコンストラクタを、表5-1にリストします。

表5-1 OracleCommandコンストラクタ

コンストラクタ

説明

OracleCommandコンストラクタ

OracleCommandクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleCommand静的メソッド

OracleCommand静的メソッドを、表5-2にリストします。

表5-2 OracleCommand静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleCommandプロパティ

OracleCommandプロパティを、表5-3にリストします。

表5-3 OracleCommandプロパティ

プロパティ

説明

AddRowid

選択リストの一部としてROWIDを追加します

AddToStatementCache

プロパティがtrueに設定されており、文キャッシングが有効な場合、実行された文をキャッシュします。

ArrayBindCount

配列バインディング機能を使用するかどうか、またValueプロパティにバインドする配列要素の最大数を指定します

BindByName

コレクションのバインディング・メソッドを指定します

CommandText

Oracle Databaseに対して実行するSQL文やストアド・プロシージャ、またはOracle Databaseに対する変更の格納に使用するXMLデータを指定します

CommandTimeout

例外で実行を終了するまでコマンドの実行を可能にする秒数を指定します

CommandType

CommandTextプロパティの解析方法を示すコマンド・タイプを指定します

Connection

コマンドを実行するための接続の識別に使用されるOracleConnectionオブジェクトを指定します

Container

System.ComponentModel.Componentからの継承

DesignTimeVisible

OracleCommandオブジェクトが設計者の制御で表示できるかどうかを指定します。

FetchSize

結果セット・データを格納するOracleDataReaderの内部キャッシュのサイズを指定します

InitialLOBFetchSize

LOB列についてOracleDataReaderが最初にフェッチするデータ量を指定します

InitialLONGFetchSize

OracleDataReaderがLONGおよびLONG RAW列に対して最初にフェッチするデータ量を指定します

Notification

コマンドに通知要求があることを示します

NotificationAutoEnlist

コマンド実行時に、データベースにデータベース変更通知が自動登録されるかどうかを示します

Parameters

SQL文またはストアド・プロシージャのパラメータを指定します

RowSize

OracleDataReader内部キャッシュで1行のデータを格納するために必要なメモリー量を指定します

Site

System.ComponentModel.Componentからの継承

Transaction

OracleCommandが実行されるOracleTransactionオブジェクトを指定します

.NETストアド・プロシージャではサポートされません

UpdatedRowSource

問合せコマンドの結果が、更新されている列にどのように適用されるかを指定します

.NETストアド・プロシージャではサポートされません

XmlCommandType

OracleCommandのXML操作の型を指定します

XmlQueryProperties

SQL問合せ文の結果セットからXML文書が作成される場合に使用されるプロパティを指定します

XmlSaveProperties

データベースに対する変更の保存にXML文書が使用される場合のプロパティを指定します

OracleCommandパブリック・メソッド

OracleCommandパブリック・メソッドを、表5-4にリストします。

表5-4 OracleCommandパブリック・メソッド

パブリック・メソッド

説明

Cancel

特定の接続で現在実行されているコマンドの取消しを試行します

Clone

OracleCommandオブジェクトのコピーを作成します

CreateObjRef

System.MarshalByRefObjectからの継承

CreateParameter

OracleParameterクラスの新規インスタンスを作成します

Dispose

System.ComponentModel.Componentからの継承

Equals

System.Objectからの継承(オーバーロード)

ExecuteNonQuery

XmlCommandTypeおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受ける行数を戻します

ExecuteReader

コマンドを実行します(オーバーロード)

ExecuteScalar

問合せにより戻された結果セットの最初の行の最初の列を戻します

ExecuteStream

XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、新規Streamオブジェクトに結果を戻します

ExecuteToStream

XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として既存のStreamに追加します

ExecuteXmlReader

XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NET XmlTextReaderオブジェクトに戻します。

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Prepare

このメソッドは操作不能です

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

OracleCommandコンストラクタ

OracleCommandコンストラクタでは、OracleCommandクラスの新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleCommand()
このコンストラクタでは、OracleCommandクラスの新規インスタンスが作成されます。

- OracleCommand(String)
このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。

- OracleCommand(string, OracleConnection)
このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

OracleCommand()

このコンストラクタでは、OracleCommandクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleCommand();

備考

デフォルトのコンストラクタ

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

OracleCommand(String)

このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleCommand(string cmdText);

パラメータ

- cmdText
実行されるSQLコマンドまたはストアド・プロシージャ

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

OracleCommand(string, OracleConnection)

このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleCommand(string cmdText, OracleConnection OracleConnection);

パラメータ

- cmdText
実行されるSQLコマンドまたはストアド・プロシージャ

- OracleConnection
Oracle Databaseへの接続

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

OracleCommand静的メソッド

OracleCommand静的メソッドを、表5-5にリストします。

表5-5 OracleCommand静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

OracleCommandプロパティ

OracleCommandプロパティを、表5-6にリストします。

表5-6 OracleCommandプロパティ

プロパティ

説明

AddRowid

選択リストの一部としてROWIDを追加します

AddToStatementCache

プロパティがtrueに設定されており、文キャッシングが有効な場合、実行された文をキャッシュします。

ArrayBindCount

配列バインディング機能を使用するかどうか、またValueプロパティにバインドする配列要素の最大数を指定します

BindByName

コレクションのバインディング・メソッドを指定します

CommandText

Oracle Databaseに対して実行するSQL文やストアド・プロシージャ、またはOracle Databaseに対する変更の格納に使用するXMLデータを指定します

CommandTimeout

例外で実行を終了するまでコマンドの実行を可能にする秒数を指定します

CommandType

CommandTextプロパティの解析方法を示すコマンド・タイプを指定します

Connection

コマンドを実行するための接続の識別に使用されるOracleConnectionオブジェクトを指定します

Container

System.ComponentModel.Componentからの継承

DesignTimeVisible

OracleCommandオブジェクトが設計者の制御で表示できるかどうかを指定します。

FetchSize

結果セット・データを格納するOracleDataReaderの内部キャッシュのサイズを指定します

InitialLOBFetchSize

LOB列についてOracleDataReaderが最初にフェッチするデータ量を指定します

InitialLONGFetchSize

OracleDataReaderがLONGおよびLONG RAW列に対して最初にフェッチするデータ量を指定します

Notification

コマンドに通知要求があることを示します

NotificationAutoEnlist

コマンド実行時に、データベースにデータベース変更通知が自動登録されるかどうかを示します

Parameters

SQL文またはストアド・プロシージャのパラメータを指定します

RowSize

OracleDataReader内部キャッシュで1行のデータを格納するために必要なメモリー量を指定します

Site

System.ComponentModel.Componentからの継承

Transaction

OracleCommandが実行されるOracleTransactionオブジェクトを指定します

.NETストアド・プロシージャではサポートされません

UpdatedRowSource

問合せコマンドの結果が、更新されている列にどのように適用されるかを指定します

.NETストアド・プロシージャではサポートされません

XmlCommandType

OracleCommandのXML操作の型を指定します

XmlQueryProperties

SQL問合せ文の結果セットからXML文書が作成される場合に使用されるプロパティを指定します

XmlSaveProperties

データベースに対する変更の保存にXML文書が使用される場合のプロパティを指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

AddRowid

このプロパティでは、選択リストの一部としてROWIDを追加します。

宣言

// C#
public bool AddRowid {get; set;}

プロパティ値

bool

備考

デフォルトはfalse

このROWID列は非表示で、アプリケーションでアクセスすることはできません。表のROWIDにアクセスするには、このプロパティを使用しないでROWIDを明示的に選択リストに追加する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- LOBでのこのプロパティの使用方法の詳細は、「LOBサポート」を参照

AddToStatementCache

このプロパティがtrueに設定され、文キャッシングが有効な場合は、実行された文がキャッシュされます。文キャッシングが無効な場合、またはこのプロパティがfalseに設定されている場合、実行された文はキャッシュされません。

宣言

// C#
public bool AddToStatementCache{get; set;}

戻り値

bool値を戻します。値trueは文がキャシュに追加されていることを示し、falseはそうでないことを示します。

プロパティ値

文キャッシングが有効になっている場合、文の実行時に文がキャッシュされるということを示すbool値

備考

デフォルトはtrueです。

文キャッシングが無効な場合、AddToStatementCacheは無視されます。文キャッシングは、Statement Cache Size接続文字列属性を0より大きい値に設定すると有効になります。

ただし、文キャッシングが有効な場合、このプロパティは文をキャッシュに選択的に追加する方法を提供します。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class AddToStatementCacheSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle;" +
"statement cache size=10";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand("select * from emp", con);

if (cmd.AddToStatementCache)
Console.WriteLine("Added to the statement cache:" + cmd.CommandText);
else
Console.WriteLine("Not added to the statement cache:" + cmd.CommandText);

// The execution of "select * from emp" will be added to the statement cache
// because statement cache size is greater than 0 and OracleCommand's
// AddToStatementCache is true by default.
OracleDataReader readerEmp = cmd.ExecuteReader();

// Do not add "select * from dept" to the statement cache
cmd.CommandText = "select * from dept";
cmd.AddToStatementCache = false;

if (cmd.AddToStatementCache)
Console.WriteLine("Added to the statement cache:" + cmd.CommandText);
else
Console.WriteLine("Not added to the statement cache:" + cmd.CommandText);

// The execution of "select * from dept" will not be added to the
// statement cache because AddToStatementCache is set to false.
OracleDataReader readerDept = cmd.ExecuteReader();

// Clean up
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 「文キャッシング」

- ConnectionString

ArrayBindCount

このプロパティでは、配列バインド機能を使用するかどうかを指定し、OracleParameter Valueプロパティでバインドされる配列要素数を指定します。

宣言

// C#
public int ArrayBindCount {get; set;}

プロパティ値

OracleParameter Valueプロパティでバインドされる配列要素数を指定する整数

例外

ArgumentException - 指定されたArrayBindCount値が無効

備考

デフォルト = 0

ArrayBindCountが0の場合は、配列バインドは使用されません。それ以外の場合は、配列バインドが使用されOracleParameter Valueプロパティが値の配列として解釈されます。配列バインド機能を使用する場合は、ArrayBindCountの値を指定する必要があります。

DbTypeとOracleDbTypeのどちらも設定されていない場合は、OracleParameter Valueプロパティを設定する前にArrayBindCountを設定して、ValueからのDbTypeおよびOracleDbTypeの判断が正しくできるようにすることをお薦めします。

デフォルトでは配列バインドは使用されません。

XmlCommandTypeプロパティがNone以外の任意の値に対して設定されている場合は、このプロパティは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 「配列バインド」

- 「Value」

BindByName

このプロパティでは、コレクションのバインド・メソッドを指定します。

宣言

// C#
public bool BindByName {get; set;}

プロパティ値

パラメータが名前別にバインドされる場合はtrueを戻し、位置別にバインドされる場合はfalseを戻します。

備考

デフォルト = false

次の条件の場合、BindByNameは無視されます。

- XmlCommandTypeプロパティの値が、Insert、UpdateまたはDeleteの場合

- XmlCommandTypeプロパティの値がQueryであるが、OracleCommandにパラメータが設定されていない場合

XmlCommandTypeプロパティがOracleXmlCommandType.Queryで、任意のパラメータがOracleCommandで設定されている場合は、BindByNameプロパティをtrueに設定する必要があります。それ以外の場合は、次のOracleCommandメソッドではInvalidOperationExceptionをスローします。

- ExecuteNonQuery

- ExecuteXmlReader

- ExecuteStream

- ExecuteToStream

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 「配列バインド」

- 「Value」

CommandText

このプロパティでは、Oracle Databaseに対して実行するSQL文またはストアド・プロシージャ、またはOracle Databaseの変更を格納する際に使用するXMLデータを指定します。

宣言

// ADO.NET 2.0: C#
public override string CommandText {get; set;}

プロパティ値

string

実装

IDbCommand

備考

デフォルトは空の文字列です。

CommandTypeプロパティがStoredProcedureに設定されると、CommandTextプロパティはストアド・プロシージャの名前に設定されます。Executeメソッドが呼び出されると、コマンドはこのストアド・プロシージャを呼び出します。

CommandTextのXmlCommandType値への影響は次のとおりです。

- XmlCommandType = None。
CommandTypeプロパティによってCommandTextの内容が決まります。

- XmlCommandType = Query。
CommandTextはSQL問合せである必要があります。SQL問合せは選択文である必要があります。CommandTypeプロパティは無視されます。

- XmlCommandTypeプロパティは、Insert、UpdateまたはDeleteです。
CommandTextはXML文書である必要があります。CommandTypeプロパティは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

CommandTimeout

このプロパティは、コマンドが例外で実行を終了するまでに実行可能な秒数を指定します。

宣言

// ADO.NET 2.0: C#
public override int CommandTimeout {get; set;}

プロパティ値

int

実装

IDbCommand.CommandTimeout

例外

InvalidArgument - 指定された値が0未満です。

備考

デフォルトは0秒で、時間の制限はありません。

コマンドの実行が終了する前に、指定されたタイムアウト値を超えた場合、コマンドは取消しを試みます。正しく取り消された場合は、ORA-01013: user requested cancel of current operationというメッセージの例外がスローされます。コマンドのタイムアウトの期限切れが発生した場合、他の例外としてORA-00936およびORA-00604がスローされることがあります。コマンドが期限内にエラーなしで実行された場合は、例外がスローされません。

複数のOracleCommandオブジェクトで同じ接続を使用している場合、いずれかのOracleCommandオブジェクトでタイムアウトが発生すると、その接続上の他の実行が終了する可能性があります。OracleCommandのCommandTimeoutプロパティの値が0より大きく設定されている場合、OracleCommandのタイムアウトの際に、該当するコマンド実行のみが取り消されるようにするには、各接続でOracleCommandを1つのみ使用するようにします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- このMicrosoft .NET Framework 1.1機能の詳細は、http://msdn.microsoft.com/libraryを参照

CommandType

このプロパティでは、CommandTextプロパティの解釈の方法を示すコマンド・タイプを指定します。

宣言

// ADO.NET 2.0: C#
public override CommandType CommandType {get; set;}

プロパティ値

CommandType

例外

ArgumentException: CommandType.Text、CommandType.StoredProcedure、CommandType.TableDirectなどのように、この値は無効なCommandTypeです。

備考

デフォルト = CommandType.Text

XmlCommandTypeプロパティの値がNoneではない場合は、CommandTypeプロパティは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

Connection

このプロパティでは、コマンドを実行する接続の識別に使用されるOracleConnectionオブジェクトを指定します。

宣言

// C#
public OracleConnection Connection {get; set;}

プロパティ値

OracleConnectionオブジェクト

実装

IDbCommand

備考

デフォルト = null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

DesignTimeVisible

このプロパティは、OracleCommandオブジェクトが設計者の制御で表示できるかどうか指定します。

宣言

// C#
public override bool DesignTimeVisible { get; set; }

プロパティ値

OracleCommandオブジェクトが制御により表示できるかどうかを示す値。デフォルトはtrueです。

備考

開発者はこのプロパティを使用してOracleCommandオブジェクトが制御により表示できるかどうかを示します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

FetchSize

このプロパティは、OracleDataReaderの内部キャッシュのサイズを指定し、結果セットのデータを格納します。

宣言

// C#
public long FetchSize {get; set;}

プロパティ値

OracleDataReaderの内部キャッシュのサイズ(バイト)を指定するlongです。

例外

ArgumentException - 指定したFetchSize値は無効です。

備考

デフォルト = 131072。

FetchSizeプロパティは、結果セットを戻すコマンドを実行して作成したOracleDataReaderにより、継承されます。OracleDataReaderオブジェクト上のFetchSizeプロパティにより、OracleDataReaderがデータベース・ラウンドトリップごとの内部キャッシュにフェッチするデータ量が決定されます。

XmlCommandTypeプロパティがNone以外の任意の値に対して設定されている場合は、このプロパティは無視されます。

RowSizeおよびFetchSizeプロパティは、他のスカラー・データ型とは異なる方法でUDTおよびXMLTypeデータを処理します。ODP.NETの内部キャッシュにはUDTおよびXMLTypeデータへの参照のみが格納されているため、RowSizeプロパティはUDTおよびXMLTypeデータの実際のサイズではなく、参照に必要なメモリー(非常に少量)のみを算定します。その結果、アプリケーションは1回のデータベース・ラウンドトリップで多数のUDTまたはXMLTypeインスタンスをデータベースからフェッチしてしまう可能性があります。これは、UDTおよびXMLTypeデータの実際のサイズがFetchSizeに対するものではなく、デフォルトのキャッシュ・サイズである131072バイトを満たすには非常に多くのUDTおよびXMLType参照が必要となるためです。したがって、UDTまたはXMLTypeデータをフェッチする際には、フェッチする実際のUDTおよびXMLTypeデータの総量ではなく、対象UDTおよびXMLTypeインスタンスの数を制御するよう、FetchSizeプロパティを適切に構成する必要があります。

注意: LOBおよびLONGデータ型の場合、選択リストの各LOBのキャッシュによって保持されたメタデータおよび参照情報に加えて、InitialLOBFetchSizeおよびInitialLONGFetchSizeプロパティで指定されたサイズのみがRowSizeプロパティによって算定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- OracleDataReaderの「FetchSize」

InitialLOBFetchSize

このプロパティは、OracleDataReaderがLOB列に対して最初にフェッチするデータ量を指定します。

宣言

// C#
public int InitialLOBFetchSize {get; set;}

プロパティ値

最初にフェッチする文字数またはバイト数を指定するint

例外

ArgumentException - 指定したInitialLOBFetchSize値が無効です。

備考

InitialLOBFetchSizeの値は、OracleDataReaderによってただちにフェッチされるLOBデータの初期量を指定します。プロパティ値は、CLOBおよびNCLOBデータの場合は文字数、BLOBデータの場合はバイト数を指定します。

InitialLOBFetchSize値を使用して、LOB列が選択リストにある場合にフェッチするLOB列データ長を決定します。LOB列が選択リストにない場合、InitialLOBFetchSize値は無視されます。

InitialLOBFetchSizeが-1に設定されている場合、LOBデータ全体がプリフェッチされ、フェッチ配列に格納されます。OracleDataReaderのGetString、GetCharsまたはGetBytesをコールすると、データ全体を検索できます。この場合、次のメソッドは無効になります。

- GetOracleBlob

- GetOracleClob

- GetOracleClobForUpdate

- GetOracleBlobForUpdate

この機能は、Oracle Database 9iリリース2(9.2)以上からデータを取得する際に動作します。

デフォルト = 0

Oracle Database 10gリリース 2(10.2)以上:

InitialLOBFetchSizeに対してサポートされている最大値は2GBです。

Oracle Database 10gリリース2 (10.2)以前では、InitialLOBFetchSizeがゼロ以外に設定されていると、GetOracleBlobおよびGetOracleClobメソッドが無効になりました。BLOBおよびCLOBデータは、GetBytesおよびGetCharsメソッドを個別に使用してフェッチされます。Oracle Database 10gリリース2 (10.2)では、この制限は存在しません。GetOracleBlob およびGetOracleClobメソッドはすべてのInitialLOBFetchSize値をゼロ以上で使用できます。

Oracle Database 10gリリース 2(10.2)より前のリリース:

InitialLOBFetchSizeに対してサポートされている最大値は32KBです。

指定されたInitialLOBFetchSizeの値より多くフェッチするには、次のうちの1つが選択リストにある必要があります。

- 主キー

- ROWID

- 一意の列 - (一意制約が定義されたか、または一意索引が作成された1セットの列として定義されたもの。セット内の少なくとも1列には、ここで定義されたNOT NULL制約があります)

このプロパティが0に設定されている場合は、前述のいずれも不要になります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 「LOBデータの取得」

InitialLONGFetchSize

このプロパティでは、OracleDataReaderがLONGおよびLONG RAW列に対して最初にフェッチするデータ量を指定します。

宣言

// C#
public int InitialLONGFetchSize {get; set;}

プロパティ値

量を指定するint

例外

ArgumentException - 指定したInitialLONGFetchSize値が無効です。

備考

InitialLONGFetchSizeに対してサポートされている最大値は32767です。このプロパティがそれより大きい値に設定されている場合は、プロバイダによって32767にリセットされます。

InitialLONGFetchSizeの値は、OracleDataReaderによってただちにフェッチされるLONGまたはLONG RAWのデータの初期量を指定します。プロパティ値は、LONGデータの場合は文字数、LONG RAWの場合はバイト数を指定します。指定されたInitialLONGFetchSizeの量より多くフェッチするには、次のうちの1つが選択リストにある必要があります。

- 主キー

- ROWID

- 一意の列 - (一意制約が定義されたか、または一意索引が作成された1セットの列として定義されたもの。セット内の少なくとも1列には、ここで定義されたNOT NULL制約があります)

LONGまたはLONG RAWデータのいずれかが選択リストにある場合、InitialLONGFetchSize値は、LONGおよびLONG RAW列データ長の決定に使用されます。選択リストにLONGまたはLONG RAW列が含まれていない場合、InitialLONGFetchSize値は無視されます。

InitialLONGFetchSizeが-1に設定されている場合、LONGデータまたはLONG RAWデータ全体がプリフェッチされ、フェッチ配列に格納されます。OracleDataReaderのGetString、GetCharsまたはGetBytesをコールすると、データ全体を検索できます。

デフォルト = 0

このプロパティを0に設定すると、そのプロパティがアプリケーションにより要求されるまでLONGおよびLONG RAWデータの検索全体が延期されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 詳細は、「LONGおよびLONG RAWデータの取得」を参照

通知

このインスタンス・プロパティは、コマンドに通知要求があることを示します。

宣言

// C#
public OracleNotificationRequest  Notification {set; get;}

プロパティ値

コマンドの通知要求

備考

最初の変更通知が登録されると、クライアント・リスナーが開始され、データベース通知を受け取れるようになります。リスナーでは、OracleDependency.Port静的フィールドで定義されているポート番号が使用されます。後続の変更通知登録では、同じクライアント・プロセス内の同じリスナーが使用され、別のリスナーは開始されません。

NotificationがOracleNotificationRequestインスタンスに設定されている場合は、コマンドの実行時に通知登録が作成されます(まだ作成されていない場合)。登録の作成後は、OracleNotificationRequestインスタンスのプロパティは変更できません。通知登録がすでに作成されている場合は、コマンドに関連付けられている結果セットが既存の登録に追加されます。

Notificationがnullに設定されている場合、後続コマンドの実行に通知要求は不要になります。通知要求が不要な場合は、Notificationプロパティをnullに設定するか、NotificationAutoEnlistプロパティをfalseに設定します。

連続問合せ通知の場合、通知要求は複数のコマンドの実行に使用できます。その場合、異なるコマンドに関連する問合せ結果セットを同じ登録内で無効にすることができます。

OracleDependency.OnChangeイベントが実行される際に、ROWID列が明示的に問合せに含まれる(または、AddRowidプロパティがtrueに設定される)場合は、Rowid列にOracleNotificationEventArgs.Detailsプロパティが参照するDataTable内のROWID値が含まれます。OracleDependency.RowidInfoをOracleRowidInfo.IncludeまたはOracleRowidInfo.Excludeにそれぞれ設定して、OracleNotificationEventArgs内のROWID値を含めるか含めないかを明示的に要求することで、この動作をオーバーライドできます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- Database Change Notificationサポート

- 第9章「Database Change Notification」

NotificationAutoEnlist

このインスタンス・プロパティは、コマンドの実行時にデータベース変更通知がデータベースに自動登録されるかどうかを示します。

宣言

// C#
public bool NotificationAutoEnlist {set; get;}

プロパティ値

コマンドの実行時に自動的にデータベース変更通知要求が作成されるかどうかを示すbool値。NotificationAutoEnlistがtrueに設定されており、Notificationプロパティが適切に設定されている場合、データベース変更通知要求は自動登録されます。それ以外の場合は、データベース変更通知登録は行われません。

デフォルト値: true

備考

通知要求は、同じOracleCommandインスタンスを使用する複数のコマンドの実行に使用できます。その場合には、NotificationAutoEnlistプロパティをtrueに設定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- Database Change Notificationサポート

- 第9章「Database Change Notification」

パラメータ

このプロパティは、SQL文またはストアド・プロシージャのパラメータを指定します。

宣言

// C#
public OracleParameterCollection Parameters {get;}

プロパティ値

OracleParameterCollection

実装

IDbCommand

備考

デフォルト値 = 空のコレクション

コレクション内のパラメータ数は、コマンド・テキスト内のパラメータ・プレースホルダの数と同じである必要があります。同じでない場合は、エラーが発生します。

コマンド・テキストにパラメータ・トークン(たとえば、:1,:2など)が含まれていない場合、Parametersプロパティ内の値は無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

RowSize

このプロパティは、OracleDataReader内部キャッシュがデータの1行を保存するために必要とするメモリー量を指定します。

宣言

// C#
public long RowSize {get;}

プロパティ値

longは、OracleDataReaderが実行された問合せのデータ1行を格納するために必要とするメモリー量(バイト)を示します。

備考

デフォルト値 = 0

RowSizeプロパティは、結果セットを戻すコマンドの実行後、ゼロ以外の値に設定されます。このプロパティは、行数に基づいてFetchSizeを設定する場合に、設計時または実行時に動的に使用できます。たとえば、OracleDataReaderを有効にして、データベース・ラウンドトリップごとにN行をフェッチするには、OracleDataReaderのFetchSizeプロパティをRowSize * Nに動的に設定できます。FetchSizeを適切に有効化するには、OracleCommand.ExecuteReader()の後に設定し、かつOracleDataReader.Read()の前に設定する必要があることに注意してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- OracleDataReaderの「FetchSize」

Transaction

このプロパティは、OracleCommandの実行対象となるOracleTransactionオブジェクトを指定します。

宣言

// C#
public OracleTransaction Transaction {get;}

プロパティ値

OracleTransaction

実装

IDbCommand

備考

デフォルト値 = null

Transactionは、OracleCommand接続オブジェクトに関連付けられたトランザクション・オブジェクトへの参照を戻します。そのため、現在接続を実行しているすべてのトランザクションのコンテキストにおいても、コマンドが実行されます。

注意:
このプロパティがIDbCommand参照でアクセスされた場合、その一連のアクセッサ・メソッドは操作できません。

備考(.NETストアド・プロシージャ)

常にnullを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

UpdatedRowSource

このプロパティは、問合せコマンドの結果が、更新される行にどのように適用されるかを指定します。

宣言

// ADO.NET 2.0: C#
public override UpdateRowSource UpdatedRowSource {get; set;}

プロパティ値

UpdateRowSource

実装

IDbCommand

例外

ArgumentException - 指定されたUpdateRowSource値が無効です。

備考

常にUpdateRowSourceを戻します。

値がUpdateRowSource.None以外の場合、SetアクセッサはArgumentExceptionをスローします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

XmlCommandType

このプロパティは、OracleCommandのXML操作のタイプを指定します。

宣言

// C#
public OracleXmlCommandType XmlCommandType {get; set;}

プロパティ値

OracleXmlCommandType

備考

デフォルト値は、None

XmlCommandType値と使用方法

- None - CommandTypeプロパティは、操作のタイプを指定します。

- Query - CommandTextプロパティは、SQL SELECT文に設定する必要があります。問合せが実行され、結果がXML文書として戻されます。CommandText内のSQL SELECT文およびXmlQueryPropertiesプロパティにより指定されたプロパティは、操作の実行に使用されます。CommandTypeプロパティは無視されます。

- Insert、UpdateまたはDelete - CommandTextプロパティは、変更の対象を含むXML文書です。CommandText内のXML文書およびXmlSavePropertiesプロパティにより指定されたプロパティは、操作の実行に使用されます。CommandTypeプロパティは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

XmlQueryProperties

このプロパティは、XML文書をSQL問合せ文の結果セットから作成する場合に使用されるプロパティを指定します。

宣言

// C#
public OracleXmlQueryProperties XmlQueryProperties {get; set;}

プロパティ値

OracleXmlQueryProperties

備考

OracleCommandの新規インスタンスが作成されると、OracleXmlQueryPropertiesのインスタンスはOracleCommand.XmlQueryPropertiesプロパティを通じてOracleCommandインスタンス上で自動的に有効になります。

OracleXmlQueryPropertiesの新規インスタンスは、OracleCommandインスタンスに割り当てられます。OracleXmlQueryPropertiesのインスタンスをOracleCommandインスタンスのXmlQueryPropertiesに割り当てると、OracleCommandに対する指定されたインスタンスOracleXmlQueryPropertiesの新規インスタンスが作成されます。この方法で、各OracleCommandインスタンスは、独自のOracleXmlQueryPropertiesインスタンスを取得します。

デフォルトのコンストラクタを使用して、OracleXmlQueryPropertiesの新規インスタンスを取得します。

OracleXmlQueryPropertiesインスタンスのコピーを取得するには、OracleXmlQueryProperties.Clone()メソッドを使用します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

XmlSaveProperties

このプロパティを使用して、XML文書によるデータベースへの変更の保存を行う場合に使用されるプロパティを指定します。

宣言

// C#
public OracleXmlSaveProperties XmlSaveProperties {get; set;}

プロパティ値

OracleXmlSaveProperties

備考

OracleCommandの新規インスタンスが作成されると、OracleXmlSavePropertiesのインスタンスはOracleCommand.XmlSavePropertiesプロパティを通じてOracleCommandインスタンス上で自動的に有効になります。

OracleXmlSavePropertiesの新規インスタンスは、OracleCommandインスタンスに割り当てられます。OracleXmlSavePropertiesのインスタンスをOracleCommandインスタンスのXmlSavePropertiesに割り当てると、OracleCommandに対して指定されたインスタンスOracleXmlSavePropertiesの新規インスタンスが作成されます。この方法で、各OracleCommandインスタンスは、独自のOracleXmlSavePropertiesインスタンスを取得します。

OracleXmlSavePropertiesの新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。

OracleXmlSaveProperties.Clone()メソッドを使用して、OracleXmlSavePropertiesインスタンスのコピーを取得します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

OracleCommandパブリック・メソッド

OracleCommandパブリック・メソッドを、表5-7にリストします。

表5-7 OracleCommandパブリック・メソッド

パブリック・メソッド

説明

Cancel

特定の接続で現在実行されているコマンドの取消しを試行します

Clone

OracleCommandオブジェクトのコピーを作成します

CreateObjRef

System.MarshalByRefObjectからの継承

CreateParameter

OracleParameterクラスの新規インスタンスを作成します

Dispose

System.ComponentModel.Componentからの継承

Equals

System.Objectからの継承(オーバーロード)

ExecuteNonQuery

XmlCommandTypeおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受ける行数を戻します

ExecuteReader

コマンドを実行します(オーバーロード)

ExecuteScalar

問合せにより戻された結果セットの最初の行の最初の列を戻します

ExecuteStream

XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、新規Streamオブジェクトに結果を戻します

ExecuteToStream

XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として既存のStreamに追加します

ExecuteXmlReader

XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NET XmlTextReaderオブジェクトに戻します。

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Prepare

このメソッドは操作不能です

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

Cancel

このメソッドは、特定の接続で現在実行されているコマンドの取消しを試みます。

宣言

// ADO.NET 2.0: C#
public override void Cancel();

実装

IDbCommand.Cancel

備考

コマンドが正しく取り消された場合は、例外がスローされます。正しく取り消されない場合、例外はスローされません。Cancelの起動時に実行中のコマンドがない場合、Cancelは何も実行しません。Cancelメソッドを起動しても、その時点で実行されているコマンドが常に取り消されることが保証されるわけではありません。実行が終了する前にその実行が完了する場合があります。このような場合、例外はスローされません。

複数のOracleCommandオブジェクトが同じ接続を共有する場合、その接続上の一時点で実行できるコマンドは1つのみです。Cancelメソッドは、起動されると、OracleCommandオブジェクトがコマンドの実行に使用している接続上で現在実行されている文を取り消そうとします。ただし、複数のOracleCommandオブジェクトが同じ接続上で同時に文を実行している場合は、Cancelメソッドを起動すると、発行済のコマンドが取り消される可能性があります。これは、Cancelの起動が有効になる前に取消を指示したコマンドが完了する可能性があるためです。これが発生した場合、別のOracleCommandによって実行されるコマンドが、かわりに取り消される可能性があります。

Cancelメソッドが原因となるこの不確定な状況を回避するには、次のようないくつかの方法があります。

- アプリケーションで各接続にOracleCommandオブジェクトを1つのみ作成できます。これにより、特定の接続を使用するOracleCommandオブジェクトで実行されるコマンドのみが、Cancelの起動によって確実に取り消されます。

- アプリケーション内でのコマンドの実行は、同じ接続を使用するOracleCommandオブジェクト間で同期化することができます。

Cancelがアプリケーションで使用されない場合、前述の内容は適用されません。

現在の実行がいつ終了するかは不明確であるため、非原子的なSQLまたはPL/SQLの実行はトランザクション内で開始することをお薦めします。コマンドの実行が例外ORA-01013: user requested cancel of current operationで正しく終了した場合、トランザクションをロールバックしてデータの整合性を保つことができます。コマンドの取消が発生した場合、他の例外としてORA-00936およびORA-00604がスローされることがあります。非原子的な実行の例としては、1つずつ実行されるDMLコマンドのコレクションや、PL/SQLのストアド・プロシージャまたは関数の一部である複数のDMLコマンドなどがあります。

例

// C#

// This example shows how command executions can be cancelled in a
// deterministic way even if multiple commands are executed on a single
// connection.  This is accomplished by synchronizing threads through events.
// Since the Cancel method terminates the currently running operation on the
// connection, threads must be serialized if multiple threads are using the
// same connection to execute server round-trip incurring operations.
// Furthermore, the example shows how the execution and cancel threads should
// be synchronized so that nth iteration of the command execution does not
// inappropriately cancel the (n+1)th command executed by the same thread.

using System;
using System.Data;
using Oracle.DataAccess.Client;
using System.Threading;

class CancelSample
{
private OracleCommand cmd;
Thread t1, t2;
// threads signal following events when assigned operations are completed

private AutoResetEvent ExecuteEvent = new AutoResetEvent(false);
private AutoResetEvent CancelEvent = new AutoResetEvent(false);
private AutoResetEvent FinishedEvent = new AutoResetEvent(false);
AutoResetEvent[] ExecuteAndCancel = new AutoResetEvent[2];

// Default constructor
CancelSample()
{
cmd = new OracleCommand("select * from all_objects",
new OracleConnection("user id=scott;password=tiger;data source=oracle"));
ExecuteAndCancel[0] = ExecuteEvent;
ExecuteAndCancel[1] = CancelEvent;
}

// Constructor that takes a particular command and connection
CancelSample(string command, OracleConnection con)
{
cmd = new OracleCommand(command, con);
ExecuteAndCancel[0] = ExecuteEvent;
ExecuteAndCancel[1] = CancelEvent;
}

// Execution of the command
public void Execute()
{
OracleDataReader reader = null;
try
{
Console.WriteLine("Execute.");
reader = cmd.ExecuteReader();
Console.WriteLine("Execute Done.");
reader.Close();
}
catch(Exception e)
{
Console.WriteLine("The command has been cancelled.", e.Message);
}
Console.WriteLine("ExecuteEvent.Set()");
ExecuteEvent.Set();
}

// Canceling of the command
public void Cancel()
{
try
{
// cancel query if it takes longer than 100 ms to finish execution
System.Threading.Thread.Sleep(100);
Console.WriteLine("Cancel.");
cmd.Cancel();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine("Cancel done.");
Console.WriteLine("CancelEvent.Set()");
CancelEvent.Set();
}

// Execution of the command with a potential of cancelling
public void ExecuteWithinLimitedTime()
{
for (int i = 0; i < 5; i++)
{
Monitor.Enter(typeof(CancelSample));
try
{
Console.WriteLine("Executing " + this.cmd.CommandText);
ExecuteEvent.Reset();
CancelEvent.Reset();
t1 = new Thread(new ThreadStart(this.Execute));
t2 = new Thread(new ThreadStart(this.Cancel));
t1.Start();
t2.Start();
}
finally
{
WaitHandle.WaitAll(ExecuteAndCancel);
Monitor.Exit(typeof(CancelSample));
}
}
FinishedEvent.Set();
}
[MTAThread]
static void Main()
{
try
{
AutoResetEvent[] ExecutionCompleteEvents = new AutoResetEvent[3];

// Create the connection that is to be used by three commands
OracleConnection con = new OracleConnection("user id=scott;" +
"password=tiger;data source=oracle");
con.Open();

// Create instances of CancelSample class
CancelSample test1 = new CancelSample("select * from all_objects", con);
CancelSample test2 = new CancelSample("select * from all_objects, emp",
con);
CancelSample test3 = new CancelSample("select * from all_objects, dept",
con);

// Create threads for each CancelSample object instance
Thread t1 = new Thread(new ThreadStart(test1.ExecuteWithinLimitedTime));
Thread t2 = new Thread(new ThreadStart(test2.ExecuteWithinLimitedTime));
Thread t3 = new Thread(new ThreadStart(test3.ExecuteWithinLimitedTime));

// Obtain a handle to an event from each object
ExecutionCompleteEvents[0] = test1.FinishedEvent;
ExecutionCompleteEvents[1] = test2.FinishedEvent;
ExecutionCompleteEvents[2] = test3.FinishedEvent;

// Start all threads to execute three commands using a single connection
t1.Start();
t2.Start();
t3.Start();

// Wait for all three commands to finish executing/canceling before
//closing the connection
WaitHandle.WaitAll(ExecutionCompleteEvents);
con.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- このMicrosoft .NET Framework 1.1機能の詳細は、http://msdn.microsoft.com/libraryを参照

Clone

このメソッドでは、OracleCommandオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleCommandオブジェクト

実装

ICloneable

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

CreateParameter

このメソッドでは、OracleParameterクラスの新規インスタンスを作成します。

宣言

// C#
public OracleParameter CreateParameter();

戻り値

デフォルト値の新規OracleParameter

実装

IDbCommand

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

ExecuteNonQuery

このメソッドでは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受ける行数を戻します。

宣言

// ADO.NET 2.0: C#
public override int ExecuteNonQuery();

戻り値

影響を受ける行数

実装

IDbCommand

例外

InvalidOperationException - コマンドを実行できない場合

備考

ExecuteNonQueryでは、次の場合に影響を受ける行数を戻します。

- コマンドが、UPDATE、INSERTまたはDELETEで、XmlCommandTypeプロパティがOracleXmlCommandType.Noneに設定されている場合。

- XmlCommandTypeプロパティが、OracleXmlCommandType.Insert、OracleXmlCommandType.Update、OracleXmlCommandType.Deleteに設定されている場合。

その他のすべての文のタイプに対する戻り値は-1です。

ExecuteNonQueryは次のいずれかに対して使用されます。

- カタログ操作(データベース構造の問合せまたは表などのデータベース・オブジェクトの作成など)。

- UPDATE、INSERTまたはDELETE文の実行による、DataSetを使用しないデータベース内のデータ変更。

- XML文書を使用したデータベース内のデータ変更。

ExecuteNonQueryでは、行を戻しませんが、任意の出力パラメータを移入したりまたはパラメータにマップされる値のデータを戻します。

XmlCommandTypeプロパティがOracleXmlCommandType.Queryに設定されている場合、ExecuteNonQueryはCommandTextプロパティ内の選択文を実行し、成功した場合-1を戻します。生成されるXML文書は廃棄されます。これは、結果としてXML文書を戻さないで操作が正常に完了するかどうかを判別する場合に便利です。

XmlCommandTypeプロパティが、OracleXmlCommandType.Insert、OracleXmlCommandType.Updateまたは、OracleXmlCommandType.Deleteに設定されている場合、CommandTextプロパティの値はXML文書です。ExecuteNonQueryでは、そのXML文書の変更をXmlSavePropertiesプロパティで指定されている表またはビューに保存します。戻り値はXML文書で処理された行数です。また、XML文書の各行もデータベース内の複数行に影響を与える可能性がありますが、この場合も戻り値はXML文書の行数です。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class ExecuteNonQuerySample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand(
"select sal from emp where empno=7934", con);

object sal = cmd.ExecuteScalar();
Console.WriteLine("Employee sal before update: " + sal);

cmd.CommandText = "update emp set sal = sal + .01 where empno=7934";

// Auto-commit changes
int rowsUpdated = cmd.ExecuteNonQuery();

if (rowsUpdated > 0)
{
cmd.CommandText = "select sal from emp where empno=7934";
sal = cmd.ExecuteScalar();
Console.WriteLine("Employee sal after update: " + sal);
}

// Clean up
cmd.Dispose();
con.Dispose();
}
}

要件

XMLをサポートするために、このメソッドではデータベースにOracle9i XML Developer's Kits(Oracle XDK)以降をインストールする必要があります。Oracle XDKはOracle Technology Network(OTN)からダウンロードできます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- http://otn.oracle.com/

ExecuteReader

オーバーロード・リスト:

ExecuteReaderでは、CommandTextで指定されたコマンドを実行します。

- ExecuteReader()
このメソッドでは、CommandTextで指定されたコマンドを実行し、OracleDataReaderオブジェクトを戻します。

- ExecuteReader(CommandBehavior)
このメソッドでは、CommandTextで指定されたコマンドを実行し、指定されたCommandBehavior値を使用してOracleDataReaderオブジェクトを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

ExecuteReader()

このメソッドでは、CommandTextで指定されたコマンドを実行し、OracleDataReaderオブジェクトを戻します。

宣言

// C#
public OracleDataReader ExecuteReader();

戻り値

OracleDataReader

実装

IDbCommand

例外

InvalidOperationException - コマンドを実行できない場合

備考

CommandTypeプロパティがCommandType.StoredProcedureに設定されると、CommandTextプロパティはストアド・プロシージャの名前に設定される必要があります。

ExecuteReaderを呼び出すと、この指定したコマンドによってこのストアド・プロシージャが実行されます。ストアド・プロシージャのパラメータがREF CURSORオブジェクトで構成されている場合は、ExecuteReader()またはExecuteNonQuery()を呼び出すかどうかによって動作は異なります。ExecuteReader()を起動すると、REF CURSORオブジェクトは、戻されるOracleDataReaderを通じてアクセスできます。1つの実行から複数のREF CURSORが戻される場合、後続のREF CURSORオブジェクトは、NextResultメソッドによってOracleDataReaderで順番にアクセスできます。ExecuteNonQueryメソッドを起動すると、出力パラメータ値をOracleRefCursor型にキャストでき、次にOracleRefCursorオブジェクトを使用して、DataSetを移入するかまたはOracleDataReaderオブジェクトを作成できます。この方法で、出力パラメータとして戻されたすべてのREF CURSORオブジェクトにランダムにアクセスすることができます。

FetchSizeに対しては値100が使用されます。0を指定すると、行はフェッチされません。詳細は、「LONGおよびLONG RAWデータの取得」を参照してください。

XmlCommandTypeプロパティの値が、OracleXmlCommandType.Insert、OracleXmlCommandType.Update、OracleXmlCommandType.DeleteまたはOracleXmlCommandType.Queryに設定されている場合、ExecuteReaderメソッドはInvalidOperationExceptionをスローします。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class ExecuteReaderSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand("select ename from emp", con);

OracleDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
Console.WriteLine("Employee Name : " + reader.GetString(0));
}

// Clean up
reader.Dispose();
cmd.Dispose();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 「OracleRefCursorクラス」

ExecuteReader(CommandBehavior)

このメソッドでは、CommandTextで指定されたコマンドを実行し、指定された動作を使用してOracleDataReaderオブジェクトを戻します。

宣言

// C#
public OracleDataReader ExecuteReader(CommandBehavior behavior);

パラメータ

- behavior
必要な動作

戻り値

OracleDataReader

実装

IDbCommand

例外

InvalidOperationException - コマンドを実行できない場合

備考

結果の説明と問合せコマンドのデータベースに対する影響は、コマンド動作を規定する、指定されたbehaviorによって示されます。

有効なCommandBehavior値および各CommandBehaviorの列挙タイプのコマンドの動作は、.NET Frameworkのドキュメントを参照してください。

CommandTypeプロパティがCommandType.StoredProcedureに設定されると、CommandTextプロパティはストアド・プロシージャの名前に設定される必要があります。ExecuteReader()を呼び出すと、このコマンドによってこのストアド・プロシージャが実行されます。

ストアド・プロシージャが格納されたREF CURSORを戻す場合、詳細はOracleRefCursorの項を参照してください。「OracleRefCursorクラス」を参照してください。

FetchSizeに対しては値100が使用されます。0を指定すると、行はフェッチされません。詳細は、「LONGおよびLONG RAWデータの取得」を参照してください。

XmlCommandTypeプロパティの値が、OracleXmlCommandType.Insert、OracleXmlCommandType.Update、OracleXmlCommandType.DeleteまたはOracleXmlCommandType.Queryに設定されている場合、ExecuteReaderメソッドはInvalidOperationExceptionをスローします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 「OracleRefCursorクラス」

ExecuteScalar

このメソッドでは、接続を使用して問合せを実行し、問合せによって戻された結果セット内の最初の行の最初の列を戻します。

宣言

// ADO.NET 2.0: C#
public override object ExecuteScalar();

戻り値

最初の行、最初の列の値を表すオブジェクト

実装

IDbCommand

例外

InvalidOperationException - コマンドを実行できない場合

備考

追加列または行は無視されます。ExecuteScalarでは、データベースから単一値(たとえば集合値)を取り出します。ExecuteReader()メソッドを使用する場合より少ないコードで済み、必要な操作を実行してOracleDataReaderによって戻されたデータで単一値を生成します。

問合せで行を戻さない場合は、nullを戻します。

XmlCommandTypeプロパティの値が次のいずれかに設定されている場合、ExecuteScalarメソッドがInvalidOperationExceptionをスローします。OracleXmlCommandType値: Insert、Update、Delete、Query。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class ExecuteScalarSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand("select count(*) from emp", con);

object count = cmd.ExecuteScalar();

Console.WriteLine("There are {0} rows in table emp", count);

// Clean up
cmd.Dispose();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

ExecuteStream

このメソッドでは、XmlCommandTypeプロパティとCommandTextプロパティを使用してコマンドを実行し、結果を新規StreamオブジェクトにXML文書として戻します。

宣言

// C#
public Stream ExecuteStream();

戻り値

Stream

備考

ExecuteStreamの動作はXmlCommandTypeプロパティ値によって異なります。

- XmlCommandType = OracleXmlCommandType.None
ExecuteStreamは、InvalidOperationExceptionをスローします。

- XmlCommandType = OracleXmlCommandType.Query
ExecuteStreamでは、CommandTextプロパティの選択文を実行し、成功した場合は、生成されたXML文書を含むOracleClobオブジェクトを戻します。OracleClobにはUnicode文字が含まれます。

SQL問合せによって行が戻されない場合、ExcecuteStreamでは、空のXML文書を含むOracleClobオブジェクトを戻します。

- XmlCommandType = OracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Delete
CommandTextプロパティの値はXML文書です。ExecuteStreamでは、そのXML文書内のデータをXmlSavePropertiesプロパティで指定されている表またはビューに保存し、空のOracleClobが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- 『Oracle XML DB開発者ガイド』

- http://otn.oracle.com/

ExecuteToStream

このメソッドでは、XmlCommandTypeプロパティとCommandTextプロパティを使用してコマンドを実行し、結果をアプリケーションによって指定された既存のStreamにXML文書として追加します。

宣言

// C#
public void ExecuteToStream(Stream outputStream);

パラメータ

- outputStream
Stream

備考

ExecuteToStreamの動作はXmlCommandTypeプロパティ値によって異なります。

- XmlCommandType = OracleXmlCommandType.None
ExecuteToStreamでは、InvalidOperationExceptionをスローします。

- XmlCommandType = OracleXmlCommandType.Query
ExecuteToStreamでは、CommandTextプロパティの選択文を実行し、成功した場合は指定したStreamに生成されたXML文書を追加します。

SQL問合せによって行が戻されない場合は、指定されたStreamには何も追加されません。追加されたデータのキャラクタ・セットはUnicodeです。

- XmlCommandType = OracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Delete
CommandTextプロパティの値はXML文書です。ExecuteToStreamでは、そのXML文書の変更をXmlSavePropertiesプロパティで指定されている表またはビューに保存します。指定されたStreamには何も追加されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- Oracle XML DB開発者ガイド

- http://otn.oracle.com/

ExecuteXmlReader

このメソッドは、XmlCommandTypeおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NET XmlTextReaderオブジェクトに戻します。

宣言

// C#
public XmlReader ExecuteXmlReader();

戻り値

XmlReader

備考

ExecuteXmlReaderの動作は、XmlCommandTypeプロパティ値により次のように異なります。

- XmlCommandType = OracleXmlCommandType.None
ExecuteStreamは、InvalidOperationExceptionをスローします。

- XmlCommandType = OracleXmlCommandType.Query
ExecuteXmlReaderは、CommandTextプロパティ内のSELECT文を実行します。正常に実行されると、生成されたXML文書を含む.NET XmlTextReaderオブジェクトが戻されます。

XML文書が空の場合(SQL問合せで戻される行がない場合に発生する可能性があります)、空の.NET XmlTextReaderオブジェクトが戻されます。

- XmlCommandType = OracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Delete
CommandTextプロパティの値はXML文書であり、ExecuteXmlReaderは、そのXML文書内の変更をXmlSavePropertiesプロパティで指定された表またはビューに保存します。空の.NET XmlTextReaderオブジェクトが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandクラス

- OracleCommandメンバー

- Oracle XML DB開発者ガイド

- http://otn.oracle.com/

OracleCommandBuilderクラス

OracleCommandBuilderオブジェクトでは、データベースが更新される場合に、OracleDataAdapterに対して自動SQL生成が行われます。

クラスの継承

System.Object

System.MarshalByRefObject

System.ComponentModel.Component

System.Data.Common.DbCommandBuilder (ADO.NET 2.0専用)

OracleDataAccess.Client.OracleCommandBuilder

宣言

// ADO.NET 2.0: C#
public sealed class OracleCommandBuilder : DbCommandBuilder

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleCommandBuilderでは、OracleDataAdapterのSelectCommandプロパティが設定されている場合、単一表の更新に対してSQL文が自動的に生成されます。DataSetに複数の表が含まれている場合、例外がスローされます。DataAdapterプロパティが設定されている場合は、OracleCommandBuilderがRowUpdatingイベントのリスナーとして自己登録します。一度に関連付けることができるのは、1つのOracleDataAdapterオブジェクトと1つのOracleCommandBuilderオブジェクトのみです。

INSERT、UPDATEまたはDELETE文を生成する場合、OracleCommandBuilderでは、必要なメタデータ・セットを取得するため、DataSet内のExtendedPropertiesが使用されます。メタデータの取得後にSelectCommandが変更された場合(最初の更新後など)、メタデータを更新するためRefreshSchemaメソッドがコールされる必要があります。

OracleCommandBuilderにより、最初にDataSetのExtendedPropertiesのメタデータが検索されます。メタデータがない場合、OracleCommandBuilderではOracleDataAdapterのSelectCommandプロパティによってメタデータが取得されます。

例

次の例では、EMP表の更新を実行しています。ここでは、OracleDataAdapter.Update()がコールされた場合のOracleDataAdapterオブジェクトに対するUpdateCommandを作成するために、OracleCommandBuilderオブジェクトが使用されています。

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleCommandBuilderSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
string cmdstr = "SELECT empno, sal from emp";

// Create the adapter with the selectCommand txt and the
// connection string
OracleDataAdapter adapter = new OracleDataAdapter(cmdstr, constr);

// Create the builder for the adapter to automatically generate
// the Command when needed
OracleCommandBuilder builder = new OracleCommandBuilder(adapter);

// Create and fill the DataSet using the EMP
DataSet dataset = new DataSet();
adapter.Fill(dataset, "EMP");

// Get the EMP table from the dataset
DataTable table = dataset.Tables["EMP"];

// Indicate DataColumn EMPNO is unique
// This is required by the OracleCommandBuilder to update the EMP table
table.Columns["EMPNO"].Unique = true;

// Get the first row from the EMP table
DataRow row = table.Rows[0];

// Update the salary
double sal = double.Parse(row["SAL"].ToString());
row["SAL"] = sal + .01;

// Now update the EMP using the adapter
// The OracleCommandBuilder will create the UpdateCommand for the
// adapter to update the EMP table
adapter.Update(dataset, "EMP");

Console.WriteLine("Row updated successfully");
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderメンバー

- OracleCommandBuilderコンストラクタ

- OracleCommandBuilder静的メソッド

- OracleCommandBuilderプロパティ

- OracleCommandBuilderパブリック・メソッド

- OracleCommandBuilderイベント

OracleCommandBuilderメンバー

OracleCommandBuilderメンバーは次の表にリスト表示されています。

OracleCommandBuilderコンストラクタ

OracleCommandBuilderコンストラクタを、表5-8にリストします。

表5-8 OracleCommandBuilderコンストラクタ

コンストラクタ

説明

OracleCommandBuilderコンストラクタ

OracleCommandBuilderクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleCommandBuilder静的メソッド

OracleCommandBuilder静的メソッドを、表5-9にリストします。

表5-9 OracleCommandBuilder静的メソッド

メソッド

説明

DeriveParameters

指定したOracleCommandで表されるストアド・プロシージャまたは関数のパラメータに対する問合せを実行し、その戻り値をコマンドのOracleParameterCollectionに移入します

Equals

System.Objectからの継承(オーバーロード)

OracleCommandBuilderプロパティ

OracleCommandBuilderプロパティを、表5-10にリストします。

表5-10 OracleCommandBuilderプロパティ

プロパティ

説明

Container

System.ComponentModel.Componentからの継承

CaseSensitive

SQL文を生成するときにOracleオブジェクト名の前後に二重引用符を使用するかどうかを示します

CatalogLocation

サポート対象外

CatalogSeparator

サポート対象外

ConflictOption

サポート対象外

DataAdapter

SQL文が生成されるOracleDataAdapterを示します

QuotePrefix

開始文字、またはスペースや予約語などの特殊文字がその名前に含まれるデータベース・オブジェクトを指定するために使用する文字を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

QuoteSuffix

終了文字、またはスペースや予約語などの特殊文字がその名前に含まれるデータベース・オブジェクトを指定するために使用する文字を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

SchemaSeparator

スキーマ識別子と他の識別子の間のセパレータ用文字を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

Site

System.ComponentModel.Componentからの継承

OracleCommandBuilderパブリック・メソッド

OracleCommandBuilderパブリック・メソッドを、表5-11にリストします。

表5-11 OracleCommandBuilderパブリック・メソッド

パブリック・メソッド

説明

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

System.ComponentModel.Componentからの継承

Equals

System.Objectからの継承(オーバーロード)

GetDeleteCommand

データベース上で削除を実行するSQL文(CommandText)を有する自動生成されたOracleCommandオブジェクトを取得します

GetHashCode

System.Objectからの継承

GetInsertCommand

データベース上で挿入を実行するSQL文(CommandText)を有する自動生成されたOracleCommandオブジェクトを取得します

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

GetUpdateCommand

データベース上で更新を実行するSQL文(CommandText)を有する自動生成されたOracleCommandオブジェクトを取得します

InitializeLifetimeService

System.MarshalByRefObjectからの継承

QuoteIdentifier

適切にエスケープした識別子のすべての埋込み引用とともに、指定された非引用識別子の正しい引用形式を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

RefreshSchema

INSERT、UPDATEまたはDELETE文の生成に使用されるデータベース・スキーマ情報をリフレッシュします。

UnquoteIdentifier

引用の目的で識別子に埋め込まれたエスケープ表記をいずれも削除し、指定された引用識別子の正しい非引用形式を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ToString

System.Objectからの継承

OracleCommandBuilderイベント

OracleCommandBuilderイベントを、表5-12にリストします。

表5-12 OracleCommandBuilderイベント

イベント名

説明

Disposed

System.ComponentModel.Componentからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

OracleCommandBuilderコンストラクタ

OracleCommandBuilderコンストラクタでは、OracleCommandBuilderクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleCommandBuilder()
このコンストラクタでは、OracleCommandBuilderクラスのインスタンスを作成します。

- OracleCommandBuilder(OracleDataAdapter)
このコンストラクタでは、OracleCommandBuilderクラスのインスタンスを作成し、DataAdapterプロパティを指定されたOracleDataAdapterオブジェクトに設定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

OracleCommandBuilder()

このコンストラクタでは、OracleCommandBuilderクラスのインスタンスを作成します。

宣言

// C#
public OracleCommandBuilder();

備考

デフォルトのコンストラクタ

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

OracleCommandBuilder(OracleDataAdapter)

このコンストラクタでは、OracleCommandBuilderクラスのインスタンスを作成し、DataAdapterプロパティを指定されたOracleDataAdapterオブジェクトに設定します。

宣言

// C#
public OracleCommandBuilder(OracleDataAdapter da);

パラメータ

- da
指定されたOracleDataAdapterオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

OracleCommandBuilder静的メソッド

OracleCommandBuilder静的メソッドを、表5-13にリストします。

表5-13 OracleCommandBuilder静的メソッド

メソッド

説明

DeriveParameters

指定したOracleCommandで表されるストアド・プロシージャまたは関数のパラメータに対する問合せを実行し、その戻り値をコマンドのOracleParameterCollectionに移入します

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

DeriveParameters

このメソッドは、指定したOracleCommandで表されるストアド・プロシージャまたは関数のパラメータに対する問合せを実行し、その戻り値をコマンドのOracleParameterCollectionに移入します。

宣言

// C#
public static void DeriveParameters(OracleCommand command);

パラメータ

- command
パラメータが導出されるストアド・プロシージャまたは関数を表すコマンド

例外

InvalidOperationException - CommandTextがストアド・プロシージャまたは関数の有効な名前でないか、CommandTypeがCommandType.StoredProcedureでないか、Connection.StateがConnectionState.Openではありません。

備考

DeriveParametersを使用して、ストアド・ファンクションを表すOracleCommandオブジェクトのParameterコレクションを移入すると、このファンクションの戻り値が最初のパラメータ(OracleParameterCollectionの位置0)としてバインドされます。

DeriveParametersを使用できるのはストアド・プロシージャまたは関数に対してのみであり、無名PL/SQLブロックに対しては使用できません。

DeriveParametersを起動すると、コマンドのパラメータ・コレクション内の既存のパラメータがすべて削除されます。

DeriveParametersによりデータベース・ラウンドトリップが発生するため、このメソッドは設計時にのみ使用してください。本番環境での不必要なデータベース・ラウンドトリップを避けるには、設計時にDeriveParametersメソッドにより戻された明示的なパラメータ設定でDeriveParametersメソッド自体を置き換えるようにしてください。

DeriveParametersでストアド・プロシージャ名または関数名の大/小文字の区別が保持されるのは、名前が二重引用符で囲まれている場合のみです。たとえば、データベース内のストアド・プロシージャの名前が大/小文字の混在したGetEmployeesである場合、OracleCommandオブジェクトのCommandTextプロパティは、次の例のように適切に設定する必要があります。

cmd.CommandText = "\"GetEmployees\"";

パッケージ内のストアド・プロシージャおよび関数は、次の書式で指定する必要があります。

<package name>.<procedure or function name>

たとえば、EmpProcedures(大/小文字が混在)というパッケージ内のGetEmployees(大/小文字が混在)というストアド・プロシージャのパラメータを取得する場合、OracleCommandに指定する名前は次のとおりです。

"\"EmpProcedures\".\"GetEmployees\""

DeriveParameterをオブジェクト型のメソッドに使用することはできません。

導出されるパラメータには、ストアド・プロシージャを正しく実行するのに必要なすべてのメタデータ情報が含まれています。必要な場合は、アプリケーションで実行の前にパラメータの値を指定する必要があります。またアプリケーションでは、実行前にパラメータのメタデータ情報が変更される場合があります。たとえば、ストアド・プロシージャの実行を最適化するために、OracleParameterのSizeプロパティがPL/SQLのCHARおよびSTRING型に変更されます。

導出されるパラメータの出力値は、デフォルトでは.NETタイプとして戻されます。出力パラメータをプロバイダ・タイプとして取得するには、パラメータのOracleDbTypeプロパティをアプリケーションで明示的に設定して、このデフォルト動作をオーバーライドする必要があります。これを簡単に行う1つの方法として、プロバイダ・タイプとして戻す必要のある出力パラメータのすべてで、OracleDbTypeをそれ自体に設定するという方法があります。

指定したOracleCommandのBindByNameプロパティはそのまま残されますが、アプリケーションでその値を変更することができます。

指定したストアド・プロシージャまたは関数がオーバーロードの場合は、パラメータ・コレクションへの移入に最初のオーバーロードが使用されます。

// Database Setup
/*
connect scott/tiger@oracle
CREATE OR REPLACE PROCEDURE MyOracleStoredProc (arg_in IN VARCHAR2,
arg_out OUT VARCHAR2) IS
BEGIN
arg_out := arg_in;
END;
/
*/

// C#
using System;
using System.Data;
using Oracle.DataAccess.Client;

class DeriveParametersSample
{
static void Main()
{
// Create the PL/SQL Stored Procedure MyOracleStoredProc as indicated in
// the preceding Database Setup

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand
OracleCommand cmd = new OracleCommand("MyOracleStoredProc", con);
cmd.CommandType = CommandType.StoredProcedure;

// Derive Parameters
OracleCommandBuilder.DeriveParameters(cmd);
Console.WriteLine("Parameters Derived");

// Prints "Number of Parameters for MyOracleStoredProc = 2"
Console.WriteLine("Number of Parameters for MyOracleStoredProc = {0}",
cmd.Parameters.Count);

// The PL/SQL stored procedure MyOracleStoredProc has one IN and
// one OUT parameter.  Set the Value for the IN parameter.
cmd.Parameters[0].Value = "MyText";

// The application may modify the other OracleParameter properties also
// This sample uses the default Size for the IN parameter and modifies
// the Size for the OUT parameter

// The default size for OUT VARCHAR2 is 4000
// Prints "cmd.Parameters[1].Size  = 4000"
Console.WriteLine("cmd.Parameters[1].Size  = " + cmd.Parameters[1].Size);

// Set the Size for the OUT parameter
cmd.Parameters[1].Size = 6;

// Execute the command
cmd.ExecuteNonQuery();

// Prints "cmd.Parameters[1].Value = MyText"
Console.WriteLine("cmd.Parameters[1].Value = " + cmd.Parameters[1].Value);

con.Close();
con.Dispose();
}
}

例

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

- OracleCommandクラス

- OracleParameterクラス

- OracleParameterCollectionクラス

- このMicrosoft .NET Framework 1.1機能の詳細は、http://msdn.microsoft.com/libraryを参照

OracleCommandBuilderプロパティ

OracleCommandBuilderプロパティを、表5-14にリストします。

表5-14 OracleCommandBuilderプロパティ

プロパティ

説明

Container

System.ComponentModel.Componentからの継承

CaseSensitive

SQL文を生成するときにOracleオブジェクト名の前後に二重引用符を使用するかどうかを示します

CatalogLocation

サポート対象外

CatalogSeparator

サポート対象外

ConflictOption

サポート対象外

DataAdapter

SQL文が生成されるOracleDataAdapterを示します

QuotePrefix

開始文字、またはスペースや予約語などの特殊文字がその名前に含まれるデータベース・オブジェクトを指定するために使用する文字を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

QuoteSuffix

終了文字、またはスペースや予約語などの特殊文字がその名前に含まれるデータベース・オブジェクトを指定するために使用する文字を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

SchemaSeparator

スキーマ識別子と他の識別子の間のセパレータ用文字を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

Site

System.ComponentModel.Componentからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

CaseSensitive

このプロパティでは、SQL文を生成する場合にOracleオブジェクト名(表または列など)の前後に二重引用符を使用するかどうかを指定します。

宣言

// C#
bool CaseSensitive {get; set;}

プロパティ値

二重引用符を使用するかどうかを示すbool

備考

デフォルト = false

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

CatalogLocation

このプロパティは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override CatalogLocation CatalogLocation {get; set;}

例外

NotSupportedException - このプロパティは、サポートされていません。

備考

このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

CatalogSeparator

このプロパティは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override string CatalogSeparator {get; set;}

例外

NotSupportedException - このプロパティは、サポートされていません。

備考

このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

ConflictOption

このプロパティは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override string ConflictOption {get; set;}

例外

NotSupportedException - このプロパティは、サポートされていません。

備考

このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

DataAdapter

このプロパティでは、SQL文が生成されるOracleDataAdapterオブジェクトを示します。

宣言

// C#
OracleDataAdapter DataAdapter{get; set;}

プロパティ値

OracleDataAdapterオブジェクト。

備考

デフォルト = null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

QuotePrefix

このプロパティでは、名前にスペースまたは予約語などの特殊文字が含まれるデータベース・オブジェクトの指定に使用される開始文字または文字を指定します。

宣言

// ADO.NET 2.0: C#
public override string QuotePrefix {get; set;}

プロパティ値

開始文字または使用する文字。デフォルト値は"\""です。

備考

このプロパティは、OracleConnectionまたはOracleCommandオブジェクトのいずれからも独立しています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

QuoteSuffix

このプロパティでは、終了文字、またはスペースや予約語などの特殊文字がその名前に含まれているデータベース・オブジェクトを指定する文字を指定します。

宣言

// ADO.NET 2.0: C#
public override string QuoteSuffix {get; set;}

プロパティ値

終了文字または使用する文字。デフォルト値は"\""です。

備考

このプロパティは、OracleConnectionまたはOracleCommandオブジェクトのいずれからも独立しています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

SchemaSeparator

このプロパティでは、スキーマ識別子と他の識別子の間のセパレータ用文字を指定します。

宣言

// ADO.NET 2.0: C#
public override string SchemaSeparator {get; set; }

プロパティ値

スキーマ・セパレータとして使用される文字。

例外

NotSupportedException - 入力値はピリオド(.)ではありません。

備考

デフォルトのスキーマ・セパレータはピリオド(.)です。このプロパティで受容可能な値はピリオド(.)のみです。

このプロパティは、OracleConnectionまたはOracleCommandオブジェクトのいずれからも独立しています。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class SchemaSeperatorSample
{
static void Main(string[] args)
{
try
{
OracleCommandBuilder cmdBuilder = new OracleCommandBuilder();

//schemaSeparator is dot(.)
Console.WriteLine("schemaSeparator is {0}",
cmdBuilder.SchemaSeparator);

//set the schemaseparator, only '.' is allowed.
cmdBuilder.SchemaSeparator = ".";

// the only acceptable value for this property is a dot (.)
// Hence the following line will throw NotSupportedException
cmdBuilder.SchemaSeparator = "!";
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

OracleCommandBuilderパブリック・メソッド

OracleCommandBuilderパブリック・メソッドを、表5-15にリストします。

表5-15 OracleCommandBuilderパブリック・メソッド

パブリック・メソッド

説明

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

System.ComponentModel.Componentからの継承

Equals

System.Objectからの継承(オーバーロード)

GetDeleteCommand

データベース上で削除を実行するSQL文(CommandText)を有する自動生成されたOracleCommandオブジェクトを取得します

GetHashCode

System.Objectからの継承

GetInsertCommand

データベース上で挿入を実行するSQL文(CommandText)を有する自動生成されたOracleCommandオブジェクトを取得します

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

GetUpdateCommand

データベース上で更新を実行するSQL文(CommandText)を有する自動生成されたOracleCommandオブジェクトを取得します

InitializeLifetimeService

System.MarshalByRefObjectからの継承

QuoteIdentifier

適切にエスケープした識別子のすべての埋込み引用とともに、指定された非引用識別子の正しい引用形式を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

RefreshSchema

INSERT、UPDATEまたはDELETE文の生成に使用されるデータベース・スキーマ情報をリフレッシュします。

UnquoteIdentifier

引用の目的で識別子に埋め込まれたエスケープ表記をいずれも削除し、指定された引用識別子の正しい非引用形式を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

GetDeleteCommand

このメソッドでは、OracleDataAdapterでアプリケーションがUpdate()を呼び出すときにデータベース上で削除を実行するSQL文(CommandText)が含まれている、自動生成されたOracleCommandオブジェクトを取得します。

宣言

// C#
public OracleCommand GetDeleteCommand();

戻り値

OracleCommand

例外

ObjectDisposedException - OracleCommandBuilderオブジェクトはすでに処理されています。

InvalidOperationException - SelectCommandまたはDataAdapterプロパティのいずれかがNULL、または主キーをOracleDataAdapterのSelectCommandプロパティから取得できない場合。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

GetInsertCommand

このメソッドでは、OracleDataAdapterでアプリケーションがUpdate()を呼び出すときにデータベース上で挿入を実行するSQL文(CommandText)を含んでいる、自動生成されたOracleCommandオブジェクトを取得します。

宣言

// C#
public OracleCommand GetInsertCommand();

戻り値

OracleCommand

例外

ObjectDisposedException - OracleCommandBuilderオブジェクトはすでに処理されています。

InvalidOperationException - SelectCommandまたはDataAdapterプロパティのいずれかがNULL、または主キーをOracleDataAdapterのSelectCommandプロパティから取得できない場合。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

GetUpdateCommand

このメソッドでは、OracleDataAdapterでアプリケーションがUpdate()を呼び出すときにデータベース上で更新を実行するSQL文(CommandText)を含んでいる、自動生成されたOracleCommandオブジェクトを取得します。

宣言

// C#
public OracleCommand GetUpdateCommand();

戻り値

OracleCommand

例外

ObjectDisposedException - OracleCommandBuilderオブジェクトはすでに処理されています。

InvalidOperationException - SelectCommandまたはDataAdapterプロパティのいずれかがNULL、または主キーをOracleDataAdapterのSelectCommandプロパティから取得できない場合。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

QuoteIdentifier

適切にエスケープされた識別子に引用を組み込んで、指定された非引用識別子の正しい引用形式を戻します。

宣言

// ADO.NET 2.0: C#
public override string QuoteIdentifier(string unquotedIdentifier);

パラメータ

- UnquotedIdentifier
非引用識別子文字列。

戻り値

識別子の引用バージョン。識別子内の埋込み引用は適切にエスケープされています。

例外

ArgumentNullException - 入力パラメータはNullです。

備考

このメソッドは、OracleConnectionまたはOracleCommandオブジェクトのいずれからも独立しています。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class QuoteIdentifierSample
{
static void Main(string[] args)
{
OracleCommandBuilder builder = new OracleCommandBuilder();
string quoteIdentifier = builder.QuoteIdentifier("US\"ER");

//quoteIdentifier for "US\"ER" is (\"US\"\"ER\")
Console.WriteLine("quoteIdentifier is {0}" , quoteIdentifier);
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

RefreshSchema

このメソッドでは、INSERT、UPDATEまたはDELETE文の生成に使用されるデータベース・スキーマ情報をリフレッシュします。

宣言

// ADO.NET 2.0: C#
public override void RefreshSchema();

備考

OracleDataAdapterオブジェクトのSelectCommand値が変更されると、常にアプリケーションによってRefreshSchemaが呼び出されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

UnquoteIdentifier

このメソッドは、引用の目的で識別子に埋め込まれたエスケープ表記をいずれも削除し、指定された引用識別子の正しい非引用形式を戻します。

宣言

// ADO.NET 2.0: C#
public override string UnquoteIdentifier(string quotedIdentifier);

パラメータ

- quotedIdentifier
引用されている文字列識別子。

戻り値

埋め込まれた引用エスケープ表記がいずれも削除済の非引用識別子。

例外

ArgumentNullException - 入力パラメータはNullです。

ArgumentException - 入力パラメータは空です。

備考

このメソッドは、OracleConnectionまたはOracleCommandオブジェクトのいずれからも独立しています。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class UnQuoteIdentifierSample
{
static void Main(string[] args)
{
//create an OracleCommandBuilder object.
OracleCommandBuilder builder = new OracleCommandBuilder();

string identifier = "US\"ER";
Console.WriteLine("Identifier is {0}", identifier);

// quote the identifier
string quoteIdentifier = builder.QuoteIdentifier(identifier);

//quoteIdentifier of "US\"ER" is (\"US\"\"ER\")
Console.WriteLine("QuotedIdentifier is {0}" , quoteIdentifier);
string unquoteIdentifier = builder.UnquoteIdentifier(quoteIdentifier);

//And its unquoteIdentifier is US\"ER
Console.WriteLine("UnquotedIdentifier is {0}" , unquoteIdentifier);
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

OracleCommandBuilderイベント

OracleCommandBuilderイベントを、表5-16にリストします。

表5-16 OracleCommandBuilderイベント

イベント名

説明

Disposed

System.ComponentModel.Componentからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleCommandBuilderクラス

- OracleCommandBuilderメンバー

OracleConnectionクラス

OracleConnectionオブジェクトは、Oracle Databaseへの接続を表します。

クラスの継承

System.Object

System.MarshalByRefObject

System.ComponentModel.Component

System.Data.Common.DbConnection (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleConnection

宣言

// ADO.NET 2.0: C#
public sealed class OracleConnection : DbConnection, IDbConnection, ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleConnectionSample
{
static void Main()
{
// Connect
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Execute a SQL SELECT
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from emp";
OracleDataReader reader = cmd.ExecuteReader();

// Print all employee numbers
while (reader.Read())
Console.WriteLine(reader.GetInt32(0));

// Clean up
reader.Dispose();
cmd.Dispose();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionメンバー

- OracleConnectionコンストラクタ

- OracleConnection静的プロパティ

- OracleConnection静的メソッド

- OracleConnectionプロパティ

- OracleConnectionパブリック・メソッド

- OracleConnectionイベント

OracleConnectionメンバー

OracleConnectionメンバーは、次の表にリストされています。

OracleConnectionコンストラクタ

OracleConnectionコンストラクタを、表5-17にリストします。

表5-17 OracleConnectionコンストラクタ

コンストラクタ

説明

OracleConnectionコンストラクタ

OracleConnectionクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleConnection静的プロパティ

OracleConnection静的プロパティを、表5-19にリストします。

表5-18 OracleConnection静的プロパティ

プロパティ

説明

IsAvailable

暗黙的なデータベース接続が使用できるかどうかを示します。

OracleConnection静的メソッド

OracleConnection静的メソッドを、表5-19にリストします。

表5-19 OracleConnection静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

ClearPool

指定のOracleConnectionオブジェクトに関連付けられている接続プールがクリアされます。

.NETストアド・プロシージャではサポートされません

ClearAllPools

すべての接続プールからすべての接続がクリアされます。

.NETストアド・プロシージャではサポートされません

OracleConnectionプロパティ

OracleConnectionプロパティを、表5-20にリストします。

表5-20 OracleConnectionプロパティ

プロパティ

説明

ActionName

接続のアクション名を指定します。

ClientId

接続のクライアント識別子を指定します

ClientInfo

接続のクライアント情報を指定します

ConnectionString

Oracle Databaseへの接続に使用される接続情報を指定します

ConnectionTimeout

Openメソッドが要求を終了する前にプールされた接続の取得に要する最大時間を示します。

Container

System.ComponentModel.Componentからの継承

Database

サポート対象外

DatabaseDomainName

接続の設定先データベース・ドメインの名前を指定します

DatabaseName

接続の設定先データベースの名前を指定します

DataSource

接続するデータベースを識別するOracle Netサービス名、接続記述子または簡易接続ネーミングを指定します

HostName

接続の設定先ホストの名前を指定します

InstanceName

接続の設定先インスタンスの名前を指定します

ModuleName

接続のモジュール名を指定します。

ServerVersion

OracleConnectionが接続を確立するOracle Databaseのバージョン番号を指定します

ServiceName

接続の設定先サービスの名前を指定します

Site

System.ComponentModel.Componentからの継承

State

接続の現在の状態を指定します

StatementCacheSize

この接続に関連付けられた文キャッシュの現在のサイズを指定します

OracleConnectionパブリック・メソッド

OracleConnectionパブリック・メソッドを、表5-21にリストします。

表5-21 OracleConnectionパブリック・メソッド

パブリック・メソッド

説明

BeginTransaction

ローカル・トランザクションを開始します(オーバーロード)

コンテキスト接続用の.NETストアド・プロシージャではサポートされません

ChangeDatabase

サポート対象外

Clone

OracleConnectionオブジェクトのコピーを作成します

.NETストアド・プロシージャではサポートされません

Close

データベース接続をクローズします

CreateCommand

OracleConnectionオブジェクトに関連付けられたOracleCommandオブジェクトを作成して戻します

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

System.ComponentModel.Componentからの継承

EnlistDistributedTransaction

アプリケーションによって、指定された分散トランザクションに明示的に登録できるようにします

.NETストアド・プロシージャではサポートされません

EnlistTransaction

アプリケーションによって、指定された分散トランザクションに登録できるようにします

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

.NETストアド・プロシージャではサポートされません

Equals

System.Objectからの継承(オーバーロード)

FlushCache

この接続を使用し、REFオブジェクトを通して検索したすべての更新と削除をフラッシュします

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetSchema

OracleConnectionのデータ・ソースのスキーマ情報を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetSessionInfo

セッションのグローバリゼーションの設定を表すOracleGlobalizationオブジェクトのプロパティ値を戻すか、またはリフレッシュします(オーバーロード)

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Open

ConnectionStringにより指定されたプロパティの設定でデータベース接続をオープンします

OpenWithNewPassword

新規パスワードで新規接続をオープンします

コンテキスト接続用の.NETストアド・プロシージャではサポートされません

PurgeStatementCache

文キャッシングが有効な場合、データベースでオープンしているすべてのカーソルをクローズし、文キャッシュをフラッシュします

SetSessionInfo

セッションのグローバリゼーションの設定をOracleGlobalizationオブジェクトにより指定されたプロパティ値で変更します

ToString

System.Objectからの継承

OracleConnectionイベント

OracleConnectionイベントを、表5-22にリストします。

表5-22 OracleConnectionイベント

イベント名

説明

Disposed

System.ComponentModel.Componentからの継承

Failover

Oracleフェイルオーバーが発生するときにトリガーされるイベント

.NETストアド・プロシージャではサポートされません

HAEvent

HAイベントが発生したときにトリガーされるイベント。

InfoMessage

すべてのメッセージにトリガーされるイベントまたはデータベースにより送信される警告

StateChange

接続の状態が変更されたときにトリガーされるイベント

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

OracleConnectionコンストラクタ

OracleConnectionコンストラクタはOracleConnectionクラスの新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleConnection()
このコンストラクタは、デフォルト・プロパティ値を使用してOracleConnectionクラスの新規インスタンスをインスタンス化します。

- OracleConnection(String)
このコンストラクタは、指定された接続文字列とともにOracleConnectionクラスの新規インスタンスをインスタンス化します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OracleConnection()

このコンストラクタは、デフォルト・プロパティ値を使用してOracleConnectionクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleConnection();

備考

OracleConnectionのプロパティは次のデフォルト値に設定されます。

- ConnectionString = 空の文字列

- ConnectionTimeout = 15(暗黙的なデータベース接続にはデフォルト値の0が使用されます。)

- DataSource = 空の文字列

- ServerVersion = 空の文字列

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OracleConnection(String)

このコンストラクタは、指定された接続文字列とともにOracleConnectionクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleConnection(String connectionString);

パラメータ

- connectionString
接続情報は、Oracle Databaseへの接続に使用されます。

備考

ConnectionStringプロパティは、指定されたconnectionStringに設定されます。ConnectionStringプロパティは解析され、無効な接続文字列属性または属性値が含まれる場合は、例外がスローされます。

OracleConnectionオブジェクトのプロパティは、接続文字列により設定されない場合は、次の値をデフォルトとします。

- ConnectionString = 空の文字列

- ConnectionTimeout = 15(暗黙的なデータベース接続にはデフォルト値の0が使用されます。)

- DataSource = 空の文字列

- ServerVersion = 空の文字列

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OracleConnection静的プロパティ

OracleConnection静的プロパティを、表5-23にリストします。

表5-23 OracleConnection静的プロパティ

プロパティ

説明

IsAvailable

暗黙的なデータベース接続が使用できるかどうかを示します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

IsAvailable

このプロパティは、暗黙的なデータベース接続が使用できるかどうかを示します。

宣言

// C#
public static bool IsAvailable {get;}

プロパティ値

暗黙的なデータベース接続が使用できる場合はtrueを戻します。

備考

暗黙的なデータベース接続の可用性は、実行時にこの静的プロパティを使用して確認できます。Oracle Data Provider for .NETが.NETストアド・プロシージャ内で使用されている場合、このプロパティは常にtrueを戻します。それ以外の場合は、falseが戻されます。

暗黙的なデータベース接続を表すOracleConnectionオブジェクトを.NETストアド・プロシージャで取得するには、OracleConnectionオブジェクトのConnectionStringプロパティを"context connection=true"に設定し、Openメソッドを起動します。

明示的なユーザー接続に使用できるすべての機能を暗黙的なデータベース接続に使用できるわけではないことに注意してください。詳細は、「暗黙的データベース接続」を参照してください。

例

// C# (Library/DLL)
using System;
using Oracle.DataAccess.Client;

public class IsAvailableSample
{
static void MyStoredProcedure()
{
OracleConnection con = new OracleConnection();
if (OracleConnection.IsAvailable)
{
// This function is invoked as a stored procedure
// Obtain the implicit database connection by setting
//   "context connection=true" in the connection string
con.ConnectionString = "context connection=true";
}
else
{
// This function is not invoked as a stored procedure
// Set the connection string for a normal client connection
con.ConnectionString = "user id=scott;password=tiger;data source=oracle";
}

con.Open();
Console.WriteLine("connected!");
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OracleConnection静的メソッド

OracleConnection静的メソッドを、表5-24にリストします。

表5-24 OracleConnection静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

ClearPool

指定のOracleConnectionオブジェクトに関連付けられている接続プールがクリアされます。

.NETストアド・プロシージャではサポートされません

ClearAllPools

すべての接続プールからすべての接続がクリアされます。

.NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ClearPool

このメソッドでは、指定のOracleConnectionオブジェクトに関連付けられている接続プールがクリアされます。

宣言

// C#
public static void ClearPool(OracleConnection connection);

備考

このメソッドが呼び出されると、すべてのアイドル接続はクローズされプールから解放されます。プールに戻されるまで現在使用中の接続は廃棄されません。

ClearPoolメソッドは、有効な接続が作成される(つまり、データベースが有効で接続可能な)場合のみ呼び出されます。または、ClearPoolメソッドは停止したデータベース・インスタンスに対して無効な接続を作成する場合もあります。有効なデータベース接続の場合、ClearPoolを呼び出すことによって、使用可能な接続を使用して接続プールが作成されます。したがって、接続要求は、このメソッドが呼び出された後も続行します。このメソッドを呼び出した後に作成された接続は、他のメソッドが呼び出されるまではクリアされません。

ConnectionStringが適切に設定されている場合、このメソッドは接続をオープンする前およびオープンした後に、OracleConnectionオブジェクトに対して起動できます。

例外

InvalidOperationException - 接続プールが見つからないか、指定された接続文字列が無効です。

例

// C#
// Sample demonstrating the use of ClearPool API in OracleConnection class

using System;
using Oracle.DataAccess.Client;

class ClearPoolSample
{
static void Main()
{
Console.WriteLine("Running ClearPool sample..." );
// Set the connection string
string strConn = "User Id=scott;Password=tiger;Data Source=oracle;" +
"Min pool size=5;";
OracleConnection conn = new OracleConnection(strConn);

// Open the connection
conn.Open();

// Clears the connection pool associated with connection 'conn'
OracleConnection.ClearPool (conn);

// This connection will be placed back into the pool
conn.Close ();

// Open the connection again to create additional connections in the pool
conn.Open();

// Create a new connection object
OracleConnection connNew = new OracleConnection(strConn);

// Clears the pool associated with Connection 'connNew'
// Since the same connection string is set for both the connections,
// connNew and conn, they will be part of the same connection pool.
// We need not do an Open() on the connection object before calling
// ClearPool
OracleConnection.ClearPool (connNew);

// cleanup
conn.Close();
Console.WriteLine("Done!");
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ClearAllPools

このメソッドでは、すべての接続プールからすべての接続がクリアされます。

宣言

// C#
public static void ClearAllPools();

備考

これは、アプリケーション用に作成されたすべての接続プールに対して、ClearPoolを呼び出す操作に似ています。

例外

InvalidOperationException - アプリケーション用の接続プールが見つかりません。

例

// C#
// Sample demonstrating the use of ClearAllPools API in OracleConnection class

using System;
using Oracle.DataAccess.Client;

class ClearAllPoolsSample
{
static void Main()
{
Console.WriteLine("Running ClearAllPools sample..." );
// Set the connection string
string strConn = "User Id=scott;Password=tiger;Data Source=oracle;" +
"Min pool size=5;";
OracleConnection conn = new OracleConnection(strConn);

// Create another connection object with a different connection string
string strConnNew = "User Id=scott;Password=tiger;Data Source=oracle;";
OracleConnection connNew = new OracleConnection(strConnNew);

// Open the connections. Separate pools are created for conn and connNew
conn.Open();
connNew.Open();

// Clears the pools associated with conn and connNew
OracleConnection.ClearAllPools ();

// cleanup
conn.Close();
connNew.Close();
Console.WriteLine("Done!");
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「ClearPool」

OracleConnectionプロパティ

OracleConnectionプロパティを、表5-25にリストします

表5-25 OracleConnectionプロパティ

プロパティ

説明

ActionName

接続のアクション名を指定します。

ClientId

接続のクライアント識別子を指定します

ClientInfo

接続のクライアント情報を指定します

ConnectionString

Oracle Databaseへの接続に使用される接続情報を指定します

ConnectionTimeout

Openメソッドが要求を終了する前にプールされた接続の取得に要する最大時間を示します。

ConnectionType

特定の接続オブジェクトがTimesTenデータベース接続またはOracle Database接続に関連付けられているか、あるいは物理接続に関連付けられていないかを判別します

Container

System.ComponentModel.Componentからの継承

Database

サポート対象外

DatabaseDomainName

接続の設定先データベース・ドメインの名前を指定します

DatabaseName

接続の設定先データベースの名前を指定します

DataSource

接続するデータベースを識別するOracle Netサービス名、接続記述子または簡易接続ネーミングを指定します

HostName

接続の設定先ホストの名前を指定します

InstanceName

接続の設定先インスタンスの名前を指定します

ModuleName

接続のモジュール名を指定します。

ServerVersion

OracleConnectionが接続を確立するOracle Databaseのバージョン番号を指定します

ServiceName

接続の設定先サービスの名前を指定します

Site

System.ComponentModel.Componentからの継承

State

接続の現在の状態を指定します

StatementCacheSize

この接続に関連付けられた文キャッシュの現在のサイズを指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ActionName

このプロパティでは、接続のアクション名を指定します。

宣言

// C#
public string ActionName {set;}

プロパティ値

アクション名として使用される文字列。

備考

デフォルト値はnullです。

ActionNameプロパティを使用すると、アプリケーションで特定のOracleConnectionオブジェクトに対してアプリケーション・コンテキスト内にアクション名を設定できます。

OracleConnectionオブジェクト上でCloseまたはDisposeメソッドが呼び出されると、ActionNameプロパティはnullにリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「クライアント識別子とエンドツーエンド・トレース」

- 『Oracle Databaseセキュリティ・ガイド』

ClientId

このプロパティでは、接続のクライアント識別子を指定します。

宣言

// C#
public string ClientId {set;}

プロパティ値

クライアント識別子として使用される文字列

備考

デフォルト値はnullです。

ClientIdプロパティを使用すると、アプリケーションで特定のOracleConnectionオブジェクトに対してアプリケーション・コンテキスト内にクライアント識別子を設定できます。

ClientIdをnullに設定すると、接続のクライアント接続子がリセットされます。OracleConnectionオブジェクトでCloseメソッドまたはDisposeメソッドがコールされると、ClientId がnullに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「クライアント識別子とエンドツーエンド・トレース」

- 『Oracle Databaseセキュリティ・ガイド』

ClientInfo

このプロパティでは、接続のクライアント情報を指定します。

宣言

// C#
public string ClientInfo {set;}

プロパティ値

クライアント情報として使用される文字列。

備考

デフォルト値はnullです。

ClientInfoプロパティを使用すると、アプリケーションで特定のOracleConnectionオブジェクトに対してアプリケーション・コンテキスト内にクライアント情報を設定できます。

OracleConnectionオブジェクト上でCloseまたはDisposeメソッドが呼び出されると、ClientInfoプロパティはnullにリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「クライアント識別子とエンドツーエンド・トレース」

- 『Oracle Databaseセキュリティ・ガイド』

ConnectionString

このプロパティは、Oracle Databaseへの接続に使用される接続情報を指定します。

宣言

// ADO.NET 2.0: C#
public override string ConnectionString{get; set;}

プロパティ値

接続文字列がコンストラクタを介して指定される場合、このプロパティはその文字列に設定されます。

実装

IDbConnection

例外

ArgumentException - 無効な構文が接続文字列に指定されました。

InvalidOperationException - ConnectionStringが接続がオープン中に設定されました。

備考

デフォルト値が空の文字列です。

ConnectionStringは、セミコロンで区切られた属性名と値のペアにする必要があります。次に例を示します。

"User Id=scott;password=tiger;data source=oracle"

ConnectionStringの形式が正しくない場合、例外がスローされます。二重引用符で囲まれていない場合、すべてのスペースは無視されます。

ConnectionStringプロパティが設定されている場合、OracleConnectionオブジェクトはすぐに文字列のエラーを解析します。ArgumentExceptionは、ConnectionStringに無効な属性または無効な値が含まれている場合に、スローされます。User Id、Password、Proxy User Id、Proxy Password、およびData Source(提供されている場合)の属性値は、Openメソッドがコールされるまで検証されません。

接続はクローズして、ConnectionStringプロパティに設定する必要があります。ConnectionStringプロパティがリセットされる場合、事前に設定された値は、新しい値が適用される前にそれぞれのデフォルト値に再初期化されます。

ODP.NET 11.1で開始する場合、パスワードおよびプロキシ・パスワードの接続文字列属性の値は大/小文字が区別されます。そのため、接続文字列に指定された大文字または小文字が認証用としてデータベースに渡されます。したがって、データベースが大/小文字が区別されているパスワードをサポートするよう構成されている場合、パスワードは正しい大/小文字で渡される必要があります。

接続文字列属性が2回以上設定されている場合、最新の設定が実行され、例外はスローされません。

ブール接続文字列属性は、true、false、yesまたはnoのいずれかに設定できます。

備考(.NETストアド・プロシージャ)

暗黙的なデータベース接続を表すOracleConnectionオブジェクトを.NETストアド・プロシージャで取得するには、OracleConnectionオブジェクトのConnectionStringプロパティを"context connection=true"に設定し、Openメソッドを起動します。"context connection"がtrueに設定されている場合、その他の接続文字列属性を一緒に使用することはできません。

サポートされている接続文字列属性

表5-26には、サポートされている接続文字列属性をリストします。

表5-26 サポートされている接続文字列属性

接続文字列属性

説明

デフォルト値

Connection Lifetime

接続の最大存続期間(秒)。

この属性は、接続の存続期間を秒単位で指定します。Connectionがプールに戻される前に、接続の存続期間がチェックされます。接続の存続期間がこのプロパティ値を超える場合、接続はクローズされ、処理されます。このプロパティ値が0の場合、接続存続期間は1度もチェックされません。存続期間を超えた接続はクローズまたは処理されません。クローズまたは処理するには、プール内の接続の数をMin Pool Sizeよりも小さくします。

0

Connection Timeout

プールから使用可能な接続を待機する最大時間(秒)。

この属性は、Open()メソッドが要求を終了する前にプールされた接続の取得に要する最大時間(秒)を指定します。この値は、接続プールからの使用可能な接続がない場合、およびMax Pool Sizeに達した場合にのみ有効になります。使用可能な接続が指定された時間内に使用できない場合、例外がスローされます。Connection Timeoutは、新規接続のオープン時に必要とする時間を制限しません。

この属性値はプールされた接続要求に対して有効となりますが、新規接続要求に対しては有効にはなりません。

(.NETストアド・プロシージャにおける暗黙的なデータベース接続のデフォルト値は0です。)

15

Context Connection

trueに設定した場合、暗黙的なデータベース接続が戻されます。

暗黙的なデータベース接続は、.NETストアド・プロシージャ内からのみ取得できます。context connectionがtrueに設定されている場合、その他の接続文字列属性を一緒に使用することはできません。

.NETストアド・プロシージャでのみサポートされています。

false

Data Source

接続するデータベースを識別するOracle Netサービス名、接続記述子または簡易接続ネーミング。

空の文字列

DBA Privilege

管理者権限SYSDBAまたはSYSOPER。

この接続文字列属性は、属性値としてSYSDBAまたはSYSOPERのみを受け入れます。大/小文字を区別します。

空の文字列

Decr Pool Size

未使用の確立済接続量が過剰となり、クローズされる接続数。

この接続文字列の属性は、プール・レギュレータが定期的なチェックを行う場合、クローズされる未使用の最大接続数を制御します。このレギュレータ・スレッドは3分ごとに生成され、プールされた接続が使用されていない場合、その接続のDecr Pool Size量に達するまでクローズします。プール・レギュレータは、プールされた接続をクローズすることによりMin Pool Size未満の接続の合計数を取りません。

1

Enlist

COM+トランザクションまたはSystem.Transactionsのコンテキストでの接続の登録動作と機能を制御します。

この属性がtrueに設定されている場合、接続は自動的にスレッドのトランザクション・コンテキストに登録されます。この属性がfalseの場合、登録は行われません。この属性がdynamicに設定されている場合は、アプリケーションで分散トランザクションに動的に登録できます。この属性は、true、false、yes、noまたはdynamicのいずれかに設定できます。

true

HA Events

ODP.NET接続プールを使用して、Oracle RACサービス、サービス・メンバーまたはノードの停止時に、プールから接続を事前に削除できます。

この機能は、"pooling=true"の場合にかぎり、Oracle RACデータベースに対してのみ使用できます。

この属性は、true、false、yesまたはnoのいずれかに設定できます。

false

Load Balancing

ODP.NET接続プールを使用して、ロード・バランシング・アドバイザリおよびサービスの目的に基づき、Oracle RACインスタンス間の作業要求のバランスを調整できます。

この機能は、"pooling=true"の場合にかぎり、Oracle RACデータベースに対してのみ使用できます。

この属性は、true、false、yesまたはnoのいずれかに設定できます。

false

Incr Pool Size

プール内のすべての接続が使用された場合に作成される新しい接続の数。

この接続文字列属性は、プールされた接続が要求されたときに確立される新規接続の数を決定しますが、未使用の接続は使用不可であり、Max Pool Sizeに達しません。新規接続がプールに作成された場合、レギュレータ・スレッドはサイクルをスキップし、すべての接続は6分間クローズされません。ただし、接続の存続期間を超過している場合は、この間に一部の接続がまだクローズ可能なことに注意してください。

5

Max Pool Size

プール内の接続の最大数。

この属性は、OracleConnectionにより使用された特定のプール内に許可された接続の最大数を指定します。接続文字列でこの属性を変更するだけでは、現在すでに存在するプールのMax Pool Size制限は変更されません。このようにして、異なるMax Pool Size制限で新規プールが容易に作成できます。この属性は、Min Pool Sizeより大きな値に設定する必要があります。この値は、Poolingが稼働していない場合、無視されます。

100

Metadata Pooling

メタデータ情報をキャッシュします。

この属性は、実行した問合せのメタデータ情報をパフォーマンス向上のためにキャッシュするかどうかを示します。

True

Min Pool Size

プール内の接続の最小数。

この属性は、プールのすべての存続期間中、プールにより保持される接続の最小数を指定します。接続文字列でこの属性を変更するだけでは、現在すでに存在するプールのMin Pool Size制限は変更されません。このようにして、異なるMin Pool Size制限で新規プールが容易に作成できます。この値は、Poolingが稼働していない場合、無視されます。

1

Password

User Idにより指定されたユーザーのパスワード。

この属性はOracleユーザーのパスワードを指定します。Oracle Database 11gリリース1(11.1)以降では、デフォルトではPasswordは大/小文字を区別します。

空の文字列

Persist Security Info

接続文字列でのパスワード検索。

この属性がfalseに設定されている場合、Passwordの値の設定はOpen()メソッドにより接続が正常にオープンされた後にアプリケーションがConnectionStringを要求する場合には戻されません。この属性は、true、false、yesまたはnoのいずれかに設定できます。

false

Pooling

接続プーリング。

この属性は、接続プーリングを使用する必要があるかどうかを指定します。プールは、属性値が一致するアルゴリズムを使用して作成されます。つまり、接続文字列内で単にスペースの数が異なる接続文字列は、同じプールを使用することを意味します。一方の接続文字列では属性をデフォルト値に設定し、もう一方の接続文字列でその属性を設定しないという点を除いて、2つの接続文字列が一致する場合、両方の要求とも同じプールから接続を取得します。この属性は、true、false、yesまたはnoのいずれかに設定できます。

true

Promotable Transaction

Promotableが分散トランザクションかどうか。

"promotable"が指定されている場合、同じTransactionScopeでオープンされる最初と後続の接続は、同じ分散トランザクション内で登録されます。"local"が指定されている場合、TransactionScopeでオープンした最初の接続ではローカル・トランザクションが使用されます。

promotable

Proxy User Id

プロキシ・ユーザーのユーザー名。

この接続文字列属性は、User Id属性により指定されたクライアント・ユーザーのかわりに接続を確立する中間層のユーザーまたはプロキシ・ユーザーを指定します。ODP.NETは、Proxy User IdまたはProxy Password属性のいずれかが空ではない文字列に設定されている場合、プロキシ接続の確立を試みます。

空の文字列

プロキシ・ユーザーがオペレーティング・システム認証を使用してOracle Databaseに接続するには、Proxy User Idを「/」に設定する必要があります。Proxy Passwordは、この場合無視されます。User Idは、プロキシ接続を確立している場合、「/」に設定できません。この場合の属性値は保持されます。

Proxy Password

プロキシ・ユーザーのパスワード。

この接続文字列属性は、中間層のユーザーまたはプロキシ・ユーザーのパスワードを指定します。このユーザーは、User Id属性により指定されたクライアント・ユーザーのかわりに接続を確立します。ODP.NETは、Proxy User IdまたはProxy Password属性のいずれかが空ではない文字列に設定されている場合、プロキシ接続の確立を試みます。

二重引用符によりこの属性値が囲まれている場合、この場合の属性値は保持されます。

空の文字列

Statement Cache Purge

接続がプールに戻るときの文キャッシュの消去。

文キャッシングが有効な場合、この属性をtrueに設定すると、接続がプールに戻される際に文キャッシュがパージされます。

false

Statement Cache Size

文キャッシュを有効にして、キャッシュ・サイズ、つまりキャッシュ可能な文の最大数のサイズを設定します。

文キャッシングはゼロより大きい値で可能で、キャッシュ・サイズはその値に設定されます。この値は、init.oraデータベース・コンフィギュレーション・ファイルにあるOPEN_CURSORSパラメータ・セットの値以下にする必要があります。

0

Self Tuning

接続の自動チューニングを有効化または無効化します。

自動チューニングが有効な場合、レジストリ、構成ファイルおよび接続文字列のStatementCacheSize設定は無視されます。

自動チューニングが無効な場合、レジストリ、構成ファイルまたは接続文字列でStatementCachSizeが指定されていないかぎり、StatementCacheSize値として0が使用されます。

true

User Id

Oracleユーザー名。

この属性は、Oracleユーザー名を指定します。二重引用符によりこの属性値が囲まれている場合、この場合の属性値は保持されます。ユーザーがオペレーティング・システム認証を使用してOracle Databaseに接続するには、User Idを「/」に設定する必要があります。すべてのPassword属性の設定は、この場合無視されます。

空の文字列

Validate Connection

プールから発生した接続の検証。

検証により、各接続に対してデータベースにラウンドトリップが発生します。このため、必要な場合のみ使用してください。

false

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ConnectionTimeout

このプロパティは、Openメソッドが要求を終了する前にプールされた接続の取得に要する最大時間を示します。

宣言

// ADO.NET 2.0: C#
public override int ConnectionTimeout {get;}

プロパティ値

プールされた接続要求に対する有効な最大時間(秒)

実装

IDbConnection

備考

このプロパティは、ConnectionString属性のConnection TimeOutを使用して設定されている接続タイムアウトを示します。

このプロパティは読取り専用です。

備考(.NETストアド・プロシージャ)

アプリケーションによって指定された接続文字列がなく、暗黙的なデータベースでの接続が常に使用可能であるため、このプロパティは0に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ConnectionType

このプロパティを使用すると、ODP.NETアプリケーションによって、特定の接続オブジェクトがOracle Database接続またはTimesTenデータベース接続に関連付けられているか、あるいは物理接続に関連付けられていないかを判別できます。

宣言

// C#
public OracleConnectionType ConnectionType {get;}

プロパティ値

この接続オブジェクトが関連付けられているOracleConnectionType。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- OracleConnectionTypeの列挙

Database

このプロパティは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override string Database {get;}

プロパティ値

文字列

実装

IDbConnection.Database

備考

このプロパティは、サポートされていません。これは常に空の文字列を戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

DatabaseDomainName

このプロパティは、この接続の接続先データベース・ドメインの名前を指定します。

宣言

// C#
public string DatabaseDomainName {get;}

プロパティ値

この接続の接続先データベース・ドメイン。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

DatabaseName

このプロパティは、この接続の接続先データベースの名前を指定します。

宣言

// C#
public string DatabaseName {get;}

プロパティ値

この接続の接続先データベース。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

DataSource

このプロパティは、接続するデータベースを識別するOracle Netサービス名、接続記述子または簡易接続ネーミングを指定します。

宣言

// ADO.NET 2.0: C#
public override string DataSource {get;}

プロパティ値

接続するデータベースを識別するOracle Netサービス名、接続記述子または簡易接続ネーミング。

備考(.NETストアド・プロシージャ)

暗黙的なデータベース接続の場合、このプロパティの値は常に空の文字列です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

HostName

このプロパティは、この接続の接続先ホストの名前を指定します。

宣言

// C#
public string HostName {get;}

プロパティ値

この接続の接続先ホスト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

InstanceName

このプロパティは、この接続の接続先インスタンスの名前を指定します。

宣言

// C#
public string InstanceName {get;}

プロパティ値

この接続の接続先インスタンス。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ModuleName

このプロパティでは、接続のモジュール名を指定します。

宣言

// C#
public string ModuleName {set;}

プロパティ値

モジュール名として使用される文字列。

備考

デフォルト値はnullです。

ModuleNameプロパティを使用すると、アプリケーションで特定のOracleConnectionオブジェクトに対してアプリケーション・コンテキスト内にモジュール名を設定できます。

OracleConnectionオブジェクト上でCloseまたはDisposeメソッドが呼び出されると、ModuleNameプロパティはnullにリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「クライアント識別子とエンドツーエンド・トレース」

- 『Oracle Databaseセキュリティ・ガイド』

ServerVersion

このプロパティは、OracleConnectionが接続を確立するOracle Databaseのバージョン番号を指定します。

宣言

// ADO.NET 2.0: C#
public override string ServerVersion {get;}

プロパティ値

Oracle Databaseのバージョン

例外

InvalidOperationException - 接続がクローズされています。

備考

デフォルトは空の文字列です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ServiceName

このプロパティは、この接続の接続先サービスの名前を指定します。

宣言

// C#
public string ServiceName {get;}

プロパティ値

この接続の接続先サービス。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

State

このプロパティは、接続の現在の状態を指定します。

宣言

// ADO.NET 2.0: C#
public override ConnectionState State {get;}

プロパティ値

接続のConnectionState

実装

IDbConnection

備考

ODP.NETでは、このプロパティに対してConnectionState.ClosedおよびConnectionState.Openがサポートされています。デフォルト値は、ConnectionState.Closedです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

StatementCacheSize

このプロパティは、この接続に関連付けられた文キャッシュの現在のサイズを指定します。

宣言

// C#
public int StatementCacheSize{get;}

プロパティ値

文キャッシュのサイズを示す整数値。

備考

自動チューニングが有効でない場合、このプロパティのデフォルト値は、接続文字列、アプリケーション構成ファイルまたはレジストリに指定した文キャッシュ・サイズによって異なります。これらの値をいずれも指定していない場合、デフォルト値として0が使用されます。

自動チューニングが有効な場合、プロパティ値は自動的に調整されます。接続文字列、アプリケーション構成ファイルまたはレジストリに指定した値は無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OracleConnectionパブリック・メソッド

OracleConnectionパブリック・メソッドを、表5-27にリストします。

表5-27 OracleConnectionパブリック・メソッド

パブリック・メソッド

説明

BeginTransaction

ローカル・トランザクションを開始します(オーバーロード)

コンテキスト接続用の.NETストアド・プロシージャではサポートされません

ChangeDatabase

サポート対象外

Clone

OracleConnectionオブジェクトのコピーを作成します

.NETストアド・プロシージャではサポートされません

Close

データベース接続をクローズします

CreateCommand

OracleConnectionオブジェクトに関連付けられたOracleCommandオブジェクトを作成して戻します

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

System.ComponentModel.Componentからの継承

EnlistDistributedTransaction

アプリケーションによって、指定された分散トランザクションに明示的に登録できるようにします

.NETストアド・プロシージャではサポートされません

EnlistTransaction

アプリケーションによって、指定された分散トランザクションに登録できるようにします

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

.NETストアド・プロシージャではサポートされません

Equals

System.Objectからの継承(オーバーロード)

FlushCache

この接続を使用し、REFオブジェクトを通して検索したすべての更新と削除をフラッシュします

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetSchema

OracleConnectionのデータ・ソースのスキーマ情報を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetSessionInfo

セッションのグローバリゼーションの設定を表すOracleGlobalizationオブジェクトのプロパティ値を戻すか、またはリフレッシュします(オーバーロード)

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Open

ConnectionStringにより指定されたプロパティの設定でデータベース接続をオープンします

OpenWithNewPassword

新規パスワードで新規接続をオープンします

コンテキスト接続用の.NETストアド・プロシージャではサポートされません

PurgeStatementCache

文キャッシングが有効な場合、データベースでオープンしているすべてのカーソルをクローズし、文キャッシュをフラッシュします

SetSessionInfo

セッションのグローバリゼーションの設定をOracleGlobalizationオブジェクトにより指定されたプロパティ値で変更します

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

BeginTransaction

BeginTransactionメソッドは、ローカル・トランザクションを開始します。

オーバーロード・リスト

- BeginTransaction()
このメソッドは、ローカル・トランザクションを開始します。

- BeginTransaction(IsolationLevel)
このメソッドは、ローカル・トランザクションを指定された分離レベルで開始します。

BeginTransaction()

このメソッドは、ローカル・トランザクションを開始します。

宣言

// C#
public OracleTransaction BeginTransaction();

戻り値

OracleTransactionオブジェクトは、新規トランザクションを表します。

実装

IDbConnection

例外

InvalidOperationException - トランザクションはすでに開始されています。

備考

トランザクションは、分離レベルで作成され、IsolationLevel.ReadCommittedのデフォルト値に設定されます。トランザクションに関連するすべての後続の操作は、戻されたOracleTransactionオブジェクトで実行する必要があります。

備考(.NETストアド・プロシージャ)

このメソッドをコンテキスト接続用の.NETストアド・プロシージャで使用すると、未サポートの例外が発生します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

BeginTransaction(IsolationLevel)

このメソッドは、ローカル・トランザクションを指定された分離レベルで開始します。

宣言

// C#
public OracleTransaction BeginTransaction(IsolationLevel isolationLevel);

パラメータ

- isolationLevel
新規トランザクションの分離レベル

戻り値

OracleTransactionオブジェクトは、新規トランザクションを表します。

実装

IDbConnection

例外

InvalidOperationException - トランザクションはすでに開始されています。

ArgumentException - 指定したisolationLevel値が無効です。

備考

分離レベルIsolationLevel.ReadCommittedおよびIsolationLevel.Serializableがサポートされています。

BeginTransactionメソッドは、IsolationLevel.Serializable分離レベルをサポートしていますが、System.TransactionsおよびTransactionScopeを使用する場合、シリアライズ可能なトランザクションはサポートされません。

他の分離レベルを要求すると、例外が発生します。

備考(.NETストアド・プロシージャ)

このメソッドをコンテキスト接続用の.NETストアド・プロシージャで使用すると、未サポートの例外が発生します。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class BeginTransactionSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand object using the connection object
OracleCommand cmd = con.CreateCommand();

// Start a transaction
OracleTransaction txn = con.BeginTransaction(IsolationLevel.ReadCommitted);

// Update EMP table
cmd.CommandText = "update emp set sal = sal + 100";
cmd.ExecuteNonQuery();

// Rollback transaction
txn.Rollback();
Console.WriteLine("Transaction rolledback");

// Clean up
txn.Dispose();
cmd.Dispose();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

ChangeDatabase

このメソッドは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override void ChangeDatabase(string databaseName);

パラメータ

- databaseName
現行のデータベース名を置き換えるデータベースの名前

実装

IDbConnection.ChangeDatabase

例外

NotSupportedException - メソッドはサポートされていません。

備考

このメソッドはサポートされておらず、起動されるとNotSupportedExceptionをスローします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

Clone

このメソッドは、OracleConnectionオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleConnectionオブジェクト

実装

ICloneable

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

備考(.NETストアド・プロシージャ)

このメソッドは、暗黙的なデータベース接続ではサポートされていません。

例

// C#

using System;
using Oracle.DataAccess.Client;

class CloneSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Need a proper casting for the return value when cloned
OracleConnection clonedCon = (OracleConnection)con.Clone();

// Cloned connection is always closed, regardless of its source,
//   But the connection string should be identical
clonedCon.Open();
if (clonedCon.ConnectionString.Equals(con.ConnectionString))
Console.WriteLine("The connection strings are the same.");
else
Console.WriteLine("The connection strings are different.");

// Close and Dispose OracleConnection object
clonedCon.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

Close

このメソッドは、データベースへの接続をクローズします。

宣言

// ADO.NET 2.0: C#
public override void Close();

実装

IDbConnection

備考

次を実行します。

- すべての保留中のトランザクションをロール・バックします。

- 接続プーリングが有効な場合、接続を接続プールに配置します。接続プーリングが有効な場合でも、接続が接続文字列に指定された接続存続期間を超える場合、その接続はクローズできます。接続プーリングが無効な場合、接続はクローズされます。

- データベースへの接続をクローズします。

接続は、Open()を使用して再オープンできます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

CreateCommand

このメソッドは、OracleConnectionオブジェクトに関連付けられたOracleCommandオブジェクトを作成して戻します。

宣言

// C#
public OracleCommand CreateCommand();

戻り値

OracleCommandオブジェクト

実装

IDbConnection

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class CreateCommandSample
{
static void Main()
{
// Connect
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Execute a SQL SELECT
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from emp";
OracleDataReader reader = cmd.ExecuteReader();

// Print all employee numbers
while (reader.Read())
Console.WriteLine(reader.GetInt32(0));

// Clean up
reader.Dispose();
cmd.Dispose();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

EnlistDistributedTransaction

このメソッドにより、アプリケーションは接続がオープンされた後に特定の分散トランザクションに明示的に登録できます。

宣言

// C#
public void EnlistDistributedTransaction(ITransaction transaction);

パラメータ

- transaction
ITransactionインタフェース

例外

InvalidOperationException - 接続がローカル・トランザクションの一部であるか、または接続がクローズされています。

備考

EnlistDistributedTransactionにより、メソッドに渡された特定のトランザクションにオブジェクトを登録できます。ITransactionインタフェースは、分散トランザクションを開始したコンポーネント内でContexUtil.Transactionプロパティに(ITransaction)キャストを適用することで取得できます。

このメソッドを呼び出す前に接続がオープンされている必要があります。そうしないとInvalidOperationExceptionがスローされます。

接続が、分散トランザクションに登録を試みている最中に暗黙的または明示的に開始されたローカル・トランザクションの一部である場合、ローカル・トランザクションはロールバックされ、例外がスローされます。

デフォルトでは、メソッド・レベルのAutoComplete宣言が設定されていないかぎり、分散トランザクションはロールバックされます。

ITranasctionに対してコミットを起動すると例外が発生します。

ITransactionメソッドに対してロールバックを起動し、同一分散トランザクションに対してContextUtil.SetCompleteを呼び出すと、例外が発生します。

備考(.NETストアド・プロシージャ)

このメソッドを使用すると、未サポートの例外が発生します。

例

アプリケーション:

// C#

/* This is the class that will utilize the Enterprise Services
component.  This module needs to be built as an executable.

The Enterprise Services Component DLL must be built first
before building this module.
In addition, the DLL needs to be referenced appropriately
when building this application.
*/

using System;
using System.EnterpriseServices;
using DistribTxnSample;

class DistribTxnSample_App
{
static void Main()
{
DistribTxnSample_Comp comp = new DistribTxnSample_Comp();
comp.DoWork();
}
}

コンポーネント:

// C#

/* This module needs to be
1) built as a component DLL/Library
2) built with a strong name

This library must be built first before the application is built.
*/

using System;
using System.Data;
using Oracle.DataAccess.Client;
using System.EnterpriseServices;

namespace DistribTxnSample
{
[Transaction(TransactionOption.RequiresNew)]
public class DistribTxnSample_Comp : ServicedComponent
{
public void DoWork()
{
string constr =
"User Id=scott;Password=tiger;Data Source=oracle;enlist=false";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Enlist in a distrubuted transaction
con.EnlistDistributedTransaction((ITransaction)ContextUtil.Transaction);

// Update EMP table
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "UPDATE emp set sal = sal + .01";
cmd.ExecuteNonQuery();

// Commit
ContextUtil.SetComplete();

// Dispose OracleConnection object
con.Dispose();
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「EnlistTransaction」

- このMicrosoft .NET Framework 1.1機能の詳細は、http://msdn.microsoft.com/libraryを参照

EnlistTransaction

このメソッドは、指定したトランザクションに接続を登録します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

宣言

// C#
public override void EnlistTransaction(Transaction transaction)

パラメータ

- transaction
System.Transactions.Transactionオブジェクト

例外

InvalidOperationException - 接続がローカル・トランザクションの一部であるか、または接続がクローズされています。

備考

このメソッドを起動すると、提供されているトランザクション・パラメータで指定されたトランザクションに、接続がただちに登録されます。

OracleConnectionが、以前のEnlistTransactionメソッドの起動で完了していない分散トランザクションにまだ関連付けられている場合は、このメソッドをコールすると例外がスローされます。

通常、トランザクションの登録が正常に完了するには、Openメソッドの起動前に、"enlist"接続文字列属性が"true"または"dynamic"に設定されている必要があります。"enlist"接続文字列属性が"true"に設定されていると、接続がトランザクション・コンテキスト内の場合は、Openメソッドのコール時に接続が暗黙的に登録されます。"dynamic"に設定されていると、EnlistTransactionまたはEnlistDistributedTransactionメソッドのコール時に、接続をトランザクションに動的に登録できます。"enlist"属性は、接続がトランザクションに登録されることがない場合にのみ、"false"に設定してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「System.TransactionsとPromotable Transaction」

- 「EnlistDistributedTransaction」

FlushCache

このメソッドは、接続を使用して取得されたREFオブジェクトから作成されたすべての更新および削除をフラッシュします。

宣言

// c#
public void FlushCache();

例外

InvalidOperationException - 指定された接続がオープンされていません。

備考

オブジェクトをフラッシュする前に、アプリケーションはOracleConnectionオブジェクト上でBeginTransactionメソッドを実行して明示的にトランザクションを開始する必要があります。これは、フラッシュされるオブジェクトがアプリケーションによりロックされていない場合は、オブジェクトに対して暗黙的に排他的ロックが取得されるためです。ロックが解除されるのは、トランザクションがコミットまたはロールバックする場合にかぎります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSchema

GetSchemaメソッドは、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

オーバーロード・リスト

- GetSchema()
このメソッドは、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

- GetSchema (string collectionName)
このメソッドは、コレクション名に指定された文字列を使用して、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

- GetSchema(string collectionName, string[] restrictions)
このメソッドは、コレクション名に指定された文字列および制限値に指定された文字列配列を使用して、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSchema()

このメソッドは、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

宣言

// ADO.NET 2.0: C#
public override DataTable GetSchema();

戻り値

DataTableオブジェクト。

例外

InvalidOperationException - 接続がクローズされています。

備考

このメソッドは、データベースから使用できる各メタデータ・コレクションの行を含むDataTableオブジェクトを戻します。

このメソッドは、GetSchema(String)メソッドを使用した場合、文字列値"MetaDataCollections"の指定と同じことです。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class GetSchemaSample
{
static void Main(string[] args)
{
string constr = "User Id=scott; Password=tiger; Data Source=oracle;";
string ProviderName = "Oracle.DataAccess.Client";

DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);

using (DbConnection conn = factory.CreateConnection())
{
try
{
conn.ConnectionString = constr;
conn.Open();

//Get all the schema collections and write to an XML file.
//The XML file name is Oracle.DataAccess.Client_Schema.xml
DataTable dtSchema = conn.GetSchema();
dtSchema.WriteXml(ProviderName + "_Schema.xml");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSchema(string collectionName)

このメソッドは、コレクション名に指定された文字列を使用して、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

宣言

// ADO.NET 2.0: C#
public override DataTable GetSchema (string collectionName);

パラメータ

collectionName

メタデータが要求したコレクションの名前。

戻り値

DataTableオブジェクト。

例外

ArgumentException - 要求されたコレクションが定義されていません。

InvalidOperationException - 接続がクローズされています。

InvalidOperationException - 要求されたコレクションは現行バージョンのOracle Databaseではサポートされていません。

InvalidOperationException - 要求されたコレクションに対して移入文字列が指定されていません。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class GetSchemaSample
{
static void Main(string[] args)
{
string constr = "User Id=scott; Password=tiger; Data Source=oracle;";
string ProviderName = "Oracle.DataAccess.Client";

DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);

using (DbConnection conn = factory.CreateConnection())
{
try
{
conn.ConnectionString = constr;
conn.Open();

//Get MetaDataCollections and write to an XML file.
//This is equivalent to GetSchema()
DataTable dtMetadata =
conn.GetSchema(DbMetaDataCollectionNames.MetaDataCollections);
dtMetadata.WriteXml(ProviderName + "_MetaDataCollections.xml");

//Get Restrictions and write to an XML file.
DataTable dtRestrictions =
conn.GetSchema(DbMetaDataCollectionNames.Restrictions);
dtRestrictions.WriteXml(ProviderName + "_Restrictions.xml");

//Get DataSourceInformation and write to an XML file.
DataTable dtDataSrcInfo =
conn.GetSchema(DbMetaDataCollectionNames.DataSourceInformation);
dtDataSrcInfo.WriteXml(ProviderName + "_DataSourceInformation.xml");

//data types and write to an XML file.
DataTable dtDataTypes =
conn.GetSchema(DbMetaDataCollectionNames.DataTypes);
dtDataTypes.WriteXml(ProviderName + "_DataTypes.xml");

//Get ReservedWords and write to an XML file.
DataTable dtReservedWords =
conn.GetSchema(DbMetaDataCollectionNames.ReservedWords);
dtReservedWords.WriteXml(ProviderName + "_ReservedWords.xml");

//Get all the tables and write to an XML file.
DataTable dtTables = conn.GetSchema("Tables");
dtTables.WriteXml(ProviderName + "_Tables.xml");

//Get all the views and write to an XML file.
DataTable dtViews = conn.GetSchema("Views");
dtViews.WriteXml(ProviderName + "_Views.xml");

//Get all the columns and write to an XML file.
DataTable dtColumns = conn.GetSchema("Columns");
dtColumns.WriteXml(ProviderName + "_Columns.xml");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSchema(string collectionName, string[] restrictions)

このメソッドは、コレクション名に指定された文字列および制限値に指定された文字列配列を使用して、OracleConnectionのデータ・ソースのスキーマ情報を戻します。

宣言

// ADO.NET 2.0: C#
public override DataTable GetSchema (string collectionName,
string[] restrictions);

パラメータ

- collectionName
取得されるメタデータのコレクション名。

- restrictions
取得されるメタデータに適用される制限の配列。

戻り値

DataTableオブジェクト。

例外

- ArgumentException - 要求されたコレクションが定義されていません。

- InvalidOperationException - 次の条件の1つが存在します。

- 接続がクローズされています。

- 要求されたコレクションは現行バージョンのOracle Databaseではサポートされていません。

- 要求されたコレクションがサポートしているよりも多くの制限が指定されています。

- 要求されたコレクションに対して移入文字列が指定されていません。

備考

このメソッドは、メタデータ・コレクションの名前と、戻されたDataTable内の行をフィルタする制限を指定する文字列値の配列を取得します。これは、指定された制限と一致する指定されたメタデータ・コレクションからの行のみが含まれるDataTableを戻します。

たとえば、Columnsコレクションに3つの制限(owner、tablenameおよびcolumnname)がある場合、スキーマにかかわらずEMP表に対するすべての列を取得するには、GetSchemaメソッドで最低でも値NullとEMPを渡す必要があります。

制限値が何も渡されない場合、その制限にはNullを渡すことと同じデフォルト値が使用されます。これは、パラメータ値に空の文字列を渡すこととは異なります。この場合、空の文字列("")は指定されたパラメータの値を考慮します。

collectionNameでは大文字小文字は区別されませんが、制限(文字列値)では区別されます。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class GetSchemaSample
{
static void Main(string[] args)
{
string constr = "User Id=scott; Password=tiger; Data Source=oracle;";
string ProviderName = "Oracle.DataAccess.Client";

DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);

using (DbConnection conn = factory.CreateConnection())
{
try
{
conn.ConnectionString = constr;
conn.Open();

//Get Restrictions
DataTable dtRestrictions =
conn.GetSchema(DbMetaDataCollectionNames.Restrictions);

DataView dv = dtRestrictions.DefaultView;

dv.RowFilter = "CollectionName = 'Columns'";
dv.Sort = "RestrictionNumber";

for (int i = 0; i < dv.Count; i++)
Console.WriteLine("{0} (default) {1}" ,
dtRestrictions.Rows[i]["RestrictionName"],
dtRestrictions.Rows[i]["RestrictionDefault"]);

//Set restriction string array
string[] restrictions = new string[3];

//Get all columns from all tables owned by "SCOTT"
restrictions[0] = "SCOTT";
DataTable dtAllScottCols = conn.GetSchema("Columns", restrictions);

// clear collection
for (int i = 0; i < 3; i++)
restrictions[i] = null;

//Get all columns from all tables named "EMP" owned by any
//owner/schema
restrictions[1] = "EMP";
DataTable dtAllEmpCols = conn.GetSchema("Columns", restrictions);

// clear collection
for (int i = 0; i < 3; i++)
restrictions[i] = null;

//Get columns named "EMPNO" from tables named "EMP",
//owned by any owner/schema
restrictions[1] = "EMP";
restrictions[2] = "EMPNO";
DataTable dtAllScottEmpCols = conn.GetSchema("Columns", restrictions);

// clear collection
for (int i = 0; i < 3; i++)
restrictions[i] = null;

//Get columns named "EMPNO" from all
//tables, owned by any owner/schema
restrictions[2] = "EMPNO";
DataTable dtAllEmpNoCols = conn.GetSchema("Columns", restrictions);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.Source);
}
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSessionInfo

GetSessionInfoは、セッションのグローバリゼーションの設定を表すOracleGlobalizationオブジェクトを戻すか、またはリフレッシュします。

オーバーロード・リスト:

- GetSessionInfo()
このメソッドは、セッションのグローバリゼーションの設定を表すOracleGlobalizationオブジェクトの新規インスタンスを戻します。

- GetSessionInfo(OracleGlobalization)
このメソッドは、セッションのグローバリゼーションの設定とともに指定されたOracleGlobalizationオブジェクトをリフレッシュします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSessionInfo()

このメソッドは、セッションのグローバリゼーションの設定を表すOracleGlobalizationオブジェクトの新規インスタンスを戻します。

宣言

// C#
public OracleGlobalization GetSessionInfo();

戻り値

新規に作成されたOracleGlobalizationオブジェクト

例

// C#

using System;
using Oracle.DataAccess.Client;

class GetSessionInfoSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Get session info from connection object
OracleGlobalization info = con.GetSessionInfo();

// Update session info
info.DateFormat = "YYYY-MM-DD";
con.SetSessionInfo(info);

// Execute SQL SELECT
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select TO_CHAR(hiredate) from emp";
Console.WriteLine("Hire Date ({0}): {1}",
info.DateFormat, cmd.ExecuteScalar());

// Clean up
cmd.Dispose();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

GetSessionInfo(OracleGlobalization)

このメソッドは、セッションのグローバリゼーションの設定とともに指定されたOracleGlobalizationオブジェクトをリフレッシュします。

宣言

// C#
public void GetSessionInfo(OracleGlobalization oraGlob);

パラメータ

- oraGlob
更新されるOracleGlobalizationオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

Open

このメソッドは、接続をOracle Databaseにオープンします。

宣言

// ADO.NET 2.0: C#
public overide void Open();

実装

IDbConnection

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - 接続がすでにオープンしているか、または接続文字列がNULLまたは空です。

備考

接続プーリングが有効な場合、接続がプールから取得されます。それ以外の場合は、新規接続が確立されます。

Open()メソッドが起動されたときに、プールに未処理の接続が含まれていない可能性があります。この場合、新規接続が確立されます。

指定した接続タイムアウト値内で有効な接続がない場合、Max Pool Sizeに達したときにOracleExceptionがスローされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OpenWithNewPassword

このメソッドは、新規パスワードで新規接続をオープンします。

宣言

// C#
public void OpenWithNewPassword(string newPassword);

パラメータ

- newPassword
新規パスワードを含む文字列

備考

このメソッドは、新規接続を確立するためにConnectionStringプロパティの設定を使用します。旧パスワードは、Password属性値として接続文字列に指定する必要があります。

このメソッドは、クローズ状態内のOracleConnectionにのみコールされます。

備考(.NETストアド・プロシージャ)

このメソッドは、コンテキスト接続用の.NETストアド・プロシージャではサポートされません

注意:
接続プーリングが有効な場合、OpenWithNewPasswordメソッドを呼び出すと接続プールがクリアされます。その結果、古いパスワードで作成されたアイドル接続はすべてクローズされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「パスワードの失効」

PurgeStatementCache

このメソッドは、文キャッシングが有効な場合、データベースでオープンしているすべてのカーソルをクローズして文キャッシュをフラッシュします

宣言

// C#
public void PurgeStatementCache();

備考

文キャッシュを繰り返しフラッシュするとパフォーマンスが低下し、文キャッシュを有効にすることによるパフォーマンス上の利点を相殺してしまうことがあります。

PurgeStatementCacheを呼び出した後、文キャッシングは有効なままです。

このメソッドを起動すると、OracleConnectionに関連付けられた、キャッシュされているカーソルがパージされます。データベース内にキャッシュされているすべてのカーソルがパージされるわけではありません。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class PurgeStatementCacheSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle;" +
"Statement Cache Size=20";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand("select * from emp", con);
cmd.CommandType = CommandType.Text;
OracleDataReader reader = cmd.ExecuteReader();

// Purge Statement Cache
con.PurgeStatementCache();

// Close and Dispose OracleConnection object
Console.WriteLine("Statement Cache Flushed");
con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「文キャッシング」

- ConnectionString

SetSessionInfo

このメソッドは、セッションのグローバリゼーションの設定を、OracleGlobalizationオブジェクトにより指定されたすべてのプロパティ値で変更します。

宣言

// C#
public void SetSessionInfo(OracleGlobalization oraGlob);

パラメータ

- oraGlob

OracleGlobalizationオブジェクト

備考

このメソッドのコールは、セッションにおけるALTER SESSION SQLのコールと同等です。

例

// C#

using System;
using Oracle.DataAccess.Client;

class SetSessionInfoSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Get session info from connection object
OracleGlobalization info = con.GetSessionInfo();

// Execute SQL SELECT
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select TO_CHAR(hiredate) from emp";
Console.WriteLine("Hire Date ({0}): {1}",
info.DateFormat, cmd.ExecuteScalar());

// Update session info
info.DateFormat = "MM-DD-RR";
con.SetSessionInfo(info);

// Execute SQL SELECT again
Console.WriteLine("Hire Date ({0}): {1}",
info.DateFormat, cmd.ExecuteScalar());

// Clean up
cmd.Dispose();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

OracleConnectionイベント

OracleConnectionイベントを、表5-28にリストします。

表5-28 OracleConnectionイベント

イベント名

説明

Disposed

System.ComponentModel.Componentからの継承

Failover

Oracleフェイルオーバーが発生するときにトリガーされるイベント

.NETストアド・プロシージャではサポートされません

HAEvent

HAイベントが発生したときにトリガーされるイベント。

InfoMessage

すべてのメッセージにトリガーされるイベントまたはデータベースにより送信される警告

StateChange

接続の状態が変更されたときにトリガーされるイベント

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

Failover

このイベントは、Oracleフェイルオーバーが発生するときにトリガーされるイベントです。

宣言

// C#
public event OracleFailoverEventHandler Failover;

イベント・データ

このイベント・ハンドラは、イベントに関する情報を含む次のプロパティを公開するOracleFailoverEventArgsオブジェクトを受信します。

- FailoverType
フェイルオーバーのタイプを示します。

- FailoverEvent
フェイルオーバーの状態を示します。

備考

Failoverイベントは、Oracleインスタンスへの接続が予期せずに切断されると発生します。クライアントはこのイベントをリスニングするためにOracleFailoverEventHandlerデリゲートを作成する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「OracleFailoverEventArgsプロパティ」

- 「OracleFailoverEventHandlerデリゲート」

HAEvent

このイベントは、HAイベントが発生したときにトリガーされます。

宣言

// C#
public static event OracleHAEventHandler HAEvent;

イベント・データ

このイベント・ハンドラは、イベントに関する情報を含む次のプロパティを公開するOracleHAEventArgsオブジェクトを受信します。

- Source
イベントのソースを示します。

- Status
イベントのステータスを示します。

- DatabaseName
このイベントの影響を受けるデータベース名を示します。

- DatabaseDomainName
このイベントの影響を受けるデータベース・ドメイン名を示します。

- HostName
このイベントの影響を受けるホスト名を示します。

- InstanceName
このイベントの影響を受けるインスタンス名を示します。

- ServiceName
このイベントの影響を受けるサービス名を示します。

- Time
イベントの時間を示します。

備考

HAEventは静的です。つまり、アプリケーション・ドメイン内で発生したすべてのHAイベントがこのイベントをトリガーできます。HAイベント通知を受信するためには、アプリケーションにおいて、アプリケーション・ドメイン内で接続を確立するOracleConnectionオブジェクトに"ha events=true"が指定されている必要があります。指定されていない場合、アプリケーションはHAイベントを受信しません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「OracleHAEventArgsプロパティ」

- 「OracleHAEventHandlerデリゲート」

InfoMessage

このイベントは、すべてのメッセージにトリガーされるかまたはデータベースにより警告が送信されます。

宣言

// C#
public event OracleInfoMessageEventHandler InfoMessage;

イベント・データ

このイベント・ハンドラは、イベントに関する情報を含む次のプロパティを公開するOracleInfoMessageEventArgsオブジェクトを受信します。

- Errors
データ・ソースにより生成されたエラーの収集

- Message
データ・ソースにより生成されたエラー・テキスト

- Source
エラーを生成するオブジェクトの名前

備考

データベースから警告およびメッセージに応答するには、クライアントはこのイベントをリスニングするためにOracleInfoMessageEventHandlerデリゲートを作成する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- 「OracleInfoMessageEventArgsプロパティ」

- 「OracleInfoMessageEventHandlerデリゲート」

StateChange

このイベントは、接続の状態が変更されたときにトリガーされます。

宣言

// ADO.NET 2.0: C#
public override event StateChangeEventHandler StateChange;

イベント・データ

このイベント・ハンドラは、イベントに関する情報を含む次のプロパティを公開するStateChangeEventArgsオブジェクトを受信します。

- CurrentState
接続の新しい状態

- OriginalState
接続の元の状態

備考

StateChangeイベントは接続が状態を変更した後に発生し、明示的にOpen、CloseまたはDisposeがコールされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー

- StateChangeEventHandlerの説明については、Microsoft ADO.NETのドキュメントを参照

OracleDataAdapterクラス

OracleDataAdapterオブジェクトは、DataSetを移入し、DataSetにおける変更をOracle Databaseに反映させるデータ・プロバイダ・オブジェクトを表します。

クラスの継承

System.Object

System.MarshalByRefObject

System.ComponentModel.Component

System.Data.Common.DataAdapter

System.Data.Common.DbDataAdapter (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleDataAdapter

宣言

// C#
public sealed class OracleDataAdapter : DbDataAdapter, IDbDataAdapter

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

次の例では、EMP表の更新にOracleDataAdapterおよびデータセットが使用されています。

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleDataAdapterSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
string cmdstr = "SELECT empno, sal from emp";

// Create the adapter with the selectCommand txt and the
// connection string
OracleDataAdapter adapter = new OracleDataAdapter(cmdstr, constr);

// Create the builder for the adapter to automatically generate
// the Command when needed
OracleCommandBuilder builder = new OracleCommandBuilder(adapter);

// Create and fill the DataSet using the EMP
DataSet dataset = new DataSet();
adapter.Fill(dataset, "EMP");

// Get the EMP table from the dataset
DataTable table = dataset.Tables["EMP"];

// Indicate DataColumn EMPNO is unique
// This is required by the OracleCommandBuilder to update the EMP table
table.Columns["EMPNO"].Unique = true;

// Get the first row from the EMP table
DataRow row = table.Rows[0];

// Update the salary
double sal = double.Parse(row["SAL"].ToString());
row["SAL"] = sal + .01;

// Now update the EMP using the adapter
// The OracleCommandBuilder will create the UpdateCommand for the
// adapter to update the EMP table
adapter.Update(dataset, "EMP");

Console.WriteLine("Row updated successfully");
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterメンバー

- OracleDataAdapterコンストラクタ

- OracleDataAdapter静的メソッド

- OracleDataAdapterプロパティ

- OracleDataAdapterパブリック・メソッド

- OracleDataAdapterイベント

OracleDataAdapterメンバー

OracleDataAdapterメンバーは、次の表にリストされています。

OracleDataAdapterコンストラクタ

OracleDataAdapterコンストラクタを、表5-29にリストします。

表5-29 OracleDataAdapterコンストラクタ

コンストラクタ

説明

OracleDataAdapterコンストラクタ

OracleDataAdapterクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleDataAdapter静的メソッド

OracleDataAdapter静的メソッドを、表5-30にリストします。

表5-30 OracleDataAdapter静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleDataAdapterプロパティ

OracleDataAdapterプロパティを、表5-31にリストします。

表5-31 OracleDataAdapterプロパティ

プロパティ

説明

AcceptChangesDuringFill

System.Data.Common.DataAdapterからの継承

Container

System.ComponentModel.Componentからの継承

ContinueUpdateOnError

System.Data.Common.DataAdapterからの継承

DeleteCommand

Oracle Databaseから行を削除する、SQL文またはストアド・プロシージャ

InsertCommand

Oracle Databaseに新しい行を挿入する、SQL文またはストアド・プロシージャ

MissingMappingAction

System.Data.Common.DataAdapterからの継承

MissingSchemaAction

System.Data.Common.DataAdapterからの継承

Requery

Fillへの次コールでSelectCommandが再実行されるかどうかを決定します

ReturnProviderSpecificTypes

FillメソッドがODP.NET固有の値、または.NET共通言語仕様の値のどちらを返すかを設定します。

SafeMapping

データを保存するため、.NETタイプに結果セット内の列名間のマッピングを作成します

SelectCommand

単一または複数の結果セットを戻すSQL文またはストアド・プロシージャ

Site

System.ComponentModel.Componentからの継承

TableMappings

System.Data.Common.DataAdapterからの継承

UpdateBatchSize

バッチ処理サポートを有効または無効にする値を指定します。また、データベースへの1度のラウンド・トリップ内で実行できるSQL文を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

UpdateCommand

DataSetからOracle Databaseへ行を更新するSQL文またはストアド・プロシージャ

OracleDataAdapterパブリック・メソッド

OracleDataAdapterパブリック・メソッドを、表5-32にリストします。

表5-32 OracleDataAdapterパブリック・メソッド

パブリック・メソッド

説明

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

System.ComponentModel.Componentからの継承

Equals

System.Objectからの継承(オーバーロード)

Fill

Oracle Database内のデータと一致させるため、DataSet内の行を追加またはリフレッシュします(オーバーロード)

FillSchema

System.Data.Common.DbDataAdapterからの継承

GetFillParameters

System.Data.Common.DbDataAdapterからの継承

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

ToString

System.Objectからの継承

Update

System.Data.Common.DbDataAdapterからの継承

OracleDataAdapterイベント

OracleDataAdapterイベントを、表5-33にリストします。

表5-33 OracleDataAdapterイベント

イベント名

説明

Disposed

System.ComponentModel.Componentからの継承

FillError

System.Data.Common.DbDataAdapterからの継承

RowUpdated

このイベントは、Update()メソッドによって行が更新された場合に発生します

RowUpdating

このイベントは、データベースに行データを更新するときに発生します

OracleDataAdapterコンストラクタ

OracleDataAdapterコンストラクタは、OracleDataAdapterクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleDataAdapter()
このコンストラクタは、OracleDataAdapterクラスのインスタンスを作成します。

- OracleDataAdapter(OracleCommand)
このコンストラクタは、SelectCommandとして指定されたOracleCommandでOracleDataAdapterクラスのインスタンスを作成します。

- OracleDataAdapter(string, OracleConnection)
このコンストラクタは、指定されたOracleConnectionオブジェクトおよびSelectCommandのコマンド・テキストで、OracleDataAdapterクラスのインスタンスを作成します。

- OracleDataAdapter(string, string)
このコンストラクタは、SelectCommandの指定された接続文字列およびコマンド・テキストで、OracleDataAdapterクラスのインスタンスを作成します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

OracleDataAdapter()

このコンストラクタは、OracleDataAdapterクラスのインスタンスを引数なしで作成します。

宣言

// C#
public OracleDataAdapter();

備考

初期値は、OracleDataAdapterプロパティに対して、次に示すように設定されています。

- MissingMappingAction = MissingMappingAction.Passthrough

- MissingSchemaAction = MissingSchemaAction.Add

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

OracleDataAdapter(OracleCommand)

このコンストラクタは、SelectCommandとして指定されたOracleCommandでOracleDataAdapterクラスのインスタンスを作成します。

宣言

// C#
public OracleDataAdapter(OracleCommand selectCommand);

パラメータ

- selectCommand
OracleCommandは、SelectCommandプロパティとてして設定されます。

備考

初期値は、OracleDataAdapterプロパティに対して、次に示すように設定されています。

- MissingMappingAction = MissingMappingAction.Passthrough

- MissingSchemaAction = MissingSchemaAction.Add

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

OracleDataAdapter(string, OracleConnection)

このコンストラクタは、指定されたOracleConnectionオブジェクトおよびSelectCommandのコマンド・テキストで、OracleDataAdapterクラスのインスタンスを作成します。

宣言

// C#
public OracleDataAdapter(string selectCommandText, OracleConnection
selectConnection);

パラメータ

- selectCommandText
この文字列は、OracleDataAdapterのSelectCommandプロパティのCommandTextとして設定されます。

- selectConnection
OracleConnectionは、Oracle Databaseへの接続に使用されます。

備考

OracleDataAdapterは、まだオープンしていない場合、接続をオープンおよびクローズします。接続がオープンしている場合は、明示的にクローズする必要があります。

初期値は、OracleDataAdapterプロパティに対して、次に示すように設定されています。

- MissingMappingAction = MissingMappingAction.Passthrough

- MissingSchemaAction = MissingSchemaAction.Add

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

OracleDataAdapter(string, string)

このコンストラクタは、SelectCommandの指定された接続文字列およびコマンド・テキストで、OracleDataAdapterクラスのインスタンスを作成します。

宣言

// C#
public OracleDataAdapter(string selectCommandText, string
selectConnectionString);

パラメータ

- selectCommandText
この文字列は、OracleDataAdapterのSelectCommandプロパティのCommandTextとして設定されます。

- selectConnectionString
接続文字列です。

備考

初期値は、OracleDataAdapterプロパティに対して、次に示すように設定されています。

- MissingMappingAction = MissingMappingAction.Passthrough

- MissingSchemaAction = MissingSchemaAction.Add

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

OracleDataAdapter静的メソッド

OracleDataAdapter静的メソッドを、表5-34にリストします。

表5-34 OracleDataAdapter静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

OracleDataAdapterプロパティ

OracleDataAdapterプロパティを、表5-35にリストします。

表5-35 OracleDataAdapterプロパティ

プロパティ

説明

AcceptChangesDuringFill

System.Data.Common.DataAdapterからの継承

Container

System.ComponentModel.Componentからの継承

ContinueUpdateOnError

System.Data.Common.DataAdapterからの継承

DeleteCommand

Oracle Databaseから行を削除する、SQL文またはストアド・プロシージャ

InsertCommand

Oracle Databaseに新しい行を挿入する、SQL文またはストアド・プロシージャ

MissingMappingAction

System.Data.Common.DataAdapterからの継承

MissingSchemaAction

System.Data.Common.DataAdapterからの継承

Requery

Fillへの次コールでSelectCommandが再実行されるかどうかを決定します

ReturnProviderSpecificTypes

FillメソッドがODP.NET固有の値、または.NET共通言語仕様の値のどちらを返すかを設定します。

SafeMapping

データを保存するため、.NETタイプに結果セット内の列名間のマッピングを作成します

SelectCommand

単一または複数の結果セットを戻すSQL文またはストアド・プロシージャ

Site

System.ComponentModel.Componentからの継承

TableMappings

System.Data.Common.DataAdapterからの継承

UpdateBatchSize

バッチ処理サポートを有効または無効にする値を指定します。また、データベースへの1度のラウンド・トリップ内で実行できるSQL文を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

UpdateCommand

DataSetからOracle Databaseへ行を更新するSQL文またはストアド・プロシージャ

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

DeleteCommand

このプロパティは、Oracle Databaseから行を削除するSQL文またはストアド・プロシージャです。

宣言

// C#
public OracleCommand DeleteCommand {get; set;}

プロパティ値

DataSet内の削除した行に対応するOracle Databaseの表から行を削除するため、Updateコール中に使用されるOracleCommand

備考

デフォルト = null

DataSet内に主キー情報があり、かつコマンドが指定されていない場合は、OracleCommandBuilderを使用してDeleteCommandが自動的に生成されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

InsertCommand

このプロパティは、Oracle Databaseに新しい行を挿入するSQL文またはストアド・プロシージャです。

宣言

// C#
public OracleCommand InsertCommand {get; set;}

プロパティ値

Updateコール中に使用されるOracleCommandは、DataSet内に追加された行に対応して、表に行を追加します。

備考

デフォルト = null

DataSet内に主キー情報があり、かつコマンドが指定されていない場合は、OracleCommandBuilderを使用してInsertCommandが自動的に生成されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

Requery

このプロパティは、Fillへの次コールでSelectCommandが再実行されるかどうかを決定します。

宣言

// C#
public Boolean Requery {get; set;}

プロパティ値

Fillへの次コールでSelectCommandが再実行される場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

ReturnProviderSpecificTypes

このプロパティは、FillメソッドがODP.NET固有の値、または.NET共通言語仕様の値のどちらを返すかを設定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

宣言

// C#
public Boolean ReturnProviderSpecificTypes {get; set;}

プロパティ値

FillメソッドがODP.NET固有の値を返すかどうかを示す値。値がfalseの場合は、Fillメソッドが.NET共通言語仕様に準拠した値を返すことを示します。デフォルトはfalseです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

SafeMapping

このプロパティでは、データを保存するため、DataSet内の列値を表す.NETタイプに、結果セット内の列名間のマッピングを作成します。

宣言

// C#
public Hashtable SafeMapping {get; set;}

プロパティ値

ハッシュ・テーブル

備考

デフォルト = null

次のタイプのデータを保存するため、必要に応じてSafeMappingプロパティが使用されます。

- DATE

- TimeStamp(すべてのTimeStampオブジェクトが対象)

- INTERVAL DAY TO SECOND

- NUMBER

例

詳細は、「OracleDataAdapter Safeタイプ・マッピング」の例を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapter Safeタイプ・マッピング」

SelectCommand

このプロパティは、単一または複数の結果セットを戻すSQL文またはストアド・プロシージャです。

宣言

// C#
public OracleCommand SelectCommand {get; set;}

プロパティ値

Fillコール中にOracleCommandを使用して、選択した行をDataSetに移入します。

備考

デフォルト = null

SelectCommandで戻される行がない場合は、データセットに表は追加されず、例外も発生しません。

SELECT文がVIEWから選択される場合、FillSchema()またはMissingSchemaAction.AddWithKeyのあるFill()が起動されるときに、キー情報は取得されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

UpdateBatchSize

このプロパティは、バッチ処理サポートを有効または無効にする値を指定します。また、データベースへの1度のラウンド・トリップ内で実行できるSQL文を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

宣言

// C#
public virtual int UpdateBatchSize {get; set;}

プロパティ値

バッチ・サイズを戻す整数。

例外

ArgumentOutOfRangeException - 値は数値<0に設定されています。

備考

大量のデータでバッチの更新を実行すると、"PLS-00123: Program too large"というエラーが発生する可能性があります。このエラーを回避するため、UpdateBatchSizeのサイズを縮小してより小さな値にします。

変更、追加または削除されているDataSet内の各行について、1つのSQL文がデータベースで実行されます。

値は次のとおりです。

- 値 = 0
データ・アダプタは、すべてのSQL文をデータベースへの1回のラウンド・トリップ内で実行します。

- 値 = 1 - デフォルト値
この値はバッチ更新を無効にし、SQL文を一度に実行します。

- n > 1、値 = n
データ・アダプタは、データベースへの1回のラウンド・トリップでn行のデータを更新します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「バッチ処理のサポート」

UpdateCommand

このプロパティは、DataSetからOracle Databaseへ、行を更新するSQL文またはストアド・プロシージャです。

宣言

// C#
public OracleCommand UpdateCommand {get; set;}

プロパティ値

Oracle Database内では、Updateコール中にOracleCommandを使用して行を更新します。更新行はDataSet内で更新された行に対応しています。

備考

デフォルト = null

DataSet内に主キー情報があり、このプロパティにコマンドが指定されていない場合は、OracleCommandBuilderが使用され、UpdateCommandが自動的に生成されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

OracleDataAdapterパブリック・メソッド

OracleDataAdapterパブリック・メソッドを、表5-36にリストします。

表5-36 OracleDataAdapterパブリック・メソッド

パブリック・メソッド

説明

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

System.ComponentModel.Componentからの継承

Equals

System.Objectからの継承(オーバーロード)

Fill

Oracle Database内のデータと一致させるため、DataSet内の行を追加またはリフレッシュします(オーバーロード)

FillSchema

System.Data.Common.DbDataAdapterからの継承

GetFillParameters

System.Data.Common.DbDataAdapterからの継承

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

ToString

System.Objectからの継承

Update

System.Data.Common.DbDataAdapterからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

Fill

Fillは、指定されたDataTableまたはDataSetを移入またはリフレッシュします。

オーバーロード・リスト:

- Fill(DataTable, OracleRefCursor)
このメソッドは、指定されたOracleRefCursorオブジェクトに行を一致させるために、指定されたDataTableに追加またはリフレッシュします。

- Fill(DataSet, OracleRefCursor)
このメソッドは、OracleRefCursorオブジェクトに行を一致させるために、指定されたDataSetに追加またはリフレッシュします。

- Fill(DataSet, string, OracleRefCursor)
このメソッドは、DataSetの指定されたソース・テーブルに行を追加またはリフレッシュして、指定されたOracleRefCursorオブジェクトに行を一致させます。

- Fill(DataSet, int, int, string, OracleRefCursor)
このメソッドは、DataSetに指定された範囲に行を追加またはリフレッシュして、指定されたOracleRefCursorオブジェクトに行を一致させます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

Fill(DataTable, OracleRefCursor)

このメソッドは、指定されたOracleRefCursorオブジェクトに行を一致させるために、指定されたDataTableに追加またはリフレッシュします。

宣言

// C#
public int Fill(DataTable dataTable, OracleRefCursor refCursor);

パラメータ

- dataTable
DataTableオブジェクトが移入されました。

- refCursor
OracleRefCursorから行が取り出されます。

戻り値

DataTableに行数が追加またはリフレッシュされました。

例外

ArgumentNullException - dataTableまたはrefCursorパラメータがNULLです。

InvalidOperationException - OracleRefCursorはすでにデータのフェッチに使用されました。

NotSupportedException - SafeMappingタイプはサポートされていません。

備考

スキーマまたは情報は、MissingSchemaAction.AddWithKeyに設定されたMissingSchemaActionでFillメソッドがコールされた場合、指定されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

Fill(DataSet, OracleRefCursor)

このメソッドは、OracleRefCursorオブジェクトに行を一致させるために、指定されたDataSetに追加またはリフレッシュします。

宣言

// C#
public int Fill(DataSet dataSet, OracleRefCursor refCursor);

パラメータ

- dataSet
DataSetオブジェクトが移入されました。

- refCursor
OracleRefCursorから行が取り出されます。

戻り値

DataSetに追加またはリフレッシュされた行数が戻されました。

例外

ArgumentNullException - dataSetまたはrefCursorパラメータがNULLです。

InvalidOperationException - OracleRefCursorはすでにデータのフェッチに使用されました。

InvalidOperationException - OracleRefCursorはデータをフェッチする準備ができています。

NotSupportedException - SafeMappingタイプはサポートされていません。

備考

リフレッシュするDataTableがない場合、Tableと命名された新しいDataTableが指定されたOracleRefCursorオブジェクトを使用して作成または移入されました。

スキーマまたは情報は、MissingSchemaAction.AddWithKeyに設定されたMissingSchemaActionでFillメソッドがコールされた場合、指定されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

Fill(DataSet, string, OracleRefCursor)

このメソッドは、DataSetの指定されたソース・テーブルに行を追加またはリフレッシュして、指定されたOracleRefCursorオブジェクトに行を一致させます。

宣言

// C#
public int Fill(DataSet dataSet, string srcTable, OracleRefCursor
refCursor);

パラメータ

- dataSet
DataSetオブジェクトが移入されました。

- srcTable
ソース・テーブルの名前は表のマッピングに使用されます。

- refCursor
OracleRefCursorから行が取り出されます。

戻り値

DataSetに追加またはリフレッシュされた行数を戻します。

例外

ArgumentNullException - dataSetまたはrefCursorパラメータがNULLです。

InvalidOperationException - OracleRefCursorはすでにデータのフェッチに使用されたか、またはソース・テーブル名が無効です。

NotSupportedException - SafeMappingタイプはサポートされていません。

備考

スキーマまたは情報は、MissingSchemaAction.AddWithKeyに設定されたMissingSchemaActionでFillメソッドがコールされた場合、指定されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

Fill(DataSet, int, int, string, OracleRefCursor)

このメソッドは、DataSetに指定された範囲に行を追加またはリフレッシュして、指定されたOracleRefCursorオブジェクトに行を一致させます。

宣言

// C#
public int Fill(DataSet dataSet, int startRecord, int maxRecords,
string srcTable, OracleRefCursor refCursor);

パラメータ

- dataSet
DataSetオブジェクトが移入されました。

- startRecord
開始するレコード番号です。

- maxRecords
取得するレコードの最大数です。

- srcTable
ソース・テーブルの名前は表のマッピングに使用されます。

- refCursor
OracleRefCursorから行が取り出されます。

戻り値

このメソッドは、DataSetに追加またはリフレッシュされた行数を戻します。これには、行を戻さない文の影響を受ける行は含まれません。

例外

ArgumentNullException - dataSetまたはrefCursorパラメータがNULLです。

InvalidOperationException - OracleRefCursorはすでにデータのフェッチに使用されたか、またはソース・テーブル名が無効です。

NotSupportedException - SafeMappingタイプはサポートされていません。

備考

スキーマまたは情報は、MissingSchemaAction.AddWithKeyに設定されたMissingSchemaActionでFillメソッドがコールされた場合、指定されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleDataAdapterのRequeryプロパティ」

OracleDataAdapterイベント

OracleDataAdapterイベントを、表5-37にリストします。

表5-37 OracleDataAdapterイベント

イベント名

説明

Disposed

System.ComponentModel.Componentからの継承

FillError

System.Data.Common.DbDataAdapterからの継承

RowUpdated

このイベントは、Update()メソッドによって行が更新された場合に発生します

RowUpdating

このイベントは、データベースに行データを更新するときに発生します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

RowUpdated

このイベントは、Update()メソッドで行が更新された場合に発生します。

宣言

// C#
public event OracleRowUpdatedEventHandler RowUpdated;

イベント・データ

イベント・ハンドラはOracleRowUpdatedEventArgsオブジェクトを受信し、イベントに関する情報を含む次のプロパティが、オブジェクトにより公開されます。

- Command
Update中に実行されたOracleCommand

- Errors(RowUpdatedEventArgsからの継承)
例外がある場合は、Update中に生成

- RecordsAffected(RowUpdatedEventArgsからの継承)
Commandの実行によって変更、挿入または削除された行数

- Row(RowUpdatedEventArgsからの継承)
Updateに対して送信されるDataRow

- StatementType(RowUpdatedEventArgsからの継承)
実行されたSQL文のタイプ

- Status(RowUpdatedEventArgsからの継承)
CommandのUpdateStatus

- TableMapping(RowUpdatedEventArgsからの継承)
Update中に使用されたDataTableMapping

例

次の例では、RowUpdatingイベントおよびRowUpdatedイベントの使用方法を示します。

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class RowUpdatedSample
{
// Event handler for RowUpdating event
protected static void OnRowUpdating(object sender,
OracleRowUpdatingEventArgs e)
{
Console.WriteLine("Row updating.....");
Console.WriteLine("Event arguments:");
Console.WriteLine("Command Text: " + e.Command.CommandText);
Console.WriteLine("Command Type: " + e.StatementType);
Console.WriteLine("Status: " + e.Status);
}

// Event handler for RowUpdated event
protected static void OnRowUpdated(object sender,
OracleRowUpdatedEventArgs e)
{
Console.WriteLine("Row updated.....");
Console.WriteLine("Event arguments:");
Console.WriteLine("Command Text: " + e.Command.CommandText);
Console.WriteLine("Command Type: " + e.StatementType);
Console.WriteLine("Status: " + e.Status);
}

static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
string cmdstr = "SELECT EMPNO, ENAME, SAL FROM EMP";

// Create the adapter with the selectCommand txt and the
// connection string
OracleDataAdapter adapter = new OracleDataAdapter(cmdstr, constr);

// Create the builder for the adapter to automatically generate
// the Command when needed
OracleCommandBuilder builder = new OracleCommandBuilder(adapter);

// Create and fill the DataSet using the EMP
DataSet dataset = new DataSet();
adapter.Fill(dataset, "EMP");

// Get the EMP table from the dataset
DataTable table = dataset.Tables["EMP"];

// Indicate DataColumn EMPNO is unique
// This is required by the OracleCommandBuilder to update the EMP table
table.Columns["EMPNO"].Unique = true;

// Get the first row from the EMP table
DataRow row = table.Rows[0];

// Update the salary
double sal = double.Parse(row["SAL"].ToString());
row["SAL"] = sal + .01;

// Set the event handlers for the RowUpdated and the RowUpdating event
// the OnRowUpdating() method will be triggered before the update, and
// the OnRowUpdated() method will be triggered after the update
adapter.RowUpdating += new OracleRowUpdatingEventHandler(OnRowUpdating);
adapter.RowUpdated += new OracleRowUpdatedEventHandler(OnRowUpdated);

// Now update the EMP using the adapter
// The OracleCommandBuilder will create the UpdateCommand for the
// adapter to update the EMP table
// The OnRowUpdating() and the OnRowUpdated() methods will be triggered
adapter.Update(dataset, "EMP");
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleRowUpdatedEventHandlerデリゲート」

RowUpdating

このイベントは、データベースに行データを更新するときに発生します。

宣言

// C#
public event OracleRowUpdatingEventHandler RowUpdating;

イベント・データ

イベント・ハンドラはOracleRowUpdatingEventArgsオブジェクトを受信し、イベントに関する情報を含む次のプロパティが、オブジェクトにより公開されます。

- Command
Update中に実行されたOracleCommand

- Errors(RowUpdatingEventArgsからの継承)
例外がある場合は、Update中に生成

- Row(RowUpdatingEventArgsからの継承)
Updateに対して送信されるDataRow

- StatementType(RowUpdatingEventArgsからの継承)
実行されたSQL文のタイプ

- Status(RowUpdatingEventArgsからの継承)
CommandのUpdateStatus

- TableMapping(RowUpdatingEventArgsからの継承)
Update中に使用されたDataTableMapping

例

RowUpdatedイベントの例では、RowUpdatingイベントの使用方法も表示されています。RowUpdatedイベントの「例」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataAdapterクラス

- OracleDataAdapterメンバー

- 「OracleRowUpdatingEventHandlerデリゲート」

OracleDatabaseクラス

OracleDatabaseオブジェクトは、Oracle Databaseインスタンスを表します。

クラスの継承

System.Object

Oracle.DataAccess.Client.OracleDatabase

宣言

// C#
public sealed class OracleDatabase : IDisposable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Client;

namespace Startup
{
class Test
{
static void Main()
{
OracleConnection con = null;
OracleDatabase db = null;
string constring = "dba privilege=sysdba;user id=scott;password=tiger;data source=oracle";

try
{
// Open a connection to see if the DB is up
con = new OracleConnection(constring);
con.Open();

Console.WriteLine("The Oracle database is already up.");
}
catch (OracleException ex)
{
// If the database is down, start up the DB
if (ex.Number == 1034)
{
Console.WriteLine("The Oracle database is down.");

// Create an instance of an OracleDatbase object
db = new OracleDatabase(constring);

// Start up the database
db.Startup();

Console.WriteLine("The Oracle database is now up.");

// Executing Startup() is the same as the following:
// db.Startup(OracleDBStartupMode.NoRestriction, null, true);
// which is also the same as:
// db.Startup(OracleDBStartupMode.NoRestriction, null, false);
// db.ExecuteNonQuery("ALTER DATABASE MOUNT");
// db.ExecuteNonQuery("ALTER DATABASE OPEN");

// Dispose the OracleDatabase object
db.Dispose();
}
else
{
Console.WriteLine("Error: " + ex.Message);
}
}
finally
{
// Dispose the OracleConnetion object
con.Dispose();
}
}
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseメンバー

- OracleDatabaseコンストラクタ

- OracleDatabaseプロパティ

- OracleDatabaseパブリック・メソッド

OracleDatabaseメンバー

次の表に、OracleDatabaseメンバーを示します。

OracleDatabaseコンストラクタ

OracleDatabaseコンストラクタを、表5-38にリストします。

表5-38 OracleDatabaseコンストラクタ

コンストラクタ

説明

OracleDatabaseコンストラクタ

指定された接続文字列を使用して、OracleDatabaseクラスの新規インスタンスをインスタンス化します。

OracleDatabaseプロパティ

OracleDatabaseプロパティを、表5-39にリストします。

表5-39 OracleDatabaseプロパティ

プロパティ

説明

ServerVersion

接続を作成するOracle Databaseインスタンスのデータベース・バージョン番号を指定します。

OracleDatabaseパブリック・メソッド

OracleDatabaseパブリック・メソッドを、表5-40にリストします。

表5-40 OracleDatabaseパブリック・メソッド

パブリック・メソッド

説明

ExecuteNonQuery

指定されたSELECT以外の文をデータベースに対して実行します。

Shutdown

データベースを停止します(オーバーロード)。

Startup

データベースを起動します(オーバーロード)。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

OracleDatabaseコンストラクタ

OracleDatabaseコンストラクタは、指定された接続文字列を使用してOracleDatabaseクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleDatabase(String connetionString);

パラメータ

- connectionString
接続情報は、Oracle Databaseインスタンスへの接続に使用されます。

備考

connectionStringの形式は、OracleConnectionオブジェクトで使用される形式と同じです。ただし、OracleDatabaseコンストラクタでは、user id、password、data sourceおよびdba privilege接続文字列属性のみが受け入れられます。その他の属性値は無視されます。指定されたconnectionStringには、SYSDBAまたはSYSOPERのいずれかに設定されたdba privilege接続文字列属性が含まれている必要があります。

OracleDatabaseオブジェクトによって作成時に接続が作成され、存続期間中保持されます。OracleDatabaseオブジェクトが処理されると、この接続は破棄されます。この接続は、別のOracleDatabaseオブジェクトでの使用を目的としてプールされることはありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

OracleDatabaseプロパティ

OracleDatabaseプロパティを、表5-41にリストします。

表5-41 OracleDatabaseプロパティ

プロパティ

説明

ServerVersion

接続を作成するOracle Databaseインスタンスのデータベース・バージョン番号を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

ServerVersion

このプロパティは、接続を作成するOracle Databaseインスタンスのデータベース・バージョン番号を戻します。

宣言

Public string ServerVersion {get;}

プロパティ値

Oracle Databaseインスタンスのデータベース・バージョンを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

OracleDatabaseパブリック・メソッド

OracleDatabaseパブリック・メソッドを、表5-42にリストします。

表5-42 OracleDatabaseパブリック・メソッド

パブリック・メソッド

説明

ExecuteNonQuery

指定されたSELECT以外の文をデータベースに対して実行します。

Shutdown

データベースを停止します(オーバーロード)。

Startup

データベースを起動します(オーバーロード)。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

ExecuteNonQuery

このメソッドでは、指定されたSELECT以外の文をデータベースに対して実行します。

宣言

// C#
public void ExecuteNonQuery(string sql);

例外

OracleException - コマンドの実行に失敗しました。

備考

このメソッドは、データベースのOPENやMOUNTを行うALTER DATABASE文などのDDL文を実行するためのものです。このメソッドを使用してSQL SELECT文を実行しないでください。このメソッドは、パラメータ・バインドをサポートしません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

Shutdown

Shutdownメソッドは、データベース・インスタンスを停止します。

オーバーロード・リスト

- Shutdown()
このメソッドはデータベースを停止します。

- Shutdown(OracleDBShutdownMode, bool)
このメソッドは、指定したモードでデータベースを停止します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

- 「OracleDBShutdownModeの列挙」

Shutdown()

このメソッドはデータベースを停止します。

宣言

// C#
public void Shutdown();

例外

OracleException - データベースの停止要求に失敗しました。

備考

このメソッドは、OracleDBShutdownMode.Defaultモードでデータベース・インスタンスを停止します。新規接続は拒否され、メソッドは既存の接続が終了するまで待ちます。

注意:
停止はOracleDBShutdownMode.Defaultモードで行われるため、OracleDatabaseオブジェクトで作成された接続以外にオープンな接続がある場合、停止要求は保留中のままになる可能性があります。

接続がクローズしたら、メソッドはOracleDBShutdownMode.Finalモードでデータベースをクローズおよびディスマウントし、インスタンスを停止します。

データベースがすでに適切にクローズ、ディスマウントまたは停止されている場合、このメソッドは例外をスローしません。その他のエラーが発生した場合、例外がスローされます。

Oracle Real Application Clusters(Oracle RAC)データベースに対してこのメソッドが呼び出されると、OracleDatabaseオブジェクトが接続されているデータベース・インスタンスのみが停止します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

- 「OracleDBShutdownModeの列挙」

Shutdown(OracleDBShutdownMode, bool)

このメソッドは、指定したモードでデータベース・インスタンスを停止します。

宣言

//C#
public void Shutdown(OracleDBShutdownMode shutdownMode, bool bCloseDismountAndFinalize);

パラメータ

- shutdownMode
OracleDBShutdownModeの列挙値。

- bCloseDismountAndFinalize
データベースをクローズ、ディスマウントおよびファイナライズするのかどうかを示すboolean。

例外

OracleException - データベースの停止要求に失敗しました。

備考

このメソッドは、指定したモードでデータベース・インスタンスを停止します。bCloseDismountAndFinalizeパラメータがtrueである場合、メソッドはOracleDBShutdownMode.Finalモードでデータベースをクローズおよびディスマウントし、インスタンスを停止します。

bCloseDismountAndFinalizeパラメータがtrueで、データベースがすでに適切にクローズ、ディスマウントまたは停止されている場合、このメソッドは例外をスローしません。その他のエラーが発生した場合、例外がスローされます。

bCloseDismountAndFinalizeパラメータがfalseである場合、アプリケーションで明示的にデータベースをクローズおよびディスマウントする必要があります。これを行うことで、OracleDBShutdownMode.Finalモードでメソッドを再度呼び出して適切にデータベースを停止できるようになります。たとえば、dbがOracleDatabaseクラスのインスタンスである場合、アプリケーションでは次が呼び出されます。

1. db.Shutdown(OracleDBShutdownMode.Default, false);

2. db.ExecuteNonQuery("ALTER DATABASE CLOSE NORMAL");

3. db.ExecuteNonQuery("ALTER DATABASE DISMOUNT");

4. db.Shutdown(OracleDBShutdownMode.Final);

注意:

- 最初にメソッドを呼び出すときに、shutdownModeとしてOracleDBShutdownMode.Final列挙値を使用しないでください。データベースがすでにクローズおよびディスマウントされている場合にのみOracleDBShutdownMode.Finalモードを使用してください。それ以外の場合、メソッドは無期限に待機する可能性があります。

- 指定したshutdownModeがOracleDBShutdownMode.Finalである場合、データベースがクローズおよびディスマウントされている必要があるため、bCloseDismountAndFinalize入力パラメータの値は無視されます。

指定したshutdownModeがOracleDBShutdownMode.Abortである場合、Abortモードではデータベースがクローズ、ディスマウントおよびファイナライズされている必要があるため、bCloseDismountAndFinalize入力パラメータの値は無視されます。

Oracle Real Application Clusters(Oracle RAC)データベースに対してこのメソッドが呼び出されると、OracleDatabaseオブジェクトが接続されているデータベース・インスタンスのみが停止します。

例

using System;
using Oracle.DataAccess.Client;

namespace Shutdown
{
class Test
{
static void Main()
{
OracleConnection con = null;
OracleDatabase db = null;
string constring = "user id=scott;password=tiger;data source=oracle;" +
"pooling=false;dba privilege=sysdba";

try
{
// Open a connection to see if the DB is up;
con = new OracleConnection(constring);
con.Open();

Console.WriteLine("The Oracle database is currently up.");

// If open succeeds, we know that the database is up.
// We have to dispose the connection so that we can
//   shutdown the database.
con.Dispose();

// Shutdown the database
db = new OracleDatabase(constring);
db.Shutdown();

Console.WriteLine("The Oracle database is shut down.");

// Executing Shutdown() above is the same as the following:
// db.Shutdown(OracleDBShutdownMode.Default, false);
// db.ExecuteNonQuery("ALTER DATABASE CLOSE NORMAL");
// db.ExecuteNonQuery("ALTER DATABASE DISMOUNT");
// db.Shutdown(OracleDBShutdownMode.Final);

// Dispose the OracleDatabase object
db.Dispose();
}
catch (OracleException ex)
{
Console.WriteLine("An error has occurred: {0}", ex.Message);
}
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

- 「OracleDBShutdownModeの列挙」

Startup

Startupメソッドは、データベース管理者権限を持つユーザーがデータベース・インスタンスを起動できるようにします。

オーバーロード・リスト

- Startup()
このメソッドは、サーバー側パラメータ・ファイルを使用してデータベース・インスタンスを起動します。

- Startup(OracleDBStartupMode, string, bool)
このメソッドは、クライアント側パラメータ・ファイルを使用してデータベース・インスタンスを起動します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

- 「OracleDBStartupModeの列挙」

Startup()

このメソッドはデータベースを起動します。

宣言

// C#
public void Startup();

例外

OracleException - データベースの起動要求に失敗しました。

備考

このメソッドは、サーバー側パラメータ・ファイル(spfile)を使用して、OracleDbStartupMode.Normalモードでデータベース・インスタンスを起動します。データベースが正常に起動したら、このメソッドはALTER DATABASE MOUNTおよびALTER DATABASE OPEN文も実行します。

データベースがすでに適切にマウント、オープンまたは起動されている場合、このメソッドは例外をスローしません。その他のエラーが発生した場合、例外がスローされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

- 「OracleDBStartupModeの列挙」

Startup(OracleDBStartupMode, string, bool)

このメソッドは、指定した起動モードでデータベースを起動します。

宣言

// C#
public void Startup(OracleDbStartupMode startupMode, string pfile, bool bMountAndOpen);

パラメータ

- startupMode
OracleDBStartupModeの列挙値。

- pfile
クライアント側パラメータ・ファイルの場所と名前。例: c:\\\admin\\init.ora

パラメータ・ファイルの名前は、オペレーティング・システムによって異なります。たとえば、この名前に小文字のみが使用されたり、大/小文字の両方が使用されたりします。また、論理名や名前init.oraのバリエーションが含まれる場合もあります。通常、デフォルトの場所はORACLE_HOME/dbsまたはORACLE_HOME\databaseです。

- bMountAndOpen
データベースをマウントしてオープンするかどうかを示すtrue/falseの値。

例外

OracleException - データベースの起動要求に失敗しました。

備考

このメソッドは、指定したクライアント側パラメータ・ファイルを使用して、指定したモードでデータベース・インスタンスを起動します。データベースが正常に起動し、bMountAndOpen入力パラメータがtrueである場合、このメソッドはALTER DATABASE MOUNTおよびALTER DATABASE OPEN文も実行します。

bMountAndOpenがtrueになっていて、データベースがすでに適切にマウント、オープンまたは起動されている場合、このメソッドは例外をスローしません。その他のエラーが発生した場合、例外がスローされます。

bMountAndOpenがfalseである場合、アプリケーションによってデータベースを明示的にマウントしてオープンする必要があります。たとえば、dbがOracleDatabaseクラスのインスタンスである場合、アプリケーションでは次が呼び出されます。

1. db.Startup(OracleDBStartupMode.NoRestriction, null, false);

2. db.ExecuteNonQuery("ALTER DATABASE MOUNT");

3. db.ExecuteNonQuery("ALTER DATABASE OPEN");

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDatabaseクラス

- OracleDatabaseメンバー

- 「OracleDBStartupModeの列挙」

OracleDataReaderクラス

OracleDataReaderオブジェクトは、順方向専用および読取り専用のメモリー内結果セットを表します。

DataSetと異なり、OracleDataReaderオブジェクトは接続されたままであり、一度に1行ずつフェッチします。

次の項に、関連情報が記載されています。

- 「LONGおよびLONG RAWデータの取得」

- 「OracleDataReaderオブジェクトからのデータの取得」

クラスの継承

System.Object

System.MarshalByRefObject

System.Data.Common.DataReader

System.Data.Common.DbDataReader (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleDataReader

宣言

// ADO.NET 2.0: C#
public sealed class OracleDataReader : DbDataReader, IEnumerable,
IDataReader, IDisposable, IDataRecord

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleDataReaderインスタンスは、OracleCommandオブジェクトのExecuteReaderメソッドへのコールにより構成されます。DataReaderのクローズ後または処理後にアクセスできるプロパティは、IsClosedおよびRecordsAffectedのみです。

オープン・データベース・カーソルの数を最小限にするには、OracleDataReaderオブジェクトを明示的に処理する必要があります。

例

次のOracleDataReaderの例では、EMP表からデータが取得されます。

/* Database Setup, if you have not done so yet.
connect scott/tiger@oracle
CREATE TABLE empInfo (
empno NUMBER(4) PRIMARY KEY,
empName VARCHAR2(20) NOT NULL,
hiredate DATE,
salary NUMBER(7,2),
jobDescription Clob,
byteCodes BLOB
);

Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(1,'KING','SOFTWARE ENGR', '5657');
Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(2,'SCOTT','MANAGER', '5960');
commit;

*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleDataReaderSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

string cmdstr = "SELECT * FROM EMPINFO";
OracleConnection connection = new OracleConnection(constr);
OracleCommand cmd = new OracleCommand(cmdstr, con);

OracleDataReader reader = cmd.ExecuteReader();

// Declare the variables to retrieve the data in EmpInfo
short empNo;
string empName;
DateTime hireDate;
double salary;
string jobDesc;
byte[] byteCodes = new byte[10];

// Read the next row until end of row
while (reader.Read())
{
empNo = reader.GetInt16(0);
Console.WriteLine("Employee number: " + empNo);
empName = reader.GetString(1);
Console.WriteLine("Employee name: " + empName);

// The following columns can have NULL value, so it
//   is important to call IsDBNull before getting the column data
if (!reader.IsDBNull(2))
{
hireDate = reader.GetDateTime(2);
Console.WriteLine("Hire date: " + hireDate);
}

if (!reader.IsDBNull(3))
{
salary = reader.GetDouble(3);
Console.WriteLine("Salary: " + salary);
}

if (!reader.IsDBNull(4))
{
jobDesc = reader.GetString(4);
Console.WriteLine("Job Description: " + jobDesc);
}

if (!reader.IsDBNull(5))
{
long len = reader.GetBytes(5, 0, byteCodes, 0, 10);

Console.Write("Byte codes: ");
for (int i = 0; i < len; i++)
Console.Write(byteCodes[i].ToString("x"));

Console.WriteLine();
}

Console.WriteLine();
}

// Clean up
reader.Dispose();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderメンバー

- OracleDataReader静的メソッド

- OracleDataReaderプロパティ

- OracleDataReaderパブリック・メソッド

- OracleDataReader SchemaTable

OracleDataReaderメンバー

OracleDataReaderメンバーは、次の表にリストされています。

OracleDataReader静的メソッド

OracleDataReader静的メソッドを、表5-43にリストします。

表5-43 OracleDataReader静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleDataReaderプロパティ

OracleDataReaderプロパティを、表5-44にリストします。

表5-44 OracleDataReaderプロパティ

プロパティ

説明

Depth

現在の行に対するネスティングの深さを示す値を取得します

FetchSize

OracleDataReaderの内部キャッシュのサイズを指定します

FieldCount

結果セット内の列数を取得します

HasRows

OracleDataReaderに1つ以上の行があるかどうかを示します

HiddenFieldCount

非表示のOracleDataReader内のフィールド数が取得されます

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

IsClosed

データ・リーダーがクローズされているかどうかを示します

Item

列値を取得します(オーバーロード)

InitialLOBFetchSize

LOB列についてOracleDataReaderが最初にフェッチする量を指定します

InitialLONGFetchSize

OracleDataReaderがLONGおよびLONG RAW列に対して最初にフェッチする量を指定します

RecordsAffected

SQL文の実行によって変更、挿入または削除された行数を取得します

RowSize

OracleDataReader内部キャッシュが1行のデータを格納するために必要なメモリー量を取得します。

VisibleFieldCount

非表示ではないOracleDataReader内のフィールド数が取得されます

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

OracleDataReaderパブリック・メソッド

OracleDataReaderパブリック・メソッドを、表5-45にリストします。

表5-45 OracleDataReaderパブリック・メソッド

パブリック・メソッド

説明

Close

OracleDataReaderをクローズします

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

オブジェクトにより割り当てられたリソースまたはメモリーを解除します

Equals

System.Objectからの継承(オーバーロード)

GetBoolean

サポート対象外

GetByte

指定された列のバイト値を戻します

GetBytes

列の指定されたオフセット(バイト表示)から、最高の場合最大バイト数を使用して、指定されたバイト配列を移入します

GetChar

サポート対象外

GetChars

列の指定されたオフセット(文字)から、最高の場合最大文字数を使用して、指定された文字配列を移入します

GetData

サポート対象外

GetDataTypeName

指定された列のODP.NETタイプ名を戻します

GetDateTime

指定された列のDateTime値を戻します

GetDecimal

指定されたNUMBER列のdecimal値を戻します

GetDouble

指定されたNUMBER列またはBINARY_DOUBLE列のdouble値を戻します

GetEnumerator

コレクションから反復するのに使用できるIEnumeratorが戻されます。

GetFieldType

指定された列のTypeを戻します

GetFloat

指定されたNUMBER列またはBINARY_FLOAT列のfloat値を戻します

GetGuid

サポート対象外

GetHashCode

System.Objectからの継承

GetInt16

指定されたNUMBER列のInt16値を戻します

GetInt32

指定されたNUMBER列のInt32値を戻します

GetInt64

指定されたNUMBER列のInt64値を戻します

GetLifetimeService

System.MarshalByRefObjectによる継承

GetName

指定された列名を戻します

GetOracleBFile

指定されたBFILE列のOracleBFileオブジェクトを戻します

GetOracleBinary

指定された列のOracleBinary構造を戻します

GetOracleBlob

指定されたBLOB列のOracleBlobオブジェクトを戻します

GetOracleBlobForUpdate

指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します

GetOracleClob

指定されたCLOB列のOracleClobオブジェクトを戻します

GetOracleClobForUpdate

指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します

GetOracleDate

指定されたDATE列のOracleDate構造を戻します

GetOracleDecimal

指定されたNUMBER列のOracleDecimal構造を戻します

GetOracleIntervalDS

指定されたINTERVAL DAY TO SECOND列のOracleIntervalDS構造を戻します

GetOracleIntervalYM

指定されたINTERVAL YEAR TO MONTH列のOracleIntervalYM構造を戻します

GetOracleRef

指定されたREF列のOracleRefオブジェクトを戻します

GetOracleString

指定された列のOracleString構造を戻します

GetOracleTimeStamp

Oracle TimeStamp列のOracleTimeStamp構造を戻します

GetOracleTimeStampLTZ

指定されたOracle TimeStamp WITH LOCAL TIME ZONE列のOracleTimeStampLTZ構造を戻します

GetOracleTimeStampTZ

指定されたOracle TimeStamp WITH TIME ZONE列のOracleTimeStampTZ構造を戻します

GetOracleXmlType

指定されたXMLType列のOracleXmlTypeオブジェクトを戻します

GetOracleValue

指定された列値をODP.NETタイプとして戻します

GetOracleValues

すべての列値をODP.NETタイプとして取得します

GetOrdinal

指定された列名の0ベースの序数(または索引)を戻します

GetProviderSpecificFieldType

指定された列のプロバイダ固有のタイプを戻します

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetProviderSpecificValue

指定した序数の基礎となるプロバイダ固有の値を表すオブジェクトを戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetProviderSpecificValues

基礎となるプロバイダ固有の値を表すオブジェクトの配列を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetSchemaTable

OracleDataReaderの列メタデータを記述するDataTableを戻します

GetString

指定された列の文字列値を戻します

GetTimeSpan

指定されたINTERVAL DAY TO SECOND列のTimeSpan値を戻します

GetType

System.Objectクラスからの継承

GetValue

列値を.NETタイプとして戻します

GetValues

すべての列値を.NETタイプとして取得します

GetXmlReader

XMLType列の値を.NET XmlTextReaderのインスタンスとして戻します

IsDBNull

列値がNULLかどうかを示します

NextResult

結果の読取り中にデータ・リーダーを次の結果セットに拡張します

Read

結果セットで次の行を読み取ります

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

OracleDataReader静的メソッド

OracleDataReader静的メソッドを、表5-46にリストします。

表5-46 OracleDataReader静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

OracleDataReaderプロパティ

OracleDataReaderプロパティを、表5-47にリストします。

表5-47 OracleDataReaderプロパティ

プロパティ

説明

Depth

現在の行に対するネスティングの深さを示す値を取得します

FetchSize

OracleDataReaderの内部キャッシュのサイズを指定します

FieldCount

結果セット内の列数を取得します

HasRows

OracleDataReaderに1つ以上の行があるかどうかを示します

HiddenFieldCount

非表示のOracleDataReader内のフィールド数が取得されます

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

IsClosed

データ・リーダーがクローズされているかどうかを示します

Item

列値を取得します(オーバーロード)

InitialLOBFetchSize

LOB列についてOracleDataReaderが最初にフェッチする量を指定します

InitialLONGFetchSize

OracleDataReaderがLONGおよびLONG RAW列に対して最初にフェッチする量を指定します

RecordsAffected

SQL文の実行によって変更、挿入または削除された行数を取得します

RowSize

OracleDataReader内部キャッシュが1行のデータを格納するために必要なメモリー量を取得します

VisibleFieldCount

非表示ではないOracleDataReader内のフィールド数が取得されます

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Depth

このプロパティでは、現在の行に対するネスティングの深さを示す値を取得します。

宣言

// ADO.NET 2.0: C#
public override int Depth {get;}

プロパティ値

現在の行に対するネスティングの深さ

実装

IDataReader

例外

InvalidOperationException - リーダーがクローズされています。

備考

デフォルト = 0

Oracleではネスティングがサポートされていないため、このプロパティは常にゼロを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

FetchSize

このプロパティは、OracleDataReaderの内部キャッシュのサイズを指定します。

宣言

// C#
public long FetchSize {get; set;}

プロパティ値

OracleDataReaderが内部キャッシュに使用するメモリーの量(バイト表示)を指定するlong

例外

ArgumentException - 指定したFetchSize値は無効です。

備考

デフォルト = OracleCommandのFetchSizeプロパティ値。

FetchSizeプロパティは、結果セットを戻すコマンドを実行して作成したOracleDataReaderにより、継承されます。OracleDataReaderオブジェクト上のFetchSizeプロパティにより、データベース・ラウンドトリップごとの内部キャッシュにフェッチされるデータ量が決定されます。

RowSizeおよびFetchSizeプロパティは、他のスカラー・データ型とは異なる方法でUDTおよびXMLTypeデータを処理します。ODP.NETの内部キャッシュにはUDTおよびXMLTypeデータへの参照のみが格納されているため、RowSizeプロパティはUDTおよびXMLTypeデータの実際のサイズではなく、参照に必要なメモリー(非常に少量)のみを算定します。その結果、アプリケーションは1回のデータベース・ラウンドトリップで多数のUDTまたはXMLTypeインスタンスをデータベースからフェッチしてしまう可能性があります。これは、UDTおよびXMLTypeデータの実際のサイズがFetchSizeに対するものではなく、デフォルトのキャッシュ・サイズである 131072バイトを満たすには非常に多くのUDTおよびXMLType参照が必要となるためです。したがって、UDTまたはXMLTypeデータをフェッチする際には、フェッチする実際のUDTおよびXMLTypeデータの総量ではなく、対象UDTおよびXMLTypeインスタンスの数を制御するよう、FetchSizeプロパティを適切に構成する必要があります。

注意: LOBおよびLONGデータ型の場合、選択リストの各LOBのキャッシュによって保持されたメタデータおよび参照情報に加えて、InitialLOBFetchSizeおよびInitialLONGFetchSizeプロパティで指定されたサイズのみがRowSizeプロパティによって算定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- OracleDataReaderの「RowSize」

- OracleCommandの「ExecuteReader()」

- OracleCommandの「RowSize」

FieldCount

このプロパティでは、結果セット内の列数を戻します。

宣言

// ADO.NET 2.0: C#
public override int FieldCount {get;}

プロパティ値

列が存在する場合は結果セット内の列数、それ以外は0

実装

IDataRecord

例外

InvalidOperationException - リーダーがクローズされています。

備考

デフォルト = 0

このプロパティには、結果セットを戻さない問合せに対する0の値が含まれています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

HasRows

このプロパティは、OracleDataReaderに1つ以上の行があるかどうかを示します。

宣言

// ADO.NET 2.0: C#
public override bool HasRows {get;}

戻り値

bool

備考

HasRowsは、OracleDataReaderに行が含まれているかどうかを示します

HasRowsの値が行の位置に基づいて変わることはありません。たとえば、アプリケーションで結果セットから行をすべて読み取り、次のReadメソッドの起動によりFalseが戻される場合でも、結果セットが最初から空であったわけではないので、HasRowsプロパティはTrueを戻します。

OracleDataReaderオブジェクトの作成後にHasRowsプロパティが初めてアクセスされたときに、行がフェッチされ、OracleDataReaderが空かどうかが判断されます。

例

// C#

using System;
using Oracle.DataAccess.Client;

class HasRowsSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand(
"select * from emp where empno = 9999", con);

OracleDataReader reader = cmd.ExecuteReader();

if (!reader.HasRows)
Console.WriteLine("The result set is empty.");
else
Console.WriteLine("The result set is not empty.");

con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- このMicrosoft .NET Framework 1.1機能の詳細は、http://msdn.microsoft.com/libraryを参照

HiddenFieldCount

このプロパティでは、非表示のOracleDataReader内のフィールド数が取得されます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

宣言

// C#
public int HiddenFieldcount { get; }

プロパティ値

非表示のOracleDataReader内のフィールド数が取得されます。

例外

InvalidOperationException - リーダーがクローズされています。

備考

OracleDataReader.FieldCountおよびOracleDataReader.VisibleFieldCountでは、表示できるフィールド・カウントが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「VisibleFieldCount」

- 「FieldCount」

IsClosed

このプロパティは、データ・リーダーがクローズされているかどうかを示します。

宣言

// ADO.NET 2.0: C#
public override bool IsClosed {get;}

プロパティ値

OracleDataReaderがクローズの状態にある場合はtrueを戻し、それ以外の場合はfalseを戻します。

実装

IDataReader

備考

デフォルト = true

OracleDataReaderのクローズ後にアクセス可能なプロパティは、IsClosedおよびRecordsAffectedのみです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Item

このプロパティでは、.NETデータ型で列の値を取得します。

オーバーロード・リスト:

- Item [index]
このプロパティでは、列索引で指定された列の.NET Valueを取得します。

- Item[string]
このプロパティでは、列名で指定された列の.NET Valueを取得します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Item [index]

このプロパティでは、列索引で指定された列の.NET Valueを取得します。

宣言

// ADO.NET 2.0: C#
public override object this[int index] {get;}

パラメータ

- index
ゼロベースの列の索引

プロパティ値

指定された列の.NET値

実装

IDataRecord

備考

デフォルト = 適用不可

C#では、このプロパティでこのクラスの索引付けをします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Item [string]

このプロパティでは、列名で指定された列の.NET Valueを取得します。

宣言

// ADO.NET 2.0: C#
public override object this[string columnName] {get;}

パラメータ

- columnName
列の名前です。

プロパティ値

指定された列の.NET Value

実装

IDataRecord

備考

デフォルト = 適用不可

指定された列を列名で特定するには、大/小文字を区別して検索します。これで特定できない場合は、大/小文字を区別せずに検索します。

C#では、このプロパティでこのクラスの索引付けをします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

InitialLOBFetchSize

このプロパティは、OracleDataReaderがLOB列に対して最初にフェッチする量を指定します。

宣言

// C#
public int InitialLOBFetchSize {get;}

プロパティ値

取り出すチャンクのサイズです。

例外

InvalidOperationException - リーダーがクローズされています。

備考

Oracle Database 10gリリース2(10.2)以上では、InitialLOBFetchSizeに対してサポートされている最大値は2GBです。

Oracle Database 10gリリース2(10.2)以前のリリースの場合、InitialLOBFetchSizeに対してサポートされている最大値は32KBです。

デフォルトはOracleCommand.InitialLOBFetchSizeであり、これからこの値が継承されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- OracleCommand.InitialLOBFetchSizeの詳細は、「InitialLOBFetchSize」を参照

- 「LOBデータの取得」

InitialLONGFetchSize

このプロパティでは、OracleDataReaderがLONGおよびLONG RAW列に対して最初にフェッチする量を指定します。

宣言

// C#
public long InitialLONGFetchSize {get;}

プロパティ値

取り出すチャンクのサイズです。デフォルトは0です。

例外

InvalidOperationException - リーダーがクローズされています。

備考

InitialLONGFetchSizeに対してサポートされている最大値は32767です。このプロパティがそれより大きい値に設定されている場合は、プロバイダによって32767にリセットされます。

デフォルトはOracleCommand.InitialLONGFetchSizeであり、これからこの値が継承されます。

このプロパティは、OracleDataReaderに対して読取りのみです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- OracleCommand.InitialLONGFetchSizeの詳細は、「InitialLONGFetchSize」を参照

- 「LONGおよびLONG RAWデータの取得」

RecordsAffected

このプロパティでは、SQL文の実行によって変更、挿入または削除された行数を取得します。

宣言

// C#
public int RecordsAffected {get;}

プロパティ値

SQL文の実行により影響を受けた行数

実装

IDataReader

備考

デフォルト = 0

値-1がSELECT文に戻されます。

OracleDataReaderのクローズ後にアクセス可能なプロパティは、IsClosedおよびRecordsAffectedのみです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

RowSize

このプロパティは、OracleDataReaderの内部キャッシュが1行のデータを格納するために必要なメモリー量を取得します。

宣言

// C#
public long RowSize {get;}

プロパティ値

longは、OracleDataReaderが実行された問合せのデータ1行を格納するために必要とするメモリー量(バイト)を示します。

備考

OracleDataReaderオブジェクトが作成されると、RowSizeプロパティはゼロ以外の値に設定されます。このプロパティは、行数に基づいて設計時またはFetchSizeを設定する場合に、設計時または実行時に動的に使用できます。たとえば、OracleDataReaderオブジェクトを有効にして、データベース・ラウンドトリップごとにN行をフェッチするには、OracleDataReader FetchSizeプロパティをRowSize * Nに動的に設定できます。FetchSizeプロパティを適切に有効化するには、特定の結果セットに対してOracleDataReader.Read()を最初に起動する前に設定する必要があることに注意してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「FetchSize」

VisibleFieldCount

このプロパティでは、非表示ではないOracleDataReader内のフィールド数が取得されます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

宣言

// C#
public override int VisibleFieldcount { get; }

プロパティ値

非表示ではないフィールド数が取得されます。

例外

InvalidOperationException - リーダーがクローズされています。

備考

アプリケーションがOracleCommandオブジェクトのAddRowidプロパティをtrueに設定すると、アプリケーションはRowIdにアクセスできますが、これは表示可能なフィールドではありません。SELECT文リストにRowIdが追加されている場合は、このフィールドは表示可能です。OracleDataReader.VisibleFieldCountおよびOracleDataReader.FieldCountは、必ず同じ値を持っています。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class VisibleFieldCountSample
{
static void Main(string[] args)
{
string constr = "User Id=scott; Password=tiger; Data Source=oracle;";
DbProviderFactory factory =
DbProviderFactories.GetFactory("Oracle.DataAccess.Client");

using (DbConnection conn = factory.CreateConnection())
{
conn.ConnectionString = constr;
try
{
conn.Open();
OracleCommand cmd = (OracleCommand)factory.CreateCommand();
cmd.Connection = (OracleConnection)conn;

//to gain access to ROWIDs of the table
cmd.AddRowid = true;
cmd.CommandText = "select empno, ename from emp;";

OracleDataReader reader = cmd.ExecuteReader();

int visFC = reader.VisibleFieldCount; //Results in 2
int hidFC = reader.HiddenFieldCount;  // Results in 1

Console.Write("Visible field count: " + visFC);
Console.Write("Hidden field count: " + hidFC);

reader.Dispose();
cmd.Dispose();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「VisibleFieldCount」

- 「FieldCount」

OracleDataReaderパブリック・メソッド

OracleDataReaderパブリック・メソッドを、表5-48にリストします。

表5-48 OracleDataReaderパブリック・メソッド

パブリック・メソッド

説明

Close

OracleDataReaderをクローズします

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

オブジェクトにより割り当てられたリソースまたはメモリーを解除します

Equals

System.Objectからの継承(オーバーロード)

GetBoolean

サポート対象外

GetByte

指定された列のバイト値を戻します

GetBytes

列の指定されたオフセット(バイト表示)から、最高の場合最大バイト数を使用して、指定されたバイト配列を移入します

GetChar

サポート対象外

GetChars

列の指定されたオフセット(文字)から、最高の場合最大文字数を使用して、指定された文字配列を移入します

GetData

サポート対象外

GetDataTypeName

指定された列のODP.NETタイプ名を戻します

GetDateTime

指定された列のDateTime値を戻します

GetDecimal

指定されたNUMBER列のdecimal値を戻します

GetDouble

指定されたNUMBER列またはBINARY_DOUBLE列のdouble値を戻します

GetEnumerator

コレクションから反復するのに使用できるIEnumeratorが戻されます。

GetFieldType

指定された列のTypeを戻します

GetFloat

指定されたNUMBER列またはBINARY_FLOAT列のfloat値を戻します

GetGuid

サポート対象外

GetHashCode

System.Objectからの継承

GetInt16

指定されたNUMBER列のInt16値を戻します

GetInt32

指定されたNUMBER列のInt32値を戻します

GetInt64

指定されたNUMBER列のInt64値を戻します

GetLifetimeService

System.MarshalByRefObjectによる継承

GetName

指定された列名を戻します

GetOracleBFile

指定されたBFILE列のOracleBFileオブジェクトを戻します

GetOracleBinary

指定された列のOracleBinary構造を戻します

GetOracleBlob

指定されたBLOB列のOracleBlobオブジェクトを戻します

GetOracleBlobForUpdate

指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します

GetOracleClob

指定されたCLOB列のOracleClobオブジェクトを戻します

GetOracleClobForUpdate

指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します

GetOracleDate

指定されたDATE列のOracleDate構造を戻します

GetOracleDecimal

指定されたNUMBER列のOracleDecimal構造を戻します

GetOracleIntervalDS

指定されたINTERVAL DAY TO SECOND列のOracleIntervalDS構造を戻します

GetOracleIntervalYM

指定されたINTERVAL YEAR TO MONTH列のOracleIntervalYM構造を戻します

GetOracleRef

指定されたREF列のOracleRefオブジェクトを戻します

GetOracleString

指定された列のOracleString構造を戻します

GetOracleTimeStamp

Oracle TimeStamp列のOracleTimeStamp構造を戻します

GetOracleTimeStampLTZ

指定されたOracle TimeStamp WITH LOCAL TIME ZONE列のOracleTimeStampLTZ構造を戻します

GetOracleTimeStampTZ

指定されたOracle TimeStamp WITH TIME ZONE列のOracleTimeStampTZ構造を戻します

GetOracleXmlType

指定されたXMLType列のOracleXmlTypeオブジェクトを戻します

GetOracleValue

指定された列値をODP.NETタイプとして戻します

GetOracleValues

すべての列値をODP.NETタイプとして取得します

GetOrdinal

指定された列名の0ベースの序数(または索引)を戻します

GetProviderSpecificFieldType

指定された列のプロバイダ固有のタイプを戻します

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetProviderSpecificValue

指定した序数の基礎となるプロバイダ固有の値を表すオブジェクトを戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetProviderSpecificValues

基礎となるプロバイダ固有の値を表すオブジェクトの配列を戻します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

GetSchemaTable

OracleDataReaderの列メタデータを記述するDataTableを戻します

GetString

指定された列の文字列値を戻します

GetTimeSpan

指定されたINTERVAL DAY TO SECOND列のTimeSpan値を戻します

GetType

System.Objectクラスからの継承

GetValue

列値を.NETタイプとして戻します

GetValues

すべての列値を.NETタイプとして取得します

GetXmlReader

XMLType列の値を.NET XmlTextReaderのインスタンスとして戻します

IsDBNull

列値がNULLかどうかを示します

NextResult

結果の読取り中にデータ・リーダーを次の結果セットに拡張します

Read

結果セットで次の行を読み取ります

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Close

このメソッドはOracleDataReaderをクローズします。

宣言

// ADO.NET 2.0: C#
public override void Close();

実装

IDataReader

備考

Closeメソッドは、OracleDataReaderに関連付けられているすべてのリソースを解除します。

例

OracleDataReaderクラスのコード例には、Closeメソッドが含まれています。OracleDataReader概要の「例」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Dispose

このメソッドでは、オブジェクトにより割り当てられたリソースまたはメモリーを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

Disposeメソッドでは、OracleDataReaderもクローズします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetBoolean

このメソッドは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override bool GetBoolean(int index);

パラメータ

- index
ゼロベースの列索引です。

実装

IDataRecord

例外

NotSupportedException - このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetByte

このメソッドは、指定された列のバイト値を戻します。

宣言

// ADO.NET 2.0: C#
public override byte GetByte(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

バイト表示の列の値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetBytes

このメソッドは、列の指定されたオフセット(バイト表示)から、最高の場合最大バイト数を使用して、指定されたバイト配列を作成します。

宣言

// ADO.NET 2.0: C#
public override long GetBytes(int index, long fieldOffset, byte[] buffer,
int bufferOffset, int length);

パラメータ

- index
ゼロベースの列索引です。

- fieldOffset
読取り開始対象の列内のオフセット(バイト)

- buffer
データの読取り先のバイト配列

- bufferOffset
データ読取り開始対象の、バッファ内のオフセット(バイト)

- length
読取りを行う最大バイト数(バイト)

戻り値

読取りが終了したバイト数

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドは、バッファに読み取られたバイト数を戻します。メソッドが同じ列に対して前に呼び出されている場合は、バイト数は実際のフィールド長より短くなる場合があります。

NULL参照がバッファに渡された場合、バイト表示のフィールド長が戻されます。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetChar

このメソッドは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override long GetChar(int index);

パラメータ

- index
ゼロベースの列索引

実装

IDataRecord

例外

NotSupportedException - このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetChars

このメソッドは、列の指定されたオフセット(文字表示)から、最高の場合最大文字数を使用して、指定された文字配列を作成します。

宣言

// ADO.NET 2.0: C#
public override long GetChars(int index, long fieldOffset, char[] buffer,
int bufferOffset, int length);

パラメータ

- index
ゼロベースの列索引

- fieldOffset
読取り開始対象の列内の索引(文字)

- buffer
データの読取り先の文字配列

- bufferOffset
データ読取り開始対象の、バッファ内の索引(文字)

- length
読取りを行う最大文字数(文字)

戻り値

読取りが終了した文字数

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドは、バッファに読み取られた文字数を戻します。メソッドが同じ列に対して前に呼び出されている場合は、文字数は実際のフィールド長より短くなる場合があります。

NULL参照がバッファに渡された場合、文字表示のフィールド長が戻されます。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetDataTypeName

このメソッドは、指定された列のODP.NETタイプ名を戻します。

宣言

// ADO.NET 2.0: C#
public override string GetDataTypeName(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のODP.NETタイプの名前

実装

IDataRecord

例外

InvalidOperationException - リーダーがクローズされています。

IndexOutOfRangeException - 列索引が無効です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetDateTime

このメソッドは、指定された列のDateTime値を戻します。

宣言

// ADO.NET 2.0: C#
public override DateTime GetDateTime(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のDateTime値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetDecimal

このメソッドは、指定されたNUMBER列のdecimal値を戻します。

宣言

// ADO.NET 2.0: C#
public override decimal GetDecimal(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のdecimal値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetDouble

このメソッドは、指定されたNUMBER列またはBINARY_DOUBLE列のdouble値を戻します。

宣言

// ADO.NET 2.0: C#
public override double GetDouble(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のdouble値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

Oracle Database 10gより、GetDoubleはBINARY_DOUBLE列からのデータ検索をサポートしています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetEnumerator

このメソッドでは、コレクション(レコード・セット)から反復できるIEnumeratorが戻されます。

宣言

// ADO.NET 2.0: C#
public override IEnumerator GetEnumerator();

戻り値

コレクション(レコード・セット)から反復できるIEnumerator。

例外

InvalidOperationException - リーダーがクローズされています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetFieldType

このメソッドは、指定された列のTypeを戻します。

宣言

// ADO.NET 2.0: C#
public override Type GetFieldType(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のデフォルト.NETタイプのtype。

実装

IDataRecord

例外

InvalidOperationException - リーダーがクローズされているか、指定された列はUDTですがUDTに対する登録済カスタム・タイプ・マッピングが存在しません。

IndexOutOfRangeException - 列索引が無効です。

備考

GetFieldTypeは、OracleDataReader上のGetValueアクセッサまたはItemプロパティの起動後に、アプリケーションが取得する値に対応するタイプを戻します。たとえば、列が文字列である場合、このメソッドは.NET文字列に対する.NETタイプ・オブジェクトを戻します。

属性がUDTである場合、このメソッドは次のいずれかを戻します。

- カスタム・タイプ・マッピングがOracleオブジェクトまたはコレクションに対して存在する場合は、カスタム・タイプの.NETタイプ。

- 列がOracle REFである場合は、文字列の.NETタイプ。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetFloat

このメソッドは、指定されたNUMBER列またはBINARY_FLOAT列のfloat値を戻します。

宣言

// ADO.NET 2.0: C#
public override float GetFloat(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のfloat値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

Oracle Database 10gより、GetFloatはBINARY_FLOAT列からのデータ検索をサポートしています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetGuid

このメソッドは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override Guid GetGuid(int index);

パラメータ

- index
ゼロベースの列索引です。

実装

IDataRecord

例外

NotSupportedException - このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetInt16

このメソッドは、指定されたNUMBER列のInt16値を戻します。

注意:
shortはInt16と等価です。

宣言

// ADO.NET 2.0: C#
public override short GetInt16(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のInt16値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetInt32

このメソッドは、指定されたNUMBER列のInt32値を戻します。

注意:
intはInt32と等価です。

宣言

// ADO.NET 2.0: C#
public override int GetInt32(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のInt32値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetInt64

このメソッドは、指定されたNUMBER列のInt64値を戻します。

注意:
longはInt64と等価です。

宣言

// ADO.NET 2.0: C#
public override long GetInt64(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のInt64値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetName

このメソッドは、指定された列の列名を戻します。

宣言

// ADO.NET 2.0: C#
public override string GetName(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列の名前です。

実装

IDataRecord

例外

InvalidOperationException - リーダーがクローズされています。

IndexOutOfRangeException - 列索引が無効です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleBFile

このメソッドは、指定されたBFILE列のOracleBFileオブジェクトを戻します。

宣言

// C#
public OracleBFile GetOracleBFile(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleBFile値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleBinary

このメソッドは、指定された列のOracleBinary構造を戻します。

宣言

// C#
public OracleBinary GetOracleBinary(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleBinary値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

GetOracleBinaryは、次のOracleタイプで使用されています。

- BFILE

- BLOB

- LONG RAW

- RAW

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleBlob

このメソッドは、指定されたBLOB列のOracleBlobオブジェクトを戻します。

宣言

// C#
public OracleBlob GetOracleBlob(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleBlob値です。

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleBlobForUpdate

GetOracleBlobForUpdateは、指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します。

オーバーロード・リスト:

- GetOracleBlobForUpdate(int)
このメソッドは、指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します。

- GetOracleBlobForUpdate(int, int)
このメソッドはWAIT句を使用して、指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します。

GetOracleBlobForUpdate(int)

このメソッドは、指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します。

宣言

// C#
public OracleBlob GetOracleBlobForUpdate(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

更新可能なOracleBlobオブジェクト

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

OracleCommandのExecuteReader()メソッドを起動する場合、OracleDataReaderによってフェッチされる全データは、特定のスナップショットから導出されます。このため、アクセッサ・メソッドを同じ列で呼び出すと、常に同じ値が戻されます。GetOracleBlobForUpdate()メソッドではデータベース・ラウンドトリップを発生させ、現行のBLOBデータに対する参照を取得する一方、FOR UPDATE句を使用して行のロックも行います。つまり、元のスナップショットからは値を取得できないため、GetOracleBlob()から取得したOracleBlobには、GetOracleBlobForUpdate()から取得したOracleBlobとは異なる値を含めることができます。

このメソッドをコール後にBLOB列はロックされるため、戻されたOracleBlobオブジェクトを使用して、BLOBを安全に更新できます。

このメソッドを内部で起動すると、WAIT句を使用せずにSELECT..FOR UPDATE文が実行されます。このため、その行に対してロックが取得されるまで、文は無期限に待機できます。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

例

次の例では、更新のためリーダーからOracleBlobオブジェクトを取得し、OracleBlobオブジェクトを更新して、トランザクションをコミットしています。

/* Database Setup, if you have not done so yet.
connect scott/tiger@oracle
CREATE TABLE empInfo (
empno NUMBER(4) PRIMARY KEY,
empName VARCHAR2(20) NOT NULL,
hiredate DATE,
salary NUMBER(7,2),
jobDescription Clob,
byteCodes BLOB
);

Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(1,'KING','SOFTWARE ENGR', '5657');
Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(2,'SCOTT','MANAGER', '5960');
commit;

*/
// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class GetOracleBlobForUpdateSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Get the ByteCodes for empno = 1
string cmdstr = "SELECT BYTECODES, EMPNO FROM EMPINFO where EMPNO = 1";
OracleCommand cmd = new OracleCommand(cmdstr, con);

// Since we are going to update the OracleBlob object, we will
//have to create a transaction
OracleTransaction txn = con.BeginTransaction();

// Get the reader
OracleDataReader reader = cmd.ExecuteReader();

// Declare the variables to retrieve the data in EmpInfo
OracleBlob byteCodesBlob;

// Read the first row
reader.Read();
if (!reader.IsDBNull(0))
{
byteCodesBlob = reader.GetOracleBlobForUpdate(0);

// Close the reader
reader.Close();

// Update the ByteCodes object
byte[] addedBytes = new byte[2] {0, 0};
byteCodesBlob.Append(addedBytes, 0, addedBytes.Length);

// Now commit the transaction
txn.Commit();
Console.WriteLine("Blob Column successfully updated");
}
else
reader.Dispose();

// Close the connection
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOracleBlobForUpdate(int, int)

このメソッドはWAIT句を使用して、指定されたBLOB列の更新可能なOracleBlobオブジェクトを戻します。

宣言

// C#
public OracleBlob GetOracleBlobForUpdate(int index, int wait);

パラメータ

- index
ゼロベースの列索引です。

- wait
メソッドがロックを取得するまで待機する秒数

戻り値

更新可能なOracleBlobオブジェクト

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

OracleCommandのExecuteReader()メソッドを起動する場合、OracleDataReaderによってフェッチされる全データは、特定のスナップショットから導出されます。このため、アクセッサ・メソッドを同じ列で呼び出すと、常に同じ値が戻されます。GetOracleBlobForUpdate()メソッドではデータベース・ラウンドトリップを発生させ、現行のBLOBデータに対する参照を取得する一方、FOR UPDATE句を使用して行のロックも行います。つまり、元のスナップショットからは値を取得できないため、GetOracleBlob()から取得したOracleBlobには、GetOracleBlobForUpdate()から取得したOracleBlobとは異なる値を含めることができます。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

このメソッドをコール後にBLOB列はロックされるため、戻されたOracleBlobオブジェクトを使用して、BLOBを安全に更新できます。

このメソッドを内部で起動すると、行をロックするSELECT..FOR UPDATE文が実行されます。

文には、wait値に応じて、別のWAIT句を追加できます。次のwait値の場合は、次のとおりにします。

- 0
SELECT..FOR UPDATE文の文末に"NOWAIT" が追加されている場合。ロックを取得済かどうかに関係なく、文はただちに実行されます。ロックが取得されていない場合は、例外がスローされます。

- n
SELECT..FOR UPDATE文の文末に"WAIT n" が追加されている場合。文はロックを取得後ただちに実行されます。ロックがn秒で取得できない場合は、このメソッド・コールに例外がスローされます。

「WAIT n」機能は、Oracle9i以降でのみ使用可能です。Oracle9iより前のバージョンの場合は、nが暗黙的に-1として処理され、SELECT..FOR UPDATE文の文末には何も追加されません。

- -1
SELECT..FOR UPDATEの文末に何も追加されていない場合。文はロックが取得されるまで無期限に待機して実行されます。

例

GetOracleBlobForUpdateメソッドは比較可能です。使用方法を示したコード例は、「例」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOracleClob

このメソッドは、指定されたCLOB列のOracleClobオブジェクトを戻します。

宣言

// C#
public OracleClob GetOracleClob(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleClob値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOracleClobForUpdate

GetOracleClobForUpdateは、指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します。

オーバーロード・リスト:

- GetOracleClobForUpdate(int)
このメソッドは、指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します。

- GetOracleClobForUpdate(int, int)
このメソッドはWAIT句を使用して、指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します。

GetOracleClobForUpdate(int)

このメソッドは、指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します。

宣言

// C#
public OracleClob GetOracleClobForUpdate(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

更新可能なOracleClob

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

OracleCommandのExecuteReader()メソッドを起動する場合、OracleDataReaderによってフェッチされる全データは、特定のスナップショットから導出されます。このため、アクセッサ・メソッドを同じ列で呼び出すと、常に同じ値が戻されます。GetOracleClobForUpdate()メソッドではデータベース・ラウンドトリップを発生させ、現行のCLOBデータに対する参照を取得する一方、FOR UPDATE句を使用して行のロックも行います。つまり、元のスナップショットからは値を取得できないため、GetOracleClob()から取得したOracleClobには、GetOracleClobForUpdate()から取得したOracleClobとは異なる値を含めることができます。

このメソッドをコール後にCLOB列はロックされるため、戻されたOracleClobオブジェクトを使用して、CLOBを安全に更新できます。

このメソッドを内部で起動すると、WAIT句を使用せずにSELECT..FOR UPDATE文が実行されます。このため、その行に対してロックが取得されるまで、文は無期限に待機できます。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

例

次の例では、更新のためリーダーからOracleClobオブジェクトを取得し、OracleClobオブジェクトを更新して、トランザクションをコミットしています。

/* Database Setup, if you have not done so yet.
connect scott/tiger@oracle
CREATE TABLE empInfo (
empno NUMBER(4) PRIMARY KEY,
empName VARCHAR2(20) NOT NULL,
hiredate DATE,
salary NUMBER(7,2),
jobDescription Clob,
byteCodes BLOB
);

Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(1,'KING','SOFTWARE ENGR', '5657');
Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(2,'SCOTT','MANAGER', '5960');
commit;

*/
// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class GetOracleClobForUpdateSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Get the job description for empno = 1
string cmdStr = "SELECT JOBDESCRIPTION, EMPNO FROM EMPINFO where EMPNO = 1";
OracleCommand cmd = new OracleCommand(cmdStr, con);

// Since we are going to update the OracleClob object, we will
//  have to create a transaction
OracleTransaction txn = con.BeginTransaction();

// Get the reader
OracleDataReader reader = cmd.ExecuteReader();

// Declare the variables to retrieve the data in EmpInfo
OracleClob jobDescClob;

// Read the first row
reader.Read();

if (!reader.IsDBNull(0))
{
jobDescClob = reader.GetOracleClobForUpdate(0);

// Close the reader
reader.Close();

// Update the job description Clob object
char[] jobDesc = "-SALES".ToCharArray();
jobDescClob.Append(jobDesc, 0, jobDesc.Length);

// Now commit the transaction
txn.Commit();
Console.WriteLine("Clob Column successfully updated");
}
else
reader.Close();

// Close the connection
con.Close();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOracleClobForUpdate(int, int)

このメソッドはWAIT句を使用して、指定されたCLOB列の更新可能なOracleClobオブジェクトを戻します。

宣言

// C#
public OracleClob GetOracleClobForUpdate(int index, int wait);

パラメータ

- index
ゼロベースの列索引です。

- wait
メソッドがロックを取得するまで待機する秒数

戻り値

更新可能なOracleClob

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

OracleCommandのExecuteReader()メソッドを起動する場合、OracleDataReaderによってフェッチされる全データは、特定のスナップショットから導出されます。このため、アクセッサ・メソッドを同じ列で呼び出すと、常に同じ値が戻されます。GetOracleClobForUpdate()メソッドではデータベース・ラウンドトリップを発生させ、現行のCLOBデータに対する参照を取得する一方、FOR UPDATE句を使用して行のロックも行います。つまり、元のスナップショットからは値を取得できないため、GetOracleClob()から取得したOracleClobには、GetOracleClobForUpdate()から取得したOracleClobとは異なる値を含めることができます。

このメソッドを内部で起動すると、行をロックするSELECT..FOR UPDATE文が実行されます。

このメソッドをコール後にCLOB列はロックされるため、戻されたOracleClobオブジェクトを使用して、CLOBを安全に更新できます。

文には、wait値に応じて、別のWAIT句を追加できます。次のwait値の場合は、次のとおりにします。

- 0
SELECT..FOR UPDATE文の文末に"NOWAIT" が追加されている場合。ロックを取得済かどうかに関係なく、文はただちに実行されます。ロックが取得されていない場合は、例外がスローされます。

- n
SELECT..FOR UPDATE文の文末に"WAIT n" が追加されている場合。文はロックを取得後ただちに実行されます。ロックがn秒で取得できない場合は、このメソッド・コールに例外がスローされます。

「WAIT n」機能は、Oracle9i以降でのみ使用可能です。Oracle9iより前のバージョンの場合は、nが暗黙的に-1として処理され、SELECT..FOR UPDATE文の文末には何も追加されません。

- -1
SELECT..FOR UPDATEの文末に何も追加されていない場合。文はロックが取得されるまで無期限に待機して実行されます。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

例

GetOracleClobForUpdateメソッドは比較可能です。使用方法を示したコード例は、「例」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOracleDate

このメソッドは、指定されたDATE列のOracleDate構造を戻します。

宣言

// C#
public OracleDate GetOracleDate(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleDate値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOracleDecimal

このメソッドは、指定されたNUMBER列のOracleDecimal構造を戻します。

宣言

// C#
public OracleDecimal GetOracleDecimal(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleDecimal値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleIntervalDS

このメソッドは、指定されたINTERVAL DAY TO SECOND列のOracleIntervalDS構造を戻します。

宣言

// C#
public OracleIntervalDS GetOracleIntervalDS(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleIntervalDS値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleIntervalYM

このメソッドは、指定されたINTERVAL YEAR TO MONTH列のOracleIntervalYM構造を戻します。

宣言

// C#
public OracleIntervalYM GetOracleIntervalYM(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleIntervalYM値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleRef

このメソッドは、指定されたREF列のOracleRefオブジェクトを戻します。

宣言

// C#
public OracleRef GetOracleRef(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

指定された列のOracleRefオブジェクト。

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Readメソッドが呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - アクセッサ・メソッドはこの列型に対して無効です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleString

このメソッドは、指定された列のOracleString構造を戻します。

宣言

// C#
public OracleString GetOracleString(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleString値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

列がOracle REF列である場合、データベースでREFを表す16進数が戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleTimeStamp

このメソッドは、Oracle TimeStamp列のOracleTimeStamp構造を戻します。

宣言

// C#
public OracleTimeStamp GetOracleTimeStamp(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleTimeStamp値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

GetOracleTimeStampをOracle Type TimeStampとともに使用しています。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleTimeStampLTZ

このメソッドは、指定されたOracle TimeStamp WITH LOCAL TIME ZONE列のOracleTimeStampLTZ構造を戻します。

宣言

// C#
public OracleTimeStampLTZ GetOracleTimeStampLTZ(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleTimeStampLTZ値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

GetOracleTimeStampLTZは、Oracle Type TimeStampを使用してLocal Time Zone列とともに使用されています。

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleTimeStampTZ

このメソッドは、指定されたOracle TimeStamp WITH TIME ZONE列のOracleTimeStampTZ構造を戻します。

宣言

// C#
public OracleTimeStampTZ GetOracleTimeStampTZ(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleTimeStampTZ値

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

Oracle Type TimeStampをLocal Time Zone列とともに使用

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleXmlType

このメソッドは、指定されたXMLType列のOracleXmlTypeオブジェクトを戻します。

宣言

// C#
public OracleXmlType GetOracleXmlType(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のOracleXmlType値

例外

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

要件

このプロパティは、Oracle9iリリース2(9.2)以上でのみ使用できます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleValue

このメソッドは、指定された列値をODP.NETタイプとして戻します。

宣言

// C#
public object GetOracleValue(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

ODP.NETタイプとしての列の値です。

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

備考

列がOracleオブジェクトまたはOracleコレクションの列で、カスタム・タイプ・マッピングが存在する場合、カスタム・タイプが戻されます。

列がOracle REF列である場合、OracleRefが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetOracleValues

このメソッドでは、すべての列値をODP.NETタイプとして取得します。

宣言

// C#
public int GetOracleValues(object[] values);

パラメータ

- values
ODP.NETタイプを列値として保持するオブジェクトの配列

戻り値

values配列内のODP.NETタイプの数

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

備考

このメソッドでは、個別に各列の値を取り出すのではなく、すべての列値を取り出す方法を提供します。

取り出される列値の数は、values配列の長さが最小の、結果セット内の列数です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

- 「LOBサポート」

GetOrdinal

このメソッドは、指定された列名の0ベースの序数(または索引)を戻します

宣言

// ADO.NET 2.0: C#
public override int GetOrdinal(string name);

パラメータ

- name
指定された列名

戻り値

列の索引

実装

IDataRecord

例外

InvalidOperationException - リーダーがクローズされています。

IndexOutOfRangeException - 列索引が無効です。

備考

指定された列を列名で特定するには、大/小文字を区別して検索します。これで特定できない場合は、大/小文字を区別せずに検索します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetProviderSpecificFieldType

このメソッドは、指定された列のプロバイダ固有のタイプを戻します。

宣言

// ADO.NET 2.0: C#public override Type GetProviderSpecificFieldType(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

指定した列のプロバイダ固有のタイプ。これはOracle.DataAccess.Typesネームスペースのメンバーです。

例外

IndexOutOfRangeException - 列索引が無効です。

InvalidOperationException - リーダーがクローズされているか、指定された列はUDTですがUDTに対する登録済カスタム・タイプ・マッピングが存在しません。

備考

GetProviderSpecficFieldTypeは、OracleDataReader上のGetProviderSpecificValueアクセッサの呼出し後に、アプリケーションが取得する値に対応するタイプを戻します。たとえば、列が文字列である場合、このメソッドはOracleStringに対する.NETタイプ・オブジェクトを戻します。

属性がUDTである場合、このメソッドは次のいずれかを戻します。

- 列がOracleオブジェクトまたはOracleコレクションの列で、カスタム・タイプ・マッピングが存在する場合は、カスタム・タイプの.NETタイプ。

- 列がOracle REFである場合は、OracleRefの.NETタイプ。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetProviderSpecificValue

このメソッドは、指定した序数の基礎となるプロバイダ固有の値を表すObjectを戻します。

宣言

// ADO.NET 2.0: C#
public override object GetProviderSpecificValue (int index);

パラメータ

index

ゼロベースの列索引です。

戻り値

基礎となるプロバイダ固有フィールド・タイプの代理であるObject。

例外

IndexOutOfRangeException - 列索引が無効です。

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

備考

列がOracleオブジェクトまたはコレクションの列で、カスタム・タイプ・マッピングが存在する場合、カスタム・タイプが戻されます。

列がOracle REF列である場合、OracleRefが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetProviderSpecificValues

このメソッドは、基礎となるプロバイダ固有値を表すオブジェクトの配列を戻します。

宣言

// ADO.NET 2.0: C#
public override int GetProviderSpecificValues(object [ ] values);

パラメータ

- values
オブジェクトの配列

戻り値

配列内のObjectインスタンスの数。

例外

InvalidOperationException - リーダーがクローズされています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetSchemaTable

このメソッドは、OracleDataReaderの列メタデータを記述するDataTableを戻します。

宣言

// ADO.NET 2.0: C#
public override DataTable GetSchemaTable();

戻り値

結果セットのメタデータを含むDataTable

実装

IDataReader

例外

InvalidOperationException - 接続がクローズされているか、またはリーダーがクローズされています。

備考

OracleDataReader.GetSchemaTableメソッドは、SchemaTableを戻します。

OracleDataReader SchemaTable

OracleDataReader SchemaTableは、OracleDataReaderの列メタデータを記述するDataTableです。

SchemaTableの列は、次に表示する順序になります。

表5-49 OracleDataReader SchemaTable

名前

ネーム・タイプ

説明

ColumnName

System.String

列の名前です。

ColumnOrdinal

System.Int32

0ベースの列の序数。

ColumnSize

System.Int64

列内の値として可能な最大長。ColumnSize値は次のようにして決定されます:

- CHARタイプおよびVARCHAR2タイプ
バイト表示 - IsByteSemanticブール値がtrueの場合

文字表示 - IsByteSemanticブール値がfalseの場合

- その他すべてのタイプ
バイト表示

詳細は、「IsByteSemantic」を参照してください。

NumericPrecision

System.Int16

列が数値のデータ型の場合の、列の最大精度。

この列には、Oracle NUMBER、Oracle INTERVAL YEAR TO MONTHおよびOracle INTERVAL DAY TO SECOND 列に対する有効な値が含まれています。その他すべての列については、値はnullです。

NumericScale

System.Int16

列のスケール。

この列には、Oracle NUMBER、Oracle INTERVAL DAY TO SECONDおよびOracle TIMESTAMP列に対する有効な値が含まれています。その他すべての列については、値はnullです。

IsUnique

System.Boolean

列値が一意かどうかを示します。

実表の2行にこの列の同じ値が含まれていない場合は、true。ここでは、実表はBaseTableNameで戻された表です。

次のうちの1つが適用される場合、IsUniqueはtrueであることが保証されます。

- 列が単独でキーを構成している

- この列のみに適用される一意制約または一意索引、および列に対して定義されたNOT NULL制約がある

- 列が明示的に選択されたROWIDである

列に実表の重複した値を含めることができる場合、IsUniqueはfalse。

デフォルトはfalseです。

選択リストの実表の列の各出現に対して、このプロパティの値は同じです。

IsKey

System.Boolean

列がキー列かどうかを示します。

列が、行を一意に識別する行セット内の列のセットの1つである場合は、true。trueに設定されたIsKeyを持つ列のセットは行セットの行を一意に識別する必要があります。この列のセットが最小の列セットである必要はありません。

この列セットは、優先度の低い順に次の1つから生成できます。

- 実表の主キー

- 次の条件付きの、任意の一意制約または一意索引。複合一意制約または複合一意索引の場合、NOT NULL制約は列または列のすべてに対して定義する必要があります。

- 次の条件付きの、任意の複合一意制約または複合一意索引。NULL制約は列の少なくとも1つ(すべてではない)に対して定義する必要があります。

明示的に選択されたROWID。列が行を一意に識別する必要がない場合は、falseです。選択リストの実表の列の各出現に対して、このプロパティの値は同じです。

IsRowID

System.Boolean

列がROWIDの場合はtrue、それ以外の場合はfalse。

BaseColumnName

System.String

列に別名が使用されている場合の、データベース内の列名。

BaseSchemaName

System.String

列を含むデータベース内のスキーマ名。

BaseTableName

System.String

列を含むデータベース内の表名またはビュー名。

DataType

System.RuntimeType

共通言語のランタイム型にマップします。

ProviderType

Oracle.DataAccess. Client.OracleDbType

列のデータベース列タイプ(OracleDbType)。

AllowDBNull

System.Boolean

null値が許可されている場合はtrue、それ以外の場合はfalse。

IsAliased

System.Boolean

列が別名の場合はtrue、それ以外の場合はfalse。

IsByteSemantic

System.Boolean

IsByteSemanticの場合は次のとおりです。

- ColumnSize値にバイト・セマンティクスが使用されている場合はtrue

- ColumnSizeにキャラクタ・セマンティクスが使用されている場合はfalse

Oracle9iより前のバージョンのデータベースに接続する場合は、この値は常にtrueです。

IsExpression

System.Boolean

列が式の場合はtrue、それ以外の場合はfalse。

IsHidden

System.Boolean

列が非表示の場合はtrue、それ以外の場合はfalse。

IsReadOnly

System.Boolean

列が読取り専用の場合はtrue、それ以外の場合はfalse。

IsLong

System.Boolean

列がLONG、LONG RAW、BLOB、CLOBまたはBFILEの場合はtrue、それ以外の場合はfalse。

UdtTypeName

System.String

UDTのタイプ名。

例

この例では、リーダーからSchemaTableを作成して使用します。

/* Database Setup, if you have not done so yet.
connect scott/tiger@oracle
CREATE TABLE empInfo (
empno NUMBER(4) PRIMARY KEY,
empName VARCHAR2(20) NOT NULL,
hiredate DATE,
salary NUMBER(7,2),
jobDescription Clob,
byteCodes BLOB
);

Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(1,'KING','SOFTWARE ENGR', '5657');
Insert into empInfo(EMPNO,EMPNAME,JOBDESCRIPTION,byteCodes) values
(2,'SCOTT','MANAGER', '5960');
commit;

*/
// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class GetSchemaTableSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

string cmdstr = "SELECT EMPNO,EMPNAME FROM EMPINFO where EMPNO = 1";
OracleCommand cmd = new OracleCommand(cmdstr, con);

//get the reader
OracleDataReader reader = cmd.ExecuteReader();

//get the schema table
DataTable schemaTable = reader.GetSchemaTable();

//retrieve the first column info.
DataRow row = schemaTable.Rows[0];

//print out the column info
Console.WriteLine("Column name: " + row["COLUMNNAME"]);
Console.WriteLine("Precision: " + row["NUMERICPRECISION"]);
Console.WriteLine("Scale: " + row["NUMERICSCALE"]);
reader.Close();

// Close the connection
con.Close();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetString

このメソッドは、指定された列のstring値を戻します。

宣言

// ADO.NET 2.0: C#
public override string GetString(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のstring値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullメソッドを呼び出して、NULL値を確認してください。

列がOracle REF列である場合、データベースでREFを表す16進数が戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetTimeSpan

このメソッドは、指定されたINTERVAL DAY TO SECOND列のTimeSpan値を戻します。

宣言

// C#
public TimeSpan GetTimeSpan(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列のTimeSpan値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetValue

このメソッドでは、列値を.NETタイプとして戻します。

宣言

// ADO.NET 2.0: C#
public override object GetValue(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

.NETタイプとしての列の値

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られているか、またはOracleオブジェクトまたはOracleコレクション列に対して有効なカスタム・タイプ・マッピングが指定されていません。

IndexOutOfRangeException - 列索引が無効です。

備考

列がOracleオブジェクトまたはOracleコレクションの列である場合、カスタム・タイプ・マッピングに対応する.NETカスタム・タイプが戻されます。

列がOracle REF列である場合、データベースでREFを表す.NET文字列として16進数が戻されます。

UDTがNULLである場合、DBNull.Valueが戻されます

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetValues

このメソッドでは、すべての列値を.NETタイプとして取得します。

宣言

// ADO.NET 2.0: C#
public override int GetValues(object[ ] values);

パラメータ

- values
.NETタイプを列値として保持するオブジェクトの配列

戻り値

values配列のオブジェクト数

実装

IDataRecord

例外

InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。

備考

このメソッドでは、個別に各列の値を取り出すのではなく、すべての列値を取り出す方法を提供します。

取り出される列値の数は、配列値の長さが最小の、結果セット内の列数です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

GetXmlReader

このメソッドでは、XMLType列のコンテンツを.NET XmlTextReaderオブジェクトのインスタンスとして戻します。

宣言

// C#
public XmlReader GetXmlReader(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

.NET XmlTextReader

例外

InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。

備考

このメソッドを呼び出す前にIsDBNullを呼び出して、NULL値を確認してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

IsDBNull

このメソッドは、列値がNULLかどうかを示します。

宣言

// ADO.NET 2.0: C#
public override bool IsDBNull(int index);

パラメータ

- index
ゼロベースの列索引です。

戻り値

列がNULL値の場合はtrueを戻し、それ以外の場合はfalseを戻します。

実装

IDataRecord

例外

InvalidOperationException - リーダーがクローズされているか、Read()が呼び出されていないか、またはすべての行が読み取られています。

IndexOutOfRangeException - 列索引が無効です。

備考

別のアクセッサ・メソッドを呼び出す前に、このメソッドを呼び出してNULL値を確認してください。

例

OracleDataReaderクラスのコード例には、IsDBNullメソッドが含まれています。「例」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

NextResult

このメソッドは、データ・リーダーを次の結果セットに拡張します。

宣言

// ADO.NET 2.0: C#
public override bool NextResult();

戻り値

別の結果セットが存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。

実装

IDataReader

例外

InvalidOperationException - 接続がクローズされているか、またはリーダーがクローズされています。

備考

NextResultは、複数の結果セットを戻すストアド・プロシージャを実行した結果を読み取る場合に使用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

Read

このメソッドでは、結果セットで現在の次の行を読み取ります。

宣言

// ADO.NET 2.0: C#
public override  bool Read();

戻り値

別の行が存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。

実装

IDataReader

例外

InvalidOperationException - 接続がクローズされているか、またはリーダーがクローズされています。

備考

データ・リーダーの初期位置は、最初の行の前です。このため、最初の行をフェッチするにはReadメソッドを呼び出す必要があります。読取りが完了したばかりの行が現在の行とみなされます。OracleDataReaderにそれ以上読み取る行がない場合は、falseが戻されます。

例

OracleDataReaderクラスのコード例には、Readメソッドが含まれています。「例」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataReaderクラス

- OracleDataReaderメンバー

OracleErrorクラス

OracleErrorクラスは、Oracleにより報告されるエラーを表します。

クラスの継承

System.Object

Oracle.DataAccess.Client.OracleError

宣言

// C#
public sealed class OracleError

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleErrorクラスは、Oracleにより報告される警告またはエラーを表します。

複数のエラーがある場合、ODP.NETはスタックの最初のエラー・メッセージのみを戻します。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleErrorsSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand object using the connection object
OracleCommand cmd = con.CreateCommand();

try
{
cmd.CommandText = "insert into notable values (99, 'MyText')";
cmd.ExecuteNonQuery();
}
catch (OracleException ex)
{
Console.WriteLine("Record is not inserted into the database table.");

foreach (OracleError error in ex.Errors)
{
Console.WriteLine("Error Message: " + error.Message);
Console.WriteLine("Error Source: " + error.Source);
}
}
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorメンバー

- OracleError静的メソッド

- OracleErrorプロパティ

- OracleErrorメソッド

OracleErrorメンバー

OracleErrorメンバーは次の表にリストされています。

OracleError静的メソッド

OracleError静的メソッドを、表5-50にリストします。

表5-50 OracleError静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleErrorプロパティ

OracleErrorプロパティを、表5-51にリストします。

表5-51 OracleErrorプロパティ

プロパティ

説明

ArrayBindIndex

配列バインド実行時に発生したエラーの行数を指定します

DataSource

Oracle Databaseを識別するOracleサービス名(TNS名)を指定します

Message

errorを記述するmessageを指定します

Number

Oracleのerror番号を指定します

Procedure

errorを引き起こすストアド・プロシージャを指定します

Source

errorを生成するデータ・プロバイダの名前を指定します

OracleErrorメソッド

OracleErrorメソッドを、表5-52にリストします。

表5-52 OracleErrorメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

OracleErrorの文字列表現を戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

OracleError静的メソッド

OracleError静的メソッドを、表5-53にリストします。

表5-53 OracleError静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

OracleErrorプロパティ

OracleErrorプロパティを、表5-54にリストします。

表5-54 OracleErrorプロパティ

プロパティ

説明

ArrayBindIndex

配列バインド実行時に発生したエラーの行数を指定します

DataSource

Oracle Databaseを識別するOracleサービス名(TNS名)を指定します

Message

errorを記述するmessageを指定します

Number

Oracleのerror番号を指定します

Procedure

errorを引き起こすストアド・プロシージャを指定します

Source

errorを生成するデータ・プロバイダの名前を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

ArrayBindIndex

このプロパティでは、Array Bindの実行中に発生したエラーの行番号を指定します。

宣言

// C#
public int ArrayBindIndex {get;}

プロパティ値

Array Bindの実行中に発生したエラーの行番号を指定する整数

備考

デフォルト = 0

このプロパティはArray Bind操作専用です。

ArrayBindIndexは、Array Bind操作中にエラーが発生したゼロベースの行番号を表します。たとえば配列バインドの実行によって、2番目と4番目の操作でエラーが2つ発生すると、2と4のArrayBindIndexプロパティ値を持つ2つのOracleErrorオブジェクトがOracleErrorCollectionに表示されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

- 「配列バインド」

DataSource

このプロパティはOracle Databaseを識別する、Oracleサービス名(TNS名)を指定します。

宣言

// C#
public string DataSource {get;}

プロパティ値

string

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

Message

このプロパティはerrorを記述するmessageを指定します。

宣言

// C#
public string Message {get;}

プロパティ値

string

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

Number

このプロパティはOracleのerror番号を指定します。

宣言

// C#
public int Number {get;}

プロパティ値

int

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

Procedure

このプロパティは、errorを引き起こす、格納されたプロシージャを指定します。

宣言

// C#
public string Procedure {get;}

プロパティ値

格納されたプロシージャ名

備考

このOracleErrorオブジェクトを作成する、格納されたプロシージャを表します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

Source

このプロパティは、errorを生成するデータ・プロバイダの名前を指定します。

宣言

// C#
public string Source {get;}

プロパティ値

string

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

OracleErrorメソッド

OracleErrorメソッドを、表5-55にリストします。

表5-55 OracleErrorメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

OracleErrorの文字列表現を戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

ToString

Objectをオーバーライドします。

このメソッドにより、OracleErrorの文字列表現を戻します。

宣言

// C#
public override string ToString();

戻り値

Ora-エラー番号:Class.Method名、エラー・メッセージ、スタック・トレース情報の書式を持つ文字列を戻します。

例

ORA-24333:繰返し件数が0(ゼロ)です

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorクラス

- OracleErrorメンバー

OracleErrorCollectionクラス

OracleErrorCollectionクラスは、Oracle Data Provider for .NETにより表示されるすべてのエラーのコレクションを表します。

クラスの継承

System.Object

System.ArrayList

Oracle.DataAccess.Client.OracleErrorCollection

宣言

// C#
public sealed class OracleErrorCollection : ArrayList

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleErrorのリストを保持する単純なArrayListです。

複数のエラーがある場合、ODP.NETはスタックの最初のエラー・メッセージのみを戻します。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleErrorCollectionSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand object using the connection object
OracleCommand cmd = con.CreateCommand();

try
{
cmd.CommandText = "insert into notable values (99, 'MyText')";
cmd.ExecuteNonQuery();
}
catch (OracleException ex)
{
Console.WriteLine("Record is not inserted into the database table.");

foreach (OracleError error in ex.Errors)
{
Console.WriteLine("Error Message: " + error.Message);
Console.WriteLine("Error Source: " + error.Source);
}
}
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorCollectionメンバー

- OracleErrorCollection静的メソッド

- OracleErrorCollectionプロパティ

- OracleErrorCollectionパブリック・メソッド

OracleErrorCollectionメンバー

OracleErrorCollectionメンバーは次の表にリストされています。

OracleErrorCollection静的メソッド

OracleErrorCollection静的メソッドを、表5-56にリストします。

表5-56 OracleErrorCollection静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleErrorCollectionプロパティ

OracleErrorCollectionプロパティを、表5-57にリストします。

表5-57 OracleErrorCollectionプロパティ

プロパティ

説明

Capacity

System.Collections.ArrayListからの継承

Count

System.Collections.ArrayListからの継承

IsReadOnly

System.Collections.ArrayListからの継承

IsSynchronized

System.Collections.ArrayListからの継承

Item

System.Collections.ArrayListからの継承

OracleErrorCollectionパブリック・メソッド

OracleErrorCollectionパブリック・メソッドを、表5-58にリストします。

表5-58 OracleErrorCollectionパブリック・メソッド

パブリック・メソッド

説明

CopyTo

System.Collections.ArrayListからの継承

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorCollectionクラス

OracleErrorCollection静的メソッド

OracleErrorCollection静的メソッドを、表5-59にリストします。

表5-59 OracleErrorCollection静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorCollectionクラス

- OracleErrorCollectionメンバー

OracleErrorCollectionプロパティ

OracleErrorCollectionプロパティを、表5-60にリストします。

表5-60 OracleErrorCollectionプロパティ

プロパティ

説明

Capacity

System.Collections.ArrayListからの継承

Count

System.Collections.ArrayListからの継承

IsReadOnly

System.Collections.ArrayListからの継承

IsSynchronized

System.Collections.ArrayListからの継承

Item

System.Collections.ArrayListからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorCollectionクラス

- OracleErrorCollectionメンバー

OracleErrorCollectionパブリック・メソッド

OracleErrorCollectionパブリック・メソッドを、表5-61にリストします。

表5-61 OracleErrorCollectionパブリック・メソッド

パブリック・メソッド

説明

CopyTo

System.Collections.ArrayListからの継承

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleErrorCollectionクラス

- OracleErrorCollectionメンバー

OracleExceptionクラス

OracleExceptionクラスは、Oracle Data Provider for .NETでエラーが発生したときに表示される例外を表します。各OracleExceptionオブジェクトには、エラーまたは警告について説明するErrorプロパティ内のOracleErrorオブジェクトが少なくとも1つ含まれます。

クラスの継承

System.Object

System.Exception

System.SystemException

System.Runtime.InteropServices.ExternalException (ADO.NET 2.0専用)

System.Data.Common.DbException (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleException

宣言

// C#
public sealed class OracleException : SystemException

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

複数のエラーがある場合、ODP.NETはスタックの最初のエラー・メッセージのみを戻します。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleExceptionSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand object using the connection object
OracleCommand cmd = con.CreateCommand();

try
{
cmd.CommandText = "insert into notable values (99, 'MyText')";
cmd.ExecuteNonQuery();
}
catch (OracleException ex)
{
Console.WriteLine("Record is not inserted into the database table.");
Console.WriteLine("Exception Message: " + ex.Message);
Console.WriteLine("Exception Source: " + ex.Source);
}
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionメンバー

- OracleExceptionメソッド

- OracleException静的メソッド

- OracleException静的メソッド

- OracleExceptionプロパティ

- OracleExceptionメソッド

OracleExceptionメンバー

OracleExceptionメンバーは次の表にリストされています。

OracleException静的メソッド

OracleException静的メソッドを、表5-62にリストします。

表5-62 OracleException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleExceptionプロパティ

OracleExceptionプロパティを、表5-63にリストします。

表5-63 OracleExceptionプロパティ

プロパティ

説明

DataSource

Oracleインスタンスへの接続の情報を含むTNS名を指定します

Errors

Oracle Databaseによって生成される例外に関する情報を含む、1つ以上のOracleErrorオブジェクトのコレクションを指定します

HelpLink

System.Exceptionからの継承

InnerException

System.Exceptionからの継承

Message

例外時に出されるエラー・メッセージを指定します

Number

Oracleのエラー番号を指定します

Procedure

例外を引き起こすストアド・プロシージャを指定します

Source

エラーを生成するデータ・プロバイダの名前を指定します

StackTrace

System.Exceptionからの継承

TargetSite

System.Exceptionからの継承

OracleExceptionメソッド

OracleExceptionメソッドを、表5-64にリストします。

表5-64 OracleExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

例外に関する情報でシリアル化可能なinfoオブジェクトを設定します

GetType

System.Objectからの継承

ToString

この例外の完全修飾名を戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

OracleException静的メソッド

OracleException静的メソッドを、表5-65にリストします。

表5-65 OracleException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

OracleExceptionプロパティ

OracleExceptionプロパティを、表5-66にリストします。

表5-66 OracleExceptionプロパティ

プロパティ

説明

DataSource

Oracleインスタンスへの接続の情報を含むTNS名を指定します

Errors

Oracle Databaseによって生成される例外に関する情報を含む、1つ以上のOracleErrorオブジェクトのコレクションを指定します

HelpLink

System.Exceptionからの継承

InnerException

System.Exceptionからの継承

Message

例外時に出されるエラー・メッセージを指定します

Number

Oracleのエラー番号を指定します

Procedure

例外を引き起こすストアド・プロシージャを指定します

Source

エラーを生成するデータ・プロバイダの名前を指定します

StackTrace

System.Exceptionからの継承

TargetSite

System.Exceptionからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

DataSource

このプロパティは、Oracleインスタンスへの接続の情報を含むTNS名を指定します。

宣言

// C#
public string DataSource {get;}

プロパティ値

接続情報を含むTNS名

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

Errors

このプロパティは、Oracle Databaseによって生成される例外に関する情報を含む、1つ以上のOracleErrorオブジェクトのコレクションを指定します。

宣言

// C#
public OracleErrorCollection Errors {get;}

プロパティ値

OracleErrorCollection

備考

ErrorsプロパティにはOracleErrorオブジェクトの、少なくとも1つのインスタンスが含まれます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

Message

Exceptionをオーバーライドします

このプロパティは、例外時に出されるエラー・メッセージを指定します。

宣言

// C#
public override string Message {get;}

プロパティ値

string

備考

MessageはErrorsコレクションの全エラーを連結したものです。各エラー・メッセージは連結され、最後の1つ以外は改行で繋げられます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

Number

このプロパティはOracleのエラー番号を指定します。

宣言

// C#
public int Number {get;}

プロパティ値

エラー番号

備考

このエラー番号は、Oracleによって生成されたエラーの最上位レベルであり、プロバイダ固有のエラー番号である可能性があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

Procedure

このプロパティは、例外を引き起こす、格納されたプロシージャを指定します。

宣言

// C#
public string Procedure {get;}

プロパティ値

格納されたプロシージャ名

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

Source

Exceptionをオーバーライドします

このプロパティは、エラーを生成するデータ・プロバイダの名前を指定します。

宣言

// C#
public override string Source {get;}

プロパティ値

データ・プロバイダの名前

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

OracleExceptionメソッド

OracleExceptionメソッドを、表5-67にリストします。

表5-67 OracleExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

例外に関する情報でシリアル化可能なinfoオブジェクトを設定します

GetType

System.Objectからの継承

ToString

この例外の完全修飾名を戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

GetObjectData

Exceptionをオーバーライドします

このメソッドにより、例外に関する情報で、シリアル化可能なinfoオブジェクトを設定します。

宣言

// C#
public override void GetObjectData(SerializationInfo info, StreamingContext
context);

パラメータ

- info
SerializationInfoオブジェクト

- context
StreamingContextオブジェクト

備考

この情報には、DataSource、Message、Number、Procedure、SourceおよびStackTraceが含まれます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

ToString

Exceptionをオーバーライドします

このメソッドにより、この例外の完全修飾名、Messageプロパティのerrorメッセージ、InnerException.ToString()メッセージおよびスタック・トレースを戻します。

宣言

// C#
public override string ToString();

戻り値

例外の文字列表現

例

// C#

using System;
using Oracle.DataAccess.Client;

class ToStringSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand object using the connection object
OracleCommand cmd = con.CreateCommand();

try
{
cmd.CommandText = "insert into notable values (99, 'MyText')";
cmd.ExecuteNonQuery();  // This will throw an exception
}
catch (OracleException ex)
{
Console.WriteLine("Record is not inserted into the database table.");
Console.WriteLine("ex.ToString() : " + ex.ToString());
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleExceptionクラス

- OracleExceptionメンバー

OracleInfoMessageEventArgsクラス

OracleInfoMessageEventArgsクラスは、OracleConnection.InfoMessageイベントのイベント・データを提供します。データベースに警告が発生すると、OracleConnection.InfoMessageイベントが、イベント・データが格納されているOracleInfoMessageEventArgsオブジェクトとともにトリガーされます。

クラスの継承

System.Object

System.EventArgs

Oracle.DataAccess.Client.OracleInfoMessageEventArgs

宣言

// C#
public sealed class OracleInfoMessageEventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class InfoMessageSample
{
public static void WarningHandler(object src,
OracleInfoMessageEventArgs args)
{
Console.WriteLine("Source object is: " + src.GetType().Name);
Console.WriteLine("InfoMessageArgs.Message is " + args.Message);
Console.WriteLine("InfoMessageArgs.Source is " + args.Source);
}
static void Main()
{
OracleConnection con = new OracleConnection("User Id=scott;" +
"Password=tiger;Data Source=oracle;");

con.Open();

OracleCommand cmd = con.CreateCommand();

//Register to the InfoMessageHandler
cmd.Connection.InfoMessage +=
new OracleInfoMessageEventHandler(WarningHandler);

cmd.CommandText =
"create or replace procedure SelectWithNoInto( " +
"  empname in VARCHAR2) AS " +
"BEGIN " +
"  select * from emp where ename = empname; " +
"END SelectWithNoInto;";

// Execute the statement that produces a warning
cmd.ExecuteNonQuery();

// Clean up
cmd.Dispose();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsメンバー

- OracleInfoMessageEventArgs静的メソッド

- OracleInfoMessageEventArgsプロパティ

- OracleInfoMessageEventArgsパブリック・メソッド

- 「OracleConnectionクラス」

OracleInfoMessageEventArgsメンバー

OracleInfoMessageEventArgsメンバーは、次の各表にリストしています。

OracleInfoMessageEventArgs静的メソッド

OracleInfoMessageEventArgs静的メソッドを、表5-68にリストします。

表5-68 OracleInfoMessageEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleInfoMessageEventArgsプロパティ

OracleInfoMessageEventArgsプロパティを、表5-69にリストします。

表5-69 OracleInfoMessageEventArgsプロパティ

プロパティ

説明

Errors

データ・ソースにより生成されたエラーのコレクションを指定します

Message

データ・ソースにより生成されたエラー・テキストを指定します

Source

エラーを生成したオブジェクトの名前を指定します

OracleInfoMessageEventArgsパブリック・メソッド

OracleInfoMessageEventArgsメソッドを、表5-70にリストします。

表5-70 OracleInfoMessageEventArgsパブリック・メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

OracleInfoMessageEventArgs静的メソッド

OracleInfoMessageEventArgs静的メソッドを、表5-71にリストします。

表5-71 OracleInfoMessageEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

OracleInfoMessageEventArgsプロパティ

OracleInfoMessageEventArgsプロパティを、表5-72にリストします。

表5-72 OracleInfoMessageEventArgsプロパティ

プロパティ

説明

Errors

データ・ソースにより生成されたエラーのコレクションを指定します

Message

データ・ソースにより生成されたエラー・テキストを指定します

Source

エラーを生成したオブジェクトの名前を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

Errors

このプロパティは、データ・ソースによって生成されたエラーのコレクションを指定します。

宣言

// C#
public OracleErrorCollection Errors {get;}

プロパティ値

エラーのコレクション

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

Message

このプロパティは、データ・ソースによって生成されたエラー・テキストを指定します。

宣言

// C#
public string Message {get;}

プロパティ値

エラー・テキスト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

Source

このプロパティは、エラーを生成するオブジェクトの名前を指定します。

宣言

// C#
public string Source {get;}

プロパティ値

エラーを生成するオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

OracleInfoMessageEventArgsパブリック・メソッド

OracleInfoMessageEventArgsメソッドを、表5-73にリストします。

表5-73 OracleInfoMessageEventArgsパブリック・メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleInfoMessageEventArgsクラス

- OracleInfoMessageEventArgsメンバー

OracleInfoMessageEventHandlerデリゲート

OracleInfoMessageEventHandlerは、OracleConnection.InfoMessageイベントを処理するメソッドの署名を表します。

宣言

// C#
public delegate void OracleInfoMessageEventHandler(object sender,
OracleInfoMessageEventArgs eventArgs);

パラメータ

- sender
イベントのソース

- eventArgs
イベント・データが含まれるOracleInfoMessageEventArgsオブジェクト

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「InfoMessage」

OracleParameterクラス

OracleParameterオブジェクトは、OracleCommandまたはDataSet列のパラメータを表します。

クラスの継承

System.Object

System.MarshalByRefObject

System.Data.Common.DbParameter (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleParameter

宣言

// ADO.NET 2.0: C#
public sealed class OracleParameter : DbParameter, IDisposable, ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例外

ArgumentException - 型バインディングが無効です。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleParameterSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleParameter[] prm = new OracleParameter[3];

// Create OracleParameter objects through OracleParameterCollection
OracleCommand cmd = con.CreateCommand();

cmd.CommandText = "select max(empno) from emp";
int maxno = int.Parse(cmd.ExecuteScalar().ToString());

prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal,
maxno + 10, ParameterDirection.Input);
prm[1] = cmd.Parameters.Add("paramEname", OracleDbType.Varchar2,
"Client", ParameterDirection.Input);
prm[2] = cmd.Parameters.Add("paramDeptNo", OracleDbType.Decimal,
10, ParameterDirection.Input);
cmd.CommandText =
"insert into emp(empno, ename, deptno) values(:1, :2, :3)";
cmd.ExecuteNonQuery();

Console.WriteLine("Record for employee id {0} has been inserted.",
maxno + 10);
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterメンバー

- OracleParameterコンストラクタ

- OracleParameter静的メソッド

- OracleParameterプロパティ

- OracleParameterパブリック・メソッド

OracleParameterメンバー

OracleParameterメンバーは、次の各表にリストしています。

OracleParameterコンストラクタ

OracleParameterコンストラクタを、表5-74にリストします。

表5-74 OracleParameterコンストラクタ

コンストラクタ

説明

OracleParameterコンストラクタ

OracleParameterクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleParameter静的メソッド

OracleParameter静的メソッドを、表5-75にリストします。

表5-75 OracleParameter静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleParameterプロパティ

OracleParameterプロパティを、表5-76にリストします。

表5-76 OracleParameterプロパティ

プロパティ

説明

ArrayBindSize

配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータのValueプロパティの要素の入出力サイズを指定します

ArrayBindStatus

配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータのValueプロパティの要素の入出力ステータスを指定します

CollectionType

OracleParameterがコレクションを表すかどうかを指定し、コレクションを表す場合は、コレクション型を指定します

DbType

Data.DbType列挙型を使用して、パラメータのデータ型を指定します

Direction

パラメータが入力のみ、出力のみ、双方向またはストアド・ファンクションの戻り値パラメータかどうかを指定します

IsNullable

サポート対象外

Offset

Valueプロパティへのオフセット、またはValueプロパティの要素へのオフセットを指定します

OracleDbType

Oracleデータ型を指定します。

OracleDbTypeEx

どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します

ParameterName

パラメータの名前を指定します

Precision

Valueプロパティを表す際に使用される最大桁数を指定します

Scale

Valueプロパティが解決される小数点以下の桁数を指定します

Size

データベースに送信する、またはデータベースから送信されるデータの最大サイズをバイト数または文字数で指定します。PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列内の要素の最大数を指定します。

SourceColumn

DataSetのDataTable列の名前を指定します

SourceColumnNullMapping

ソース列にNULLを使用できるかどうかを示す値を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

SourceVersion

パラメータのValueプロパティをロードするときに使用するDataRowVersion値を指定します

Status

Valueプロパティ内のデータに関連する実行ステータスを示します

UdtTypeName

パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します

Value

Parameterの値を指定します

OracleParameterパブリック・メソッド

OracleParameterパブリック・メソッドを、表5-77にリストします。

表5-77 OracleParameterパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleParameterオブジェクトのシャロー・コピーを作成します

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

割り当てられたリソースを解除します

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

ResetDbType

パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ResetOracleDbType

パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ToString

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

OracleParameterコンストラクタ

OracleParameterコンストラクタでは、OracleParameterクラスの新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleParameter()
このコンストラクタでは、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType)
このコンストラクタでは、指定されたパラメータ名およびOracleデータ型を使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, object)
このコンストラクタでは、指定されたパラメータ名およびパラメータ値を使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType, ParameterDirection)
このコンストラクタでは、指定されたパラメータ名、データ型およびパラメータ・ディレクションを使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType, object, ParameterDirection)
このコンストラクタでは、指定されたパラメータ名、データ型、値およびディレクションを使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType, int)
このコンストラクタでは、指定されたパラメータ名、データ型およびサイズを使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType, int, string)
このコンストラクタでは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)
このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、ディレクション、NULLインジケータ、精度、スケール、ソース列、ソース・バージョンおよびパラメータ値を使用して、OracleParameterクラスの新規インスタンスが作成されます。

- OracleParameter(string, OracleDbType, int, object, ParameterDirection)
このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、値およびディレクションを使用して、OracleParameterクラスの新規インスタンスが作成されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

OracleParameter()

このコンストラクタでは、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter();

備考

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter(string, OracleDbType)

このコンストラクタでは、指定されたパラメータ名およびOracleデータ型を使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType oraType);

パラメータ

- parameterName
パラメータ名

- oraType
OracleParameterのデータ型

備考

DbTypeを変更すると、OracleDbTypeが暗黙的に変更されます。

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter(string, object)

このコンストラクタでは、指定されたパラメータ名およびパラメータ値を使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, object obj);

パラメータ

- parameterName
パラメータ名

- obj
OracleParameterの値

備考

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter(string, OracleDbType, ParameterDirection)

このコンストラクタでは、指定されたパラメータ名、データ型およびパラメータ・ディレクションを使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType type,
ParameterDirection direction);

パラメータ

- parameterName
パラメータ名

- type
OracleParameterのデータ型

- direction
OracleParameterのデータ型

備考

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter(string, OracleDbType, object, ParameterDirection)

このコンストラクタでは、指定されたパラメータ名、データ型、値およびディレクションを使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType type, object obj,
ParameterDirection direction);

パラメータ

- parameterName
パラメータ名

- type
OracleParameterのデータ型

- obj
OracleParameterの値

- direction
ParameterDirection値

備考

DbTypeを変更すると、OracleDbTypeが暗黙的に変更されます。

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter(string, OracleDbType, int)

このコンストラクタでは、指定されたパラメータ名、データ型およびサイズを使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType type,
int size);

パラメータ

- parameterName
パラメータ名

- type
OracleParameterのデータ型

- size
OracleParameter値のサイズ

備考

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter(string, OracleDbType, int, string)

このコンストラクタでは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType type, int size,
string srcColumn);

パラメータ

- parameterName
パラメータ名

- type
OracleParameterのデータ型

- size
OracleParameter値のサイズ

- srcColumn
ソース列の名前

備考

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

OracleParameter(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)

このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、ディレクション、NULLインジケータ、精度、スケール、ソース列、ソース・バージョンおよびパラメータ値を使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType oraType,
int size, ParameterDirection direction, bool isNullable, byte
precision, byte scale,  string srcColumn, DataRowVersion srcVersion,
object obj);

パラメータ

- parameterName
パラメータ名

- oraType
OracleParameterのデータ型

- size
OracleParameter値のサイズ

- direction
ParameterDirection値

- isNullable
パラメータ値をnullにできるかどうかを指定するインジケータ

- precision
パラメータ値の精度

- scale
パラメータ値のスケール

- srcColumn
ソース列の名前

- srcVersion
DataRowVersion値

- obj
パラメータ値

例外

ArgumentException - 指定された値は、OracleTypeのValueプロパティのタイプに属しません。

備考

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

OracleParameter(string, OracleDbType, int, object, ParameterDirection)

このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、値およびディレクションを使用して、OracleParameterクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleParameter(string parameterName, OracleDbType type, int size,
object obj, ParameterDirection direction);

パラメータ

- parameterName
パラメータ名

- type
OracleParameterのデータ型

- size
OracleParameter値のサイズ

- obj
OracleParameterの値

- direction
ParameterDirection値

備考

DbTypeを変更すると、OracleDbTypeが暗黙的に変更されます。

コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。

デフォルト値:

- DbType - String

- ParameterDirection - Input

- isNullable - true

- offset - 0

- OracleDbType - Varchar2

- ParameterAlias - 空の文字列

- ParameterName - 空の文字列

- Precision - 0

- Size - 0

- SourceColumn - 空の文字列

- SourceVersion - Current

- ArrayBindStatus - Success

- Value - null

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「OracleParameterCollectionクラス」

OracleParameter静的メソッド

OracleParameter静的メソッドを、表5-78にリストします。

表5-78 OracleParameter静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

OracleParameterプロパティ

OracleParameterプロパティを、表5-79にリストします。

表5-79 OracleParameterプロパティ

プロパティ

説明

ArrayBindSize

配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータのValueプロパティの要素の入出力サイズを指定します

ArrayBindStatus

配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータのValueプロパティの要素の入出力ステータスを指定します

CollectionType

OracleParameterがコレクションを表すかどうかを指定し、コレクションを表す場合は、コレクション型を指定します

DbType

Data.DbType列挙型を使用して、パラメータのデータ型を指定します

Direction

パラメータが入力のみ、出力のみ、双方向またはストアド・ファンクションの戻り値パラメータかどうかを指定します

IsNullable

サポート対象外

Offset

Valueプロパティへのオフセット、またはValueプロパティの要素へのオフセットを指定します

OracleDbType

Oracleデータ型を指定します。

OracleDbTypeEx

どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します

ParameterName

パラメータの名前を指定します

Precision

Valueプロパティを表す際に使用される最大桁数を指定します

Scale

Valueプロパティが解決される小数点以下の桁数を指定します

Size

データベースに送信する、またはデータベースから送信されるデータの最大サイズをバイト数または文字数で指定します。PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列内の要素の最大数を指定します。

SourceColumn

DataSetのDataTable列の名前を指定します

SourceColumnNullMapping

ソース列にNULLを使用できるかどうかを示す値を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

SourceVersion

パラメータのValueプロパティをロードするときに使用するDataRowVersion値を指定します

Status

Valueプロパティ内のデータに関連する実行ステータスを示します

UdtTypeName

パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します

Value

Parameterの値を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

ArrayBindSize

このプロパティは、データベースに送信する、またはデータベースから送信される、各配列要素のデータの最大サイズを、バイト数または文字数で指定します。このプロパティは、配列バインドまたはPL/SQL連想配列の実行に使用されます。

宣言

// C#
public int[] ArrayBindSize {get; set; }

プロパティ値

サイズを指定する整数の配列

備考

デフォルト = null

このプロパティは、配列バインドまたはPL/SQL連想配列の可変サイズの要素タイプにのみ使用されます。固定サイズの要素タイプでは、このプロパティは無視されます。

ArrayBindSizeの各要素は、Valueプロパティの要素のバインド・サイズに対応しています。実行前は、ArrayBindSizeにより、Valueプロパティにバインドされる各要素の最大サイズが指定されています。実行後は、Valueプロパティに戻された各要素のサイズが含まれます。

PL/SQL連想配列のバインドの場合、要素は可変長の要素タイプであり、このプロパティはInputOutput、Out、またはReturnValueパラメータとして適切に設定する必要があります。ArrayBindSizeの要素数は、OracleParameter.Sizeプロパティで指定されている値と同じである必要があります。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class ArrayBindSizeSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleParameter[] prm = new OracleParameter[3];

// Create OracleParameter objects through OracleParameterCollection
OracleCommand cmd = con.CreateCommand();

cmd.CommandText = "select max(empno) from emp";
int maxno = int.Parse(cmd.ExecuteScalar().ToString());

// Set the ArrayBindCount for Array Binding
cmd.ArrayBindCount = 2;

prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal,
new int[2] {maxno + 10, maxno + 11}, ParameterDirection.Input);
prm[1] = cmd.Parameters.Add("paramEname", OracleDbType.Varchar2,
new string[2] {"Client1xxx", "Client2xxx"}, ParameterDirection.Input);
prm[2] = cmd.Parameters.Add("paramDeptNo", OracleDbType.Decimal,
new int[2] {10, 10}, ParameterDirection.Input);

// Set the ArrayBindSize for prm[1]
// These sizes indicate the maximum size of the elements in Value property
prm[1].ArrayBindSize = new int[2];
prm[1].ArrayBindSize[0] = 7; // Set ename = "Client1"
prm[1].ArrayBindSize[1] = 7; // Set ename = "Client2"

cmd.CommandText =
"insert into emp(empno, ename, deptno) values(:1, :2, :3)";

cmd.ExecuteNonQuery();

Console.WriteLine("Record for employee id {0} has been inserted.",
maxno + 10);
Console.WriteLine("Record for employee id {0} has been inserted.",
maxno + 11);

prm[0].Dispose();
prm[1].Dispose();
prm[2].Dispose();
cmd.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「ArrayBindCount」

- 連想配列のバインドの詳細は、「Size」および「Value」を参照

- 「ArrayBindStatus」

ArrayBindStatus

このプロパティでは、配列バインドまたはPL/SQL連想配列の実行前または実行後における、Valueプロパティの各要素の入力または出力ステータスが指定されます。

宣言

// C#
public OracleParameterStatus[] ArrayBindStatus { get; set; }

プロパティ値

OracleParameterStatusの列挙値の配列

例外

ArgumentOutofRangeException - 指定されたStatusの値が無効です。

備考

デフォルト = null

ArrayBindStatusは、配列バインドおよびPL/SQL連想配列の実行にのみ使用されます。

実行前は、ArrayBindStatusにより、Valueプロパティの各要素のバインド・ステータスが示されています。実行後は、Valueプロパティの各要素の実行ステータスが含まれます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「ArrayBindCount」

- 「OracleParameterStatusの列挙」

- 連想配列のバインドの詳細は、「Value」を参照

- 「ArrayBindSize」

CollectionType

このプロパティは、OracleParameterがコレクションを表すかどうかを指定し、コレクションを表す場合は、コレクション型を指定します。

宣言

// C#
public OracleCollectionType CollectionType { get; set; }

プロパティ値

OracleCollectionTypeの列挙値

例外

ArgumentException - 指定されたOracleCollectionType値が無効です。

備考

デフォルト = OracleCollectionType.None。PL/SQL連想配列のバインドにOracleParameterが使用されている場合、CollectionTypeは、OracleCollectionType.PLSQLAssociativeArrayに設定する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

DbType

このプロパティは、Data.DbTypeの列挙型を使用して、パラメータのデータ型を指定します。

宣言

// ADO.NET 2.0: C#
public override DbType DbType {get; set; }

プロパティ値

DbTypeの列挙値

実装

IDataParameter

例外

ArgumentException - 指定されたDbType値が無効です。

備考

デフォルト = DbType.String

配列バインドまたはPL/SQL連想配列のバインド実行にOracleParameterオブジェクトが使用されている場合、配列内の各要素のデータ型はDbTypeです。

DbTypeプロパティとOracleDbTypeプロパティの間にリンクがあるため、DbTypeプロパティが設定されている場合、OracleDbTypeプロパティはDbTypeから推論されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「DbTypeからのOracleDbTypeの判断」

- 「CollectionType」

Direction

このプロパティは、パラメータが入力専用、出力専用、双方向またはストアド・ファンクションの戻り値パラメータであるかどうかを指定します。

宣言

// ADO.NET 2.0: C#
public override ParameterDirection Direction { get; set; }

プロパティ値

ParameterDirectionの列挙値

実装

IDataParameter

例外

ArgumentOutOfRangeException - 指定されたParameterDirectionの値が無効です。

備考

デフォルト = ParameterDirection.Input

可能な値:Input、InputOutput、OutputおよびReturnValue

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

IsNullable

このプロパティは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override bool IsNullable { get; set; }

実装

IDataParameter

プロパティ値

このプロパティは、サポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

Offset

このプロパティは、Valueプロパティに対するオフセットを指定します。

宣言

// C#
public int Offset { get; set; }

プロパティ値

オフセットを指定するint

例外

ArgumentOutOfRangeException - 指定されたOffsetの値が無効です。

備考

デフォルト = 0

配列バインドおよびPL/SQL連想配列バインドの場合、Offsetは、Valueプロパティ内のすべての要素に適用されます。

Offsetプロパティは、バイナリおよび文字列のデータ型に使用されます。Offsetプロパティは、バイナリ型のバイト数および文字列の文字数を表します。nullが参照されている場合、文字列のカウントには終了文字は含まれません。Offsetプロパティは、次の型のパラメータで使用されます。

- OracleDbType.BFile

- OracleDbType.Blob

- OracleDbType.LongRaw

- OracleDbType.Raw

- OracleDbType.Char

- OracleDbType.Clob

- OracleDbType.NClob

- OracleDbType.NChar

- OracleDbType.NVarchar2

- OracleDbType.Varchar2

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

OracleDbType

このプロパティは、Oracleデータ型を指定します。

宣言

// C#
public OracleDbType OracleDbType { get; set; }

プロパティ値

OracleDbTypeの列挙値

備考

デフォルト = OracleDbType.Varchar2

OracleParameterオブジェクトが配列バインドまたはPL/SQL連想配列バインドの実行に使用される場合、OracleDbTypeは、配列内の各要素のデータ型になります。

OracleDbTypeプロパティとDbTypeプロパティは、リンクされています。したがって、OracleDbTypeプロパティを設定すると、DbTypeプロパティが、サポートしているDbTypeに変更されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleDbTypeの列挙型」

- 「OracleDbTypeからのDbTypeの判断」

- 「CollectionType」

OracleDbTypeEx

このプロパティは、どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します。

宣言

// C#
public OracleDbType OracleDbTypeEx { get; set; }

プロパティ値

OracleDbTypeの列挙値

備考

このプロパティは、パラメータ値をOracle型としてバインドする必要があるが、出力としては.NETタイプを戻す必要があるアプリケーションで使用されます。このプロパティは、出力パラメータまたは入力/出力パラメータで使用してください。入力パラメータでOracleDbTypeExを使用すると、OracleDbTypeを使用した場合と同じ結果になります。出力として戻される.NETタイプは、Oracle型から厳密にマップされた.NETタイプです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleDbTypeの列挙型」

- 「OracleDbType」

- 「OracleDbTypeからのDbTypeの判断」

- 「CollectionType」

ParameterName

このプロパティは、パラメータの名前を指定します。

宣言

// ADO.NET 2.0: C#
public override string ParameterName { get; set; }

プロパティ値

String

実装

IDataParameter

備考

デフォルト = null

最大30文字のParameterNameがサポートされています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

Precision

このプロパティは、Valueプロパティを表すのに使用される桁の最大数を指定します。

宣言

// C#
Public byte Precision { get; set; }

プロパティ値

byte

備考

デフォルト = 0

Precisionプロパティは、OracleDbType.Decimal型のパラメータで使用されます。

0から38の範囲のPrecisionがサポートされています。

配列バインドおよびPL/SQL連想配列バインドの場合、Precisionは、Valueプロパティの各要素に適用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「Value」

Scale

このプロパティは、Valueプロパティが解決される小数点以下の桁数を指定します。

宣言

// C#
public byte Scale { get; set; }

プロパティ値

byte

備考

デフォルト = 0

Scaleは、OracleDbType.Decimal型のパラメータで使用されます。

-84から127までのScaleがサポートされています。

配列バインドおよびPL/SQL連想配列バインドの場合、Scaleは、Valueプロパティの各要素に適用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「Value」

Size

このプロパティは、データベースに送信する、またはデータベースから送信されるデータの最大サイズを、バイト数または文字数で指定します。

宣言

// ADO.NET 2.0: C#
public override int Size { get; set;}

プロパティ値

int

例外

ArgumentOutOfRangeException - 指定したSize値が無効です。

InvalidOperationException - OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合は、Size = 0になります。

備考

PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列内の要素の最大数を指定します。

Sizeが明示的に設定されていない場合は、入力パラメータに対するバインド時にのみ、指定されたパラメータ値の実際のサイズから推測されます。出力パラメータは、サイズが明示的に定義されている必要があります。

デフォルト値は0です。

実行前は、このプロパティは、Valueプロパティでバインドされる最大サイズを指定します。実行後は、Valueプロパティの型のサイズを格納します。

Sizeは、次の型のパラメータに使用されます。

- OracleDbType.Blob

- OracleDbType.Char

- OracleDbType.Clob

- OracleDbType.LongRaw

- OracleDbType.NChar

- OracleDbType.NClob

- OracleDbType.NVarchar2

- OracleDbType.Raw

- OracleDbType.Varchar2

Sizeの値は、次のように処理されます。

- 固定長のデータ型: 無視

- 可変長のデータ型: データベースに送信する、またはデータベースから送信されるデータの最大量を示します。文字データの場合、Sizeは文字数、バイナリ・データの場合は、バイト数になります。

Sizeが明示的に設定されていない場合は、バインド時に指定されたパラメータ値の実際のサイズから推測されます。

注意:
Sizeには、文字列データのNULLで終了する文字は含まれません。

OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合、Sizeは、PL/SQL連想配列内の要素の最大数を指定します。実行前は、このプロパティは、PL/SQL連想配列内の要素の最大数を指定します。実行後は、PL/SQL連想配列内で返された要素の現行の数を指定します。OutputおよびInputOutputパラメータと戻り値の場合、Sizeは、PL/SQL連想配列内の要素の最大数を指定します。

ODP.NETでは、空のPL/SQL連想配列のバインドはサポートされていません。したがって、OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合、Sizeを0に設定することはできません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleDbTypeの列挙型」

- 「CollectionType」

- 「ArrayBindSize」

- 「ArrayBindStatus」

- 「Value」

SourceColumn

このプロパティは、DataSetのDataTable列の名前を指定します。

宣言

// ADO.NET 2.0: C#
public override string SourceColumn { get; set; }

プロパティ値

string

実装

IDataParameter

備考

デフォルト = 空の文字列

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

SourceColumnNullMapping

このプロパティでは、ソース列にNULLを使用できるかどうかを示す値を指定します。

宣言

// ADO.NET 2.0: C#
public bool SourceColumnNullMapping { get; set; }

プロパティ値

ソース列を無効にできる場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

デフォルト値はfalseです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

SourceVersion

このプロパティは、パラメータのValueプロパティをロードするときに使用するDataRowVersion値を指定します。

宣言

// ADO.NET 2.0: C#
public override DataRowVersion SourceVersion { get; set; }

プロパティ値

DataRowVersion

実装

IDataParameter

例外

ArgumentOutOfRangeException - 指定したDataRowVersion値が無効です。

備考

デフォルト = DataRowVersion.Current

SourceVersionはOracleDataAdapter.Update中にOracleDataAdapter.UpdateCommand()で使用され、パラメータ値に元の値または現行の値が使用されるかどうかを決定します。これにより、主キーの更新が可能になります。このプロパティは、OracleDataAdapter.InsertCommand()およびOracleDataAdapter.DeleteCommand()では無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

Status

このプロパティは、Valueプロパティ内のデータに関連する実行のステータスを示します。

宣言

// C#
public OracleParameterStatus Status { get; set; }

プロパティ値

OracleParameterStatusの列挙値

例外

ArgumentOutOfRangeException - 指定したStatus値が無効です。

備考

デフォルト = OracleParameterStatus.Success

実行前は、このプロパティは、Valueプロパティに関連するバインド・ステータスを示します。実行後は、実行のステータスを戻します。

Statusが示す内容は、次のとおりです。

- 列からNULLがフェッチされたかどうか。

- フェッチ中に切捨てが発生したかどうか。切捨てが発生した場合、Valueがデータを保持するには不足していることを示します。

- NULLがデータベース列に挿入されるかどうか。挿入される場合、Valueは無視され、NULLがデータベース列に挿入されます。
このプロパティは、配列バインドおよびPL/SQL連想配列バインドの場合は無視されます。かわりに、ArrayBindStatusプロパティが使用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「OracleParameterStatusの列挙」

- 「ArrayBindStatus」

UdtTypeName

このプロパティでは、パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します。

宣言

// C#
public string UdtTypeName {get; set;}

プロパティ値

Oracle UDTの名前。

備考

UdtTypeNameプロパティはパラメータのユーザー定義のタイプ名に対応します。このプロパティは、パラメータがユーザー定義のタイプは必ず指定される必要があります。カスタム・オブジェクトが入力パラメータ値として提供される場合、コマンドの実行に使用する接続のカスタム・タイプ・マッピングで指定されたOracle UDTに変換されることに注意してください。アプリケーションがパラメータ・タイプのサブタイプを表すカスタム・オブジェクトをバインドする場合、カスタム・タイプ・マッピングで指定されたOracle UDTとOracleParamter.UdtTypeNameプロパティで指定されたOracle UDTは異なります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

Value

このプロパティは、Parameterの値を指定します。

宣言

// ADO.NET 2.0: C#
public override object Value { get; set; }

プロパティ値

object

実装

IDataParameter

例外

ArgumentException - 指定したValueプロパティが無効です。

InvalidArgumentException: 指定したValueプロパティが無効です。

備考

デフォルト = null

OracleParameterオブジェクトが配列バインドまたはPL/SQL連想配列に使用される場合、Valueは、パラメータ値の配列になります。

Valueプロパティは、OracleDataAdapter.Update()によって上書きできます。

IConvertibleインタフェースをサポートしている場合、プロバイダは、値の型を変換しようとします。指定した型と値に互換性がない場合、変換エラーが発生します。

データベースにnullパラメータ値を送信する場合、ユーザーは、nullではなくDBNullを指定する必要があります。システム内のnull値は、値を持たない空のオブジェクトです。DBNullは、null値を表すのに使用されます。ユーザーは、StatusをOracleParameterStatus.NullValueに設定して、null値を指定することもできます。この場合、プロバイダはデータベースにnull値を送信します。

OracleDbTypeおよびDbTypeのいずれも設定されていない場合、値はValueから推測されます。関連情報は、次の項目を参照してください。

- 「ValueからのDbTypeおよびOracleDbTypeの判断」の表

- 「ArrayBindCount」

- 「ArrayBindSize」

- 「ArrayBindStatus」

- 「OracleDbTypeの列挙型」

入力パラメータの場合、値は次のようになります。

- データベースに送信されるOracleCommandにバインドされます。

- プロバイダがデータをデータベースに送信するときに、OracleDbTypeまたはDbTypeで指定されたデータ型に変換されます。

出力パラメータの場合、値は次のようになります。

- OracleCommandの完了時に設定されます(戻り値パラメータの場合にも当てはまります)。

- データベースからのデータに対して、OracleDbTypeまたはDbTypeで指定されたデータ型に設定されます。

配列バインディングは、次のパラメータとともに使用します。

- 入力パラメータ - Valueは、値の配列に設定する必要があります。バインドされる要素の数を示すために、OracleCommand.ArrayBindCountをゼロより大きい値に設定する必要があります。
配列内の要素の数は、OracleCommand.ArrayBindCountプロパティと同じである必要があります。同じでない場合、配列内の要素のバインドには、要素の最小値が使用されます。

- 出力パラメータ - 取得される要素の数を示すために、OracleCommand.ArrayBindCountをゼロより大きい値に設定する必要があります(SELECT文の場合)。

PL/SQL連想配列バインディングは、次のパラメータとともに使用します。

- 入力パラメータ - Valueは、値の配列に設定する必要があります。CollectionTypeは、OracleCollection.PLSQLAssociativeArrayに設定する必要があります。Sizeを設定して、PL/SQL連想配列内で可能な配列要素の最大数を指定する必要があります。SizeがValueの要素の数より少ない場合、Sizeは、バインドされるValueプロパティの要素の数を指定します。

- 出力パラメータ - CollectionTypeは、OracleCollection.PLSQLAssociativeArrayに設定する必要があります。Sizeを設定して、PL/SQL連想配列内の配列要素の最大数を指定する必要があります。

各パラメータには、1つの値が必要です。null値を使用してパラメータをバインドするには、ValueをDBNull.Valueに設定するか、StatusをOracleParameterStatus. NullInsertに設定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

- 「ArrayBindCount」

- 「OracleParameterStatusの列挙」

OracleParameterパブリック・メソッド

OracleParameterパブリック・メソッドを、表5-80にリストします。

表5-80 OracleParameterパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleParameterオブジェクトのシャロー・コピーを作成します

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

割り当てられたリソースを解除します

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

ResetDbType

パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ResetOracleDbType

パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ToString

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

Clone

このメソッドでは、OracleParameterオブジェクトのシャロー・コピーが作成されます。

宣言

// C#
public object Clone();

戻り値

OracleParameterオブジェクト

実装

ICloneable

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class CloneSample
{
static void Main()
{
OracleParameter prm1 = new OracleParameter();

// Prints "prm1.ParameterName = "
Console.WriteLine("prm1.ParameterName = " + prm1.ParameterName);

// Set the ParameterName before cloning
prm1.ParameterName = "MyParam";

// Clone the OracleParameter
OracleParameter prm2 = (OracleParameter) prm1.Clone();

// Prints "prm2.ParameterName = MyParam"
Console.WriteLine("prm2.ParameterName = " + prm2.ParameterName);

prm1.Dispose();
prm2.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

Dispose

このメソッドでは、OracleParameterオブジェクトに割り当てられたリソースが解除されます。

宣言

// C#
public void Dispose();

実装

IDisposable

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

ResetDbType

このメソッドでは、パラメータに渡される値からタイプを推測するために、パラメータに関連付けられたタイプをリセットします。

宣言

// ADO.NET 2.0: C#
public override void ResetDbType();

備考

アプリケーションがOracleParameterオブジェクトのDbTypeまたはOracleDbTypeプロパティを設定していない場合、これらの値はアプリケーションがOracleParameterオブジェクトに設定した値から推測されます。ResetDbTypeメソッドをコールするとこれらのプロパティはリセットされるため、OracleParameterはOracleParameterに渡される値から再度そのタイプを推測できます。このメソッドをコールすると、OracleParameterオブジェクトのDbTypeおよびOracleDbTypeプロパティの両方に影響します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

ResetOracleDbType

このメソッドでは、パラメータに渡される値からタイプを推測するために、パラメータに関連付けられたタイプをリセットします。

宣言

// ADO.NET 2.0: C#
public override void ResetOracleDbType();

備考

アプリケーションがOracleParameterオブジェクトのDbTypeまたはOracleDbTypeプロパティを設定していない場合、これらの値はアプリケーションがOracleParameterオブジェクトに設定した値から推測されます。ResetOracleDbTypeメソッドをコールするとこれらのプロパティはリセットされるため、OracleParameterはOracleParameterに渡される値から再度そのタイプを推測できます。このメソッドをコールすると、OracleParameterオブジェクトのDbTypeおよびOracleDbTypeプロパティの両方に影響します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterクラス

- OracleParameterメンバー

OracleParameterCollectionクラス

OracleParameterCollectionクラスは、OracleCommandオブジェクトに関連するすべてのパラメータと、これらのパラメータのDataSet列へのマッピングのコレクションを表します。

クラスの継承

System.Object

System.MarshalByRefObject

System.Data.Common.DbParameterCollection (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleParameterCollection

宣言

// ADO.NET 2.0: C#
public sealed class OracleParameterCollection : DbParameterCollection,
IDataParameterCollection, IList, ICollection, IEnumerable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleParameterCollectionに追加されたOracleParameterの位置は、SQL文におけるバインディングの位置です。位置は0ベースであり、位置に基づくバインディングにのみ使用されます。名前付きのバインディングが使用されている場合、OracleParameterCollectionのOracleParameterの位置は無視されます。

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleParameterCollectionSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleParameter[] prm = new OracleParameter[3];

// Create OracleParameter objects through OracleParameterCollection
OracleCommand cmd = con.CreateCommand();

cmd.CommandText = "select max(empno) from emp";
int maxno = int.Parse(cmd.ExecuteScalar().ToString());

prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal,
maxno + 10, ParameterDirection.Input);
prm[1] = cmd.Parameters.Add("paramEname", OracleDbType.Varchar2,
"Client", ParameterDirection.Input);
prm[2] = cmd.Parameters.Add("paramDeptNo", OracleDbType.Decimal,
10, ParameterDirection.Input);
cmd.CommandText =
"insert into emp(empno, ename, deptno) values(:1, :2, :3)";
cmd.ExecuteNonQuery();

Console.WriteLine("Record for employee id {0} has been inserted.",
maxno + 10);

// Remove all parameters from OracleParameterCollection
cmd.Parameters.Clear();

prm[0].Dispose();
prm[1].Dispose();
prm[2].Dispose();
cmd.Dispose();

con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionメンバー

- OracleParameterCollection静的メソッド

- OracleParameterCollectionプロパティ

- OracleParameterCollectionパブリック・メソッド

OracleParameterCollectionメンバー

OracleParameterCollectionメンバーは、次の各表にリストしています。

OracleParameterCollection静的メソッド

OracleParameterCollection静的メソッドを、表5-81にリストします。

表5-81 OracleParameterCollection静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleParameterCollectionプロパティ

OracleParameterCollectionプロパティを、表5-82にリストします。

表5-82 OracleParameterCollectionプロパティ

プロパティ

説明

Count

コレクション内のOracleParameterの数を指定します

Item

OracleParameterオブジェクトを取得および設定します(オーバーロード)

OracleParameterCollectionパブリック・メソッド

OracleParameterCollectionパブリック・メソッドを、表5-83にリストします。

表5-83 OracleParameterCollectionパブリック・メソッド

パブリック・メソッド

説明

Add

オブジェクトをコレクションに追加します(オーバーロード)

AddRange

OracleParameterCollectionの終わりに要素が追加されます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

Clear

すべてのOracleParameterオブジェクトをコレクションから削除します

Contains

オブジェクトがコレクション内に存在するかどうかを示します(オーバーロード)

CopyTo

指定されたindexから指定されたarrayまで、コレクションからOracleParameterオブジェクトをコピーします

CreateObjRef

System.MarshalByRefObjectからの継承

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

IndexOf

コレクション内のオブジェクトのindexを戻します(オーバーロード)

Insert

指定されたOracleParameterを指定されたindexにあるコレクションに挿入します

Remove

コレクションからオブジェクトを削除します

RemoveAt

位置によりコレクションからオブジェクトを削除します(オーバーロード)

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

OracleParameterCollection静的メソッド

OracleParameterCollection静的メソッドを、表5-84にリストします。

表5-84 OracleParameterCollection静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

OracleParameterCollectionプロパティ

OracleParameterCollectionプロパティを、表5-85にリストします。

表5-85 OracleParameterCollectionプロパティ

プロパティ

説明

Count

コレクション内のOracleParameterの数を指定します

Item

OracleParameterオブジェクトを取得および設定します(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Count

このプロパティでは、コレクション内のOracleParameterオブジェクトの数が指定されます。

宣言

// ADO.NET 2.0: C#
public override int Count {get;}

プロパティ値

OracleParameterオブジェクトの数

実装

ICollection

備考

デフォルト = 0

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Item

Itemでは、OracleParameterオブジェクトが取得および設定されます。

オーバーロード・リスト:

- Item[int]
このプロパティでは、parameterIndexで指定された索引にあるOracleParameterオブジェクトが取得および設定されます。

- Item[string]
このプロパティでは、parameterNameにより指定されたパラメータ名を使用して、OracleParameterオブジェクトが取得および設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Item[int]

このプロパティでは、parameterIndexで指定された索引にあるOracleParameterオブジェクトが取得および設定されます。

宣言

// C#
public object Item[int parameterIndex] {get; set;}

プロパティ値

オブジェクト

実装

IList

例外

IndexOutOfRangeException - 指定された索引は存在しません。

備考

OracleParameterCollectionクラスは、ゼロベースの索引です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Item[string]

このプロパティでは、parameterNameにより指定されたパラメータ名を使用して、OracleParameterオブジェクトが取得および設定されます。

宣言

// C#
public OracleParameter Item[string parameterName] {get; set;};

プロパティ値

OracleParameter

実装

IDataParameterCollection

例外

IndexOutOfRangeException - 指定されたパラメータ名は存在しません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

OracleParameterCollectionパブリック・メソッド

OracleParameterCollectionパブリック・メソッドを、表5-86にリストします。

表5-86 OracleParameterCollectionパブリック・メソッド

パブリック・メソッド

説明

Add

オブジェクトをコレクションに追加します(オーバーロード)

AddRange

OracleParameterCollectionの終わりに要素が追加されます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

Clear

すべてのOracleParameterオブジェクトをコレクションから削除します

Contains

オブジェクトがコレクション内に存在するかどうかを示します(オーバーロード)

CopyTo

指定されたindexから指定されたarrayまで、コレクションからOracleParameterオブジェクトをコピーします

CreateObjRef

System.MarshalByRefObjectからの継承

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

IndexOf

コレクション内のオブジェクトのindexを戻します(オーバーロード)

Insert

指定されたOracleParameterを指定されたindexにあるコレクションに挿入します

Remove

コレクションからオブジェクトを削除します

RemoveAt

位置によりコレクションからオブジェクトを削除します(オーバーロード)

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add

Addでは、オブジェクトがコレクションに追加されます。

オーバーロード・リスト:

- Add(object)
このメソッドでは、指定されたオブジェクトがコレクションに追加されます。

- Add(OracleParameter)
このメソッドでは、指定されたOracleParameterオブジェクトがコレクションに追加されます。

- Add(string, object)
このメソッドでは、指定された名前とオブジェクト値を使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add(string, OracleDbType)
このメソッドでは、指定された名前とデータベース型を使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add(string, OracleDbType, ParameterDirection)
このメソッドでは、指定された名前、データベース型およびディレクションを使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add(string, OracleDbType, object, ParameterDirection)
このメソッドでは、指定された名前、データベース型、パラメータ値およびディレクションを使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add(string, OracleDbType, int, object, ParameterDirection)
このメソッドでは、指定された名前、データベース型、サイズ、パラメータ値およびディレクションを使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add(string, OracleDbType, int)
このメソッドでは、指定された名前、データベース型およびサイズを使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add (string, OracleDbType, int, string)
このメソッドでは、指定された名前、データベース型、サイズおよびソース列を使用して、OracleParameterオブジェクトがコレクションに追加されます。

- Add(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)
このメソッドでは、指定された名前、データベース・タイプ、サイズ、ディレクション、NULLインジケータ、精度、スケール、ソース列、ソース・バージョンおよびパラメータ値を使用して、OracleParameterオブジェクトがコレクションに追加されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add(object)

このメソッドでは、指定されたオブジェクトがコレクションに追加されます。

宣言

// ADO.NET 2.0: C#
public override int Add(object obj);

パラメータ

- obj
指定されたオブジェクト

戻り値

新規OracleParameterが追加される索引

実装

IList

備考

InvalidCastException - 指定されたobjは、OracleParameterオブジェクトにキャストできません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add(OracleParameter)

このメソッドでは、指定されたOracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(OracleParameter paramObj);

パラメータ

- paramObj
指定されたOracleParameterオブジェクト

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add(string, object)

このメソッドでは、指定された名前とオブジェクト値を使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, object val);

パラメータ

- name
パラメータ名

- val
OracleParameter値

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add(string, OracleDbType)

このメソッドでは、指定された名前とデータベース型を使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType);

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add(string, OracleDbType, ParameterDirection)

このメソッドでは、指定された名前、データベース型およびディレクションを使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType,
ParameterDirection direction);

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

- direction
OracleParameterディレクション

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

- 「OracleDbTypeの列挙型」

Add(string, OracleDbType, object, ParameterDirection)

このメソッドでは、指定された名前、データベース型、パラメータ値およびディレクションを使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType, object val,
ParameterDirection dir);

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

- val
OracleParameter値

- dir
ParameterDirection値

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

例

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class AddSample
{
static void Main()
{
OracleCommand cmd = new OracleCommand();

// Add parameter to the OracleParameterCollection
OracleParameter prm = cmd.Parameters.Add(
"MyParam", OracleDbType.Decimal, 1, ParameterDirection.Input);

// Prints "cmd.Parameters.Count = 1"
Console.WriteLine("cmd.Parameters.Count = " + cmd.Parameters.Count);

prm.Dispose();
cmd.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

- 「OracleDbTypeの列挙型」

Add(string, OracleDbType, int, object, ParameterDirection)

このメソッドでは、指定された名前、データベース型、サイズ、パラメータ値およびディレクションを使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType, int size,
object val, ParameterDirection dir;

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

- size
OracleParameterのサイズ

- val
OracleParameter値

- dir
ParameterDirection値

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

- 「OracleDbTypeの列挙型」

Add(string, OracleDbType, int)

このメソッドでは、指定された名前、データベース型およびサイズを使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType, int size);

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

- size
OracleParameterのサイズ

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

例

// C#

using System;
using Oracle.DataAccess.Client;

class AddSample
{
static void Main()
{
OracleCommand cmd = new OracleCommand();

// Add parameter to the OracleParameterCollection
OracleParameter prm = cmd.Parameters.Add(
"MyParam", OracleDbType.Varchar2, 10);

// Prints "cmd.Parameters.Count = 1"
Console.WriteLine("cmd.Parameters.Count = " + cmd.Parameters.Count);

prm.Dispose();
cmd.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add (string, OracleDbType, int, string)

このメソッドでは、指定された名前、データベース型、サイズおよびソース列を使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType, int size,
string srcColumn);

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

- size
OracleParameterのサイズ

- srcColumn
ソース列の名前

戻り値

OracleParameter

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Add(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)

このメソッドでは、指定された名前、データベース・タイプ、サイズ、ディレクション、NULLインジケータ、精度、スケール、ソース列、ソース・バージョンおよびパラメータ値を使用して、OracleParameterオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleParameter Add(string name, OracleDbType dbType, int size,
ParameterDirection dir, bool isNullable, byte precision,
byte scale, string srcColumn, DataRowVersion version, object val);

パラメータ

- name
パラメータ名

- dbType
OracleParameterのデータ型

- size
OracleParameterのサイズ

- dir
ParameterDirection値

- isNullable
parameter値をnullにできるかどうかを指定するインジケータ

- precision
parameter値の精度

- scale
parameter値のスケール

- srcColumn
ソース列の名前

- version
DataRowVersion値

- val
parameter値

戻り値

コレクションに追加された新規作成のOracleParameterオブジェクト

例外

ArgumentException - 指定されたvalのタイプは、ODP.NETタイプのValueプロパティのタイプに属しません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

AddRange

このメソッドでは、OracleParameterCollectionの終わりに要素が追加されます。

宣言

// ADO.NET 2.0: C#
public override void AddRange(Array paramArray );

パラメータ

paramArray

OracleParameterオブジェクトの配列。

例外

ArgumentNullException - 入力パラメータはNullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Clear

このメソッドでは、すべてのOracleParameterオブジェクトがコレクションから削除されます。

宣言

// ADO.NET 2.0: C#
public override void Clear();

実装

IList

例

// C#

using System;
using Oracle.DataAccess.Client;

class ClearSample
{
static void Main()
{
OracleCommand cmd = new OracleCommand();

// Add parameter to the OracleParameterCollection
OracleParameter prm = cmd.Parameters.Add("MyParam", OracleDbType.Decimal);

// Prints "cmd.Parameters.Count = 1"
Console.WriteLine("cmd.Parameters.Count = " + cmd.Parameters.Count);

// Clear all parameters in the OracleParameterCollection
cmd.Parameters.Clear();

// Prints "cmd.Parameters.Count = 0"
Console.WriteLine("cmd.Parameters.Count = " + cmd.Parameters.Count);

prm.Dispose();
cmd.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Contains

Containsは、指定されたオブジェクトがコレクション内に存在するかどうかを示します。

オーバーロード・リスト:

- Contains(object)
このメソッドは、指定されたオブジェクトがコレクション内に存在するかどうかを示します。

- Contains(string)
このメソッドは、指定された文字列を使用して、OracleParameterオブジェクトがコレクション内に存在するかどうかを示します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Contains(object)

このメソッドは、指定されたオブジェクトがコレクション内に存在するかどうかを示します。

宣言

// ADO.NET 2.0: C#
public override bool Contains(object obj)

パラメータ

- obj
オブジェクト

戻り値

指定されたOracleParameterがコレクション内にあるかどうかを示すbool

実装

IList

例外

InvalidCastException - 指定されたobjは、OracleParameterオブジェクトではありません。

備考

コレクションにOracleParameterオブジェクトが含まれる場合はtrueを戻し、それ以外の場合はfalseを戻します。

例

// C#

using System;
using Oracle.DataAccess.Client;

class ContainsSample
{
static void Main()
{
OracleCommand cmd = new OracleCommand();

// Add parameter to the OracleParameterCollection
OracleParameter prm1 = cmd.Parameters.Add("MyParam", OracleDbType.Decimal);

// Check if the OracleParameterCollection contains prm1
bool bContains = cmd.Parameters.Contains(prm1);

// Prints "bContains = True"
Console.WriteLine("bContains = " + bContains);

OracleParameter prm2 = new OracleParameter();

// Check if the OracleParameterCollection contains prm2
bContains = cmd.Parameters.Contains(prm2);

// Prints "bContains = False"
Console.WriteLine("bContains = " + bContains);

prm1.Dispose();
prm2.Dispose();
cmd.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Contains(string)

このメソッドは、指定された文字列を使用して、OracleParameterオブジェクトがコレクション内に存在するかどうかを示します。

宣言

// ADO.NET 2.0: C#
public override bool Contains(string name);

パラメータ

- name
OracleParameterオブジェクトの名前

戻り値

指定されたパラメータ名を持つOracleParameterオブジェクトがコレクションに含まれる場合はtrueを戻し、それ以外の場合はfalseを戻します。

実装

IDataParameterCollection

例

// C#

using System;
using Oracle.DataAccess.Client;

class ContainsSample
{
static void Main()
{
OracleCommand cmd = new OracleCommand();

// Add parameter to the OracleParameterCollection
OracleParameter prm = cmd.Parameters.Add("MyParam", OracleDbType.Decimal);

// Check if the OracleParameterCollection contains "MyParam"
bool bContains = cmd.Parameters.Contains("MyParam");

// Prints "bContains = True"
Console.WriteLine("bContains = " + bContains);

// Check if the OracleParameterCollection contains "NoParam"
bContains = cmd.Parameters.Contains("NoParam");

// Prints "bContains = False"
Console.WriteLine("bContains = " + bContains);

prm.Dispose();
cmd.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

CopyTo

このメソッドでは、指定されたindexから指定されたarrayまで、コレクションからOracleParameterオブジェクトがコピーされます。

宣言

// ADO.NET 2.0: C#
public override void CopyTo(Array array, int index);

パラメータ

- array
指定された配列

- index
配列インデックス

実装

ICollection

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

IndexOf

IndexOfでは、コレクション内のOracleParameterオブジェクトの索引が戻されます。

オーバーロード・リスト:

- IndexOf(object)
このメソッドでは、コレクション内のOracleParameterオブジェクトの索引が戻されます。

- IndexOf(String)
このメソッドでは、コレクション内の指定された名前を持つOracleParameterオブジェクトのindexが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

IndexOf(object)

このメソッドでは、コレクション内のOracleParameterオブジェクトの索引が戻されます。

宣言

// ADO.NET 2.0: C#
public override int IndexOf(object obj);

パラメータ

- obj
指定されたオブジェクト

戻り値

コレクション内のOracleParameterオブジェクトの索引が戻されます。

実装

IList

例外

InvalidCastException - 指定されたobjは、OracleParameterオブジェクトにキャストできません。

備考

コレクション内の指定されたOracleParameter objのindexが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

IndexOf(String)

このメソッドでは、コレクション内の指定された名前を持つOracleParameterオブジェクトのindexが戻されます。

宣言

// ADO.NET 2.0: C#
public override int IndexOf(String name);

パラメータ

- name
パラメータ名

戻り値

コレクション内の指定されたOracleParameterのindexが戻されます。

実装

IDataParameterCollection

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Insert

このメソッドでは、指定されたOracleParameterオブジェクトが、指定されたindexにあるコレクションに挿入されます。

宣言

// ADO.NET 2.0: C#
public override void Insert(int index, object obj);

パラメータ

- index
指定された索引

- obj
OracleParameterオブジェクト

実装

IList

備考

指定されたobjをOracleParameterオブジェクトにキャストできない場合、InvalidCastExceptionが表示されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

Remove

このメソッドでは、指定されたOracleParameterがコレクションから削除されます。

宣言

// ADO.NET 2.0: C#
public override void Remove(object obj);

パラメータ

- obj
削除するオブジェクトを指定

実装

IList

例外

InvalidCastException - 指定されたobjは、OracleParameterオブジェクトにキャストできません。

例

// C#

using System;
using Oracle.DataAccess.Client;

class RemoveSample
{
static void Main()
{
OracleCommand cmd = new OracleCommand();

// Add 2 parameters to the OracleParameterCollection
OracleParameter prm1 = cmd.Parameters.Add("MyParam1", OracleDbType.Decimal);
OracleParameter prm2 = cmd.Parameters.Add("MyParam2", OracleDbType.Decimal);

// Prints "cmd.Parameters.Count = 2"
Console.WriteLine("cmd.Parameters.Count = " + cmd.Parameters.Count);

// Remove the 1st parameter from the OracleParameterCollection
cmd.Parameters.Remove(prm1);

// Prints "cmd.Parameters.Count = 1"
Console.WriteLine("cmd.Parameters.Count = " + cmd.Parameters.Count);

// Prints "cmd.Parameters[0].ParameterName = MyParam2"
Console.WriteLine("cmd.Parameters[0].ParameterName = " +
cmd.Parameters[0].ParameterName);

prm1.Dispose();
prm2.Dispose();
cmd.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

RemoveAt

RemoveAtでは、位置によりOracleParameterオブジェクトがコレクションから削除されます。

オーバーロード・リスト:

- RemoveAt(int)
このメソッドでは、指定された索引の位置にあるOracleParameterオブジェクトがコレクションから削除されます。

- RemoveAt(String)
このメソッドでは、指定された名前のOracleParameterオブジェクトがコレクションから削除されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

RemoveAt(int)

このメソッドでは、指定された索引の位置にあるOracleParameterオブジェクトがコレクションから削除されます。

宣言

// ADO.NET 2.0: C#
public override void RemoveAt(int index);

パラメータ

- index
OracleParameterが削除される索引を指定

実装

IList

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

RemoveAt(String)

このメソッドでは、指定された名前のOracleParameterオブジェクトがコレクションから削除されます。

宣言

// ADO.NET 2.0: C#
public override void RemoveAt(String name);

パラメータ

- name
コレクションから削除されるOracleParameterオブジェクトの名前

実装

IDataParameterCollection

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleParameterCollectionクラス

- OracleParameterCollectionメンバー

OraclePermissionクラス

OraclePermissionオブジェクトを使用すると、ODP.NETで強制的セキュリティを適用でき、ユーザーのセキュリティ・レベルがデータへのアクセスに十分であることを保証するのに役立ちます。

クラスの継承

System.Object

System.Security.CodeAccessPermission

System.Data.Common.DBDataPermission

Oracle.DataAccess.Client.OraclePermission

宣言

// ADO.NET 2.0: C#
public class OraclePermission: DBDataPermission

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionメンバー

- OraclePermissionコンストラクタ

- OraclePermission静的メソッド

- OraclePermissionパブリック・プロパティ

- OraclePermissionパブリック・メソッド

OraclePermissionメンバー

OraclePermissionメンバーを、次の各表に示します。

OraclePermissionコンストラクタ

OraclePermissionコンストラクタを、表5-87にリストします。

表5-87 OraclePermissionコンストラクタ

コンストラクタ

説明

OraclePermissionコンストラクタ

OraclePermissionクラスの新規インスタンスをインスタンス化します。

OraclePermission静的メソッド

OraclePermission静的メソッドを、表5-88にリストします。

表5-88 OraclePermission静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

ReferenceEquals

System.Objectからの継承

RevertAll

CodeAccessPermissionからの継承

RevertAssert

CodeAccessPermissionからの継承

RevertDeny

CodeAccessPermissionからの継承

RevertPermitOnly

CodeAccessPermissionからの継承

OraclePermissionパブリック・プロパティ

OraclePermissionパブリック・メソッドを、表5-92にリストします。

表5-89 OraclePermissionパブリック・プロパティ

パブリック・プロパティ

説明

AllowBlankPassword

DBDataPermissionからの継承

OraclePermissionはこのプロパティをサポートしていません。

OraclePermissionパブリック・メソッド

OraclePermissionパブリック・メソッドを、表5-90にリストします。

表5-90 OraclePermissionパブリック・メソッド

パブリック・メソッド

説明

Add

新しい接続文字列断片と制限されたキーワードのリストをOraclePermissionオブジェクトに追加します

Assert

CodeAccessPermissionからの継承

Copy

現行の権限オブジェクトのコピーを戻します

Demand

CodeAccessPermissionからの継承

Deny

CodeAccessPermissionからの継承

Equals

CodeAccessPermissionからの継承

FromXml

DBDataPermissionからの継承

GetHashCode

CodeAccessPermissionからの継承

GetType

System.Objectからの継承

Intersect

DBDataPermissionからの継承

IsSubsetOf

現行の権限がターゲット権限のサブセットかどうかを示すブール値を戻します

IsUnrestricted

DBDataPermissionからの継承

PermitOnly

CodeAccessPermissionからの継承

ToString

CodeAccessPermissionからの継承

ToXml

DBDataPermissionからの継承

Union

DBDataPermissionからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

OraclePermissionコンストラクタ

OraclePermissionコンストラクタは、OraclePermissionクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OraclePermission (PermissionState state);

パラメータ

- state
stateパラメータは、PermissionState.NoneとPermissionState.Unrestrictedのいずれかの値を取ります。

例外

ArgumentException - PermissionState値が無効です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

OraclePermission静的メソッド

OraclePermission静的メソッドを、表5-91にリストします。

表5-91 OraclePermission静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

ReferenceEquals

System.Objectからの継承

RevertAll

CodeAccessPermissionからの継承

RevertAssert

CodeAccessPermissionからの継承

RevertDeny

CodeAccessPermissionからの継承

RevertPermitOnly

CodeAccessPermissionからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

OraclePermissionパブリック・プロパティ

OraclePermissionパブリック・メソッドを、表5-92にリストします。

表5-92 OraclePermissionパブリック・プロパティ

パブリック・プロパティ

説明

AllowBlankPassword

DBDataPermissionからの継承

OraclePermissionはこのプロパティの値を無視します。OraclePermissionオブジェクトに対しては、このプロパティに設定された値は無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

OraclePermissionパブリック・メソッド

OraclePermissionパブリック・メソッドを、表5-93にリストします。

表5-93 OraclePermissionパブリック・メソッド

パブリック・メソッド

説明

Add

新しい接続文字列断片と制限されたキーワードのリストをOraclePermissionオブジェクトに追加します

Assert

CodeAccessPermissionからの継承

Copy

現行の権限オブジェクトのコピーを戻します

Demand

CodeAccessPermissionからの継承

Deny

CodeAccessPermissionからの継承

Equals

CodeAccessPermissionからの継承

FromXml

DBDataPermissionからの継承

GetHashCode

CodeAccessPermissionからの継承

GetType

System.Objectからの継承

Intersect

DBDataPermissionからの継承

IsSubsetOf

現行の権限がターゲット権限のサブセットかどうかを示すブール値を戻します

IsUnrestricted

DBDataPermissionからの継承

PermitOnly

CodeAccessPermissionからの継承

ToString

CodeAccessPermissionからの継承

ToXml

DBDataPermissionからの継承

Union

DBDataPermissionからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

Add

このメソッドは、新しい接続文字列断片と制限されているキーワードのリストをOraclePermissionオブジェクトに追加します。

宣言

// C#
public void Add(string connStr, string keyRestrict,
KeyRestrictionBehavior behavior);

パラメータ

- connStr
接続文字列断片。

- keyRestrict
キー制限。

- behavior
次のKeyRestrictionBehaviorの列挙のいずれか。

- AllowOnly

- PreventUsage

例外

ArgumentException - KeyRestrictionBehavior値、あるいはconnStrまたはkeyRestict文字列の形式が無効です。

備考

Addメソッドは、権限オブジェクトで許可または禁止される接続文字列を構成します。

OracleConnectionをオープンする操作は、接続文字列断片、キー制限およびキー制限の動作に基づいて、許可または拒否されます。

次の例では、KeyRestrictionBehavior.AllowOnlyにより、任意のUser IdとPasswordの組合せとともにorclをData Sourceとして使用する接続文字列を許可しています。他の接続文字列キーワードは許可されません。User IdとPassword以外の接続文字列キーワードを使用すると、セキュリティ例外が発生します。

orclPermission.Add("Data Source=orcl;","User Id=;Password=;",
KeyRestrictionBehavior.AllowOnly);

次の例では、KeyRestrictionBehavior.PreventUsageにより、キーワードPoolingを使用する接続文字列を制限しています。Poolingキーワードを使用すると、例外が発生します。

orclPermission.Add("Data Source=orcl;","Pooling=;",
KeyRestrictionBehavior.PreventUsage)

一般的なルールとして、制限のない環境では許可されていない接続文字列は制限され、セキュリティ例外がスローされる原因となります。

接続文字列断片にpasswordおよびproxy password属性のキー値のペアが含まれる場合、それらの属性の値は無視されます。ただし、属性自体が存在するかどうかはチェックされます。つまり、接続が許可されるのは、passwordおよびproxy attributesキーワードが接続文字列で許可されている場合のみです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

Copy

このメソッドは、現行の権限オブジェクトのコピーを戻します。

宣言

// C#
public override IPermission Copy();

戻り値

OraclePermissionオブジェクトのコピー。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

IsSubsetOf

このメソッドは、現行の権限がターゲット権限のサブセットかどうかを示すブール値を戻します。

宣言

// C#
public override bool IsSubsetOf(IPermission target);

パラメータ

- target
タイプがOraclePermissionである必要のある権限。

戻り値

現行の権限がターゲット権限のサブセットかどうかを示すbool値。

例外

ArgumentException - 権限のタイプがOraclePermissionではありません。

備考

現行の権限がターゲット権限のサブセットかどうかを評価する際に、AllowBlankPasswordプロパティは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionクラス

- OraclePermissionメンバー

OraclePermissionAttributeクラス

OraclePermissionAttributeオブジェクトを使用すると、ODP.NETで宣言的セキュリティを適用でき、ユーザーのセキュリティ・レベルがデータへのアクセスに十分であることを保証するのに役立ちます。

クラスの継承

System.Object

System.Attribute

System.Security.Permissions.SecurityAttribute

System.Security.Permissions.CodeAccessSecurityAttribute

System.Data.Common.DBDataPermissionAttribute

Oracle.DataAccess.Client.OraclePermissionAttribute

宣言

// ADO.NET 2.0:C#
[Serializable, AttributeUsage(AttributeTargets.Method |
AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct |
AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
public sealed class OraclePermissionAttribute: DBDataPermissionAttribute

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeメンバー

- OraclePermissionAttributeコンストラクタ

- OraclePermissionAttribute静的メソッド

- OraclePermissionAttributeパブリック・プロパティ

- OraclePermissionAttributeパブリック・メソッド

OraclePermissionAttributeメンバー

OraclePermissionAttributeメンバーを、次の各表に示します。

OraclePermissionAttributeコンストラクタ

OraclePermissionAttributeコンストラクタを、表5-94にリストします。

表5-94 OraclePermissionコンストラクタ

コンストラクタ

説明

OraclePermissionAttributeコンストラクタ

OraclePermissionAttributeクラスの新規インスタンスをインスタンス化します。

OraclePermissionAttribute静的メソッド

OraclePermissionAttribute静的メソッドを、表5-95にリストします。

表5-95 OraclePermissionAttribute静的メソッド

静的メソッド

説明

GetCustomAttribute

System.Attributeからの継承(オーバーロード)

GetCustomAttributes

System.Attributeからの継承(オーバーロード)

IsDefined

System.Attributeからの継承(オーバーロード)

ReferenceEquals

System.Objectからの継承

OraclePermissionAttributeパブリック・プロパティ

OraclePermissionAttributeパブリック・プロパティを、表5-96にリストします。

表5-96 OraclePermissionAttributeパブリック・プロパティ

パブリック・プロパティ

説明

Action

SecurityAttributeからの継承

AllowBlankPassword

DBDataPermissionAttributeからの継承。

OraclePermissionAttributeはこのプロパティを無視します。OraclePermissionAttributeオブジェクトに対しては、このプロパティに設定された値は無視されます。

ConnectionString

DBDataPermissionAttributeからの継承

KeyRestrictionBehavior

DBDataPermissionAttributeからの継承

KeyRestrictions

DBDataPermissionAttributeからの継承

TypeId

System.Attributeからの継承

Unrestricted

SecurityAttributeからの継承

OraclePermissionAttributeパブリック・メソッド

OraclePermissionAttributeパブリック・メソッドを、表5-97にリストします。

表5-97 OraclePermissionAttributeパブリック・メソッド

パブリック・メソッド

説明

CreatePermission

属性セットに基づいて構成された新しいOraclePermissionAttributeオブジェクトを戻します

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ShouldSerializeConnectionString

DBDataPermissionAttributeからの継承

ShouldSerializeKeyRestrictions

DBDataPermissionAttributeからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeクラス

OraclePermissionAttributeコンストラクタ

OraclePermissionAttributeコンストラクタは、OraclePermissionAttributeクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OraclePermissionAttribute (SecurityAction action);

パラメータ

- action
宣言的セキュリティを使用して実行可能なアクションを表すSystem.Security.Permissions.SecurityAction値。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeクラス

- OraclePermissionAttributeメンバー

OraclePermissionAttribute静的メソッド

OraclePermissionAttribute静的メソッドを、表5-98にリストします。

表5-98 OraclePermissionAttribute静的メソッド

静的メソッド

説明

GetCustomAttribute

System.Attributeからの継承(オーバーロード)

GetCustomAttributes

System.Attributeからの継承(オーバーロード)

IsDefined

System.Attributeからの継承(オーバーロード)

ReferenceEquals

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeクラス

- OraclePermissionAttributeメンバー

OraclePermissionAttributeパブリック・プロパティ

OraclePermissionAttributeパブリック・プロパティを、表5-99にリストします。

表5-99 OraclePermissionAttributeパブリック・プロパティ

パブリック・プロパティ

説明

Action

SecurityAttributeからの継承

AllowBlankPassword

DBDataPermissionAttributeからの継承。

OraclePermissionAttributeはこのプロパティを無視します。OraclePermissionAttributeオブジェクトに対しては、このプロパティに設定された値は無視されます。

ConnectionString

DBDataPermissionAttributeからの継承

KeyRestrictionBehavior

DBDataPermissionAttributeからの継承

KeyRestrictions

DBDataPermissionAttributeからの継承

TypeId

System.Attributeからの継承

Unrestricted

SecurityAttributeからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeクラス

- OraclePermissionAttributeメンバー

OraclePermissionAttributeパブリック・メソッド

OraclePermissionAttributeパブリック・メソッドを、表5-100にリストします。

表5-100 OraclePermissionAttributeパブリック・メソッド

パブリック・メソッド

説明

CreatePermission

属性セットに基づいて構成された新しいOraclePermissionAttributeオブジェクトを戻します

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ShouldSerializeConnectionString

DBDataPermissionAttributeからの継承

ShouldSerializeKeyRestrictions

DBDataPermissionAttributeからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeクラス

- OraclePermissionAttributeメンバー

CreatePermission

このメソッドは、属性セットに基づいて構成された新しいOraclePermissionAttributeオブジェクトを戻します。

宣言

// C#
public override IPermission CreatePermission();

戻り値

OraclePermissionオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OraclePermissionAttributeクラス

- OraclePermissionAttributeメンバー

OracleRowUpdatedEventArgsクラス

OracleRowUpdatedEventArgsクラスは、OracleDataAdapter.RowUpdatedイベントのイベント・データを提供します。

クラスの継承

System.Object

System.EventArgs

System.RowUpdatedEventArgs

System.OracleRowUpdatedEventArgs

宣言

// C#
public sealed class OracleRowUpdatedEventArgs : RowUpdatedEventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

RowUpdatedイベントの例では、OracleRowUpdatedEventArgsの使用方法を示しています。RowUpdatedイベントの「例」を参照してください。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsメンバー

- OracleRowUpdatedEventArgsコンストラクタ

- OracleRowUpdatedEventArgs静的メソッド

- OracleRowUpdatedEventArgsプロパティ

- OracleRowUpdatedEventArgsパブリック・メソッド

- OracleDataAdapterクラス

OracleRowUpdatedEventArgsメンバー

次の表に、OracleRowUpdatedEventArgsメンバーを示します。

OracleRowUpdatedEventArgsコンストラクタ

OracleRowUpdatedEventArgsコンストラクタを、表5-101にリストします。

表5-101 OracleRowUpdatedEventArgsコンストラクタ

コンストラクタ

説明

OracleRowUpdatedEventArgsコンストラクタ

OracleRowUpdatedEventArgsクラスの新しいインスタンスをインスタンス化します

OracleRowUpdatedEventArgs静的メソッド

OracleRowUpdatedEventArgs静的メソッドを、表5-102にリストします。

表5-102 OracleRowUpdatedEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleRowUpdatedEventArgsプロパティ

OracleRowUpdatedEventArgsプロパティを、表5-103にリストします。

表5-103 OracleRowUpdatedEventArgsプロパティ

プロパティ

説明

Command

OracleDataAdapter.Update()が呼び出されたときに使用されるOracleCommandを指定します

Errors

System.Data.Common.RowUpdatedEventArgsからの継承

RecordsAffected

System.Data.Common.RowUpdatedEventArgsからの継承

Row

System.Data.Common.RowUpdatedEventArgsからの継承

StatementType

System.Data.Common.RowUpdatedEventArgsからの継承

Status

System.Data.Common.RowUpdatedEventArgsからの継承

TableMapping

System.Data.Common.RowUpdatedEventArgsからの継承

OracleRowUpdatedEventArgsパブリック・メソッド

OracleRowUpdatedEventArgsプロパティを、表5-104にリストします。

表5-104 OracleRowUpdatedEventArgsパブリック・メソッド

パブリック・メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsクラス

OracleRowUpdatedEventArgsコンストラクタ

OracleRowUpdatedEventArgsコンストラクタは、新しいOracleRowUpdatedEventArgsインスタンスを作成します。

宣言

// C#
public OracleRowUpdatedEventArgs(DataRow row,IDbCommand command,
StatementType statementType, DataTableMapping tableMapping);

パラメータ

- row
Updateに対して送信されるDataRow

- command
Update中に実行されるIDbCommand

- statementType
実行されるSQL文のタイプを示すStatementType列挙値

- tableMapping
Updateに対して使用されるDataTableMapping

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventArgsメンバー

OracleRowUpdatedEventArgs静的メソッド

OracleRowUpdatedEventArgs静的メソッドを、表5-105にリストします。

表5-105 OracleRowUpdatedEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventArgsメンバー

OracleRowUpdatedEventArgsプロパティ

OracleRowUpdatedEventArgsプロパティを、表5-106にリストします。

表5-106 OracleRowUpdatedEventArgsプロパティ

プロパティ

説明

Command

OracleDataAdapter.Update()が呼び出されたときに使用されるOracleCommandを指定します

Errors

System.Data.Common.RowUpdatedEventArgsからの継承

RecordsAffected

System.Data.Common.RowUpdatedEventArgsからの継承

Row

System.Data.Common.RowUpdatedEventArgsからの継承

StatementType

System.Data.Common.RowUpdatedEventArgsからの継承

Status

System.Data.Common.RowUpdatedEventArgsからの継承

TableMapping

System.Data.Common.RowUpdatedEventArgsからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventArgsメンバー

Command

このプロパティは、OracleDataAdapter.Update()が呼び出されたときに使用されるOracleCommandを指定します。

宣言

// C#
public new OracleCommand Command {get;}

プロパティ値

Updateが呼び出されたときに実行されるOracleCommand

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventArgsメンバー

OracleRowUpdatedEventArgsパブリック・メソッド

OracleRowUpdatedEventArgsプロパティを、表5-107にリストします。

表5-107 OracleRowUpdatedEventArgsパブリック・メソッド

パブリック・メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatedEventArgsクラス

- OracleRowUpdatedEventArgsメンバー

OracleRowUpdatedEventHandlerデリゲート

OracleRowUpdatedEventHandlerデリゲートは、OracleDataAdapter.RowUpdatedイベントを処理するメソッドの署名を表します。

宣言

// C#
public delegate void OracleRowUpdatedEventHandler(object sender,
OracleRowUpdatedEventArgs eventArgs);

パラメータ

- sender
イベントのソース

- eventArgs
イベント・データが含まれるOracleRowUpdatedEventArgsオブジェクト

備考

行が更新された後に通知を必要とするアプリケーションでは、このイベント・デリゲートによってイベントのコールバックを登録できます。

.NET Frameworkでは、イベント・デリゲートの表記規則において、イベントを呼び出すオブジェクトおよびイベント・データの2つのパラメータが必要です。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「RowUpdated」

OracleRowUpdatingEventArgsクラス

OracleRowUpdatingEventArgsクラスは、OracleDataAdapter.RowUpdatingイベントのイベント・データを提供します。

クラスの継承

System.Object

System.EventArgs

System.RowUpdatingEventArgs

System.OracleRowUpdatingEventArgs

宣言

// C#
public sealed class OracleRowUpdatingEventArgs : RowUpdatingEventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

RowUpdatedイベントの例では、OracleRowUpdatingEventArgsの使用方法を示しています。RowUpdatedイベントの「例」を参照してください。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsメンバー

- OracleRowUpdatingEventArgsコンストラクタ

- OracleRowUpdatingEventArgs静的メソッド

- OracleRowUpdatingEventArgsプロパティ

- OracleRowUpdatingEventArgsパブリック・メソッド

- 「OracleDataAdapterクラス」

OracleRowUpdatingEventArgsメンバー

OracleRowUpdatingEventArgsメンバーは、次の各表にリストしています。

OracleRowUpdatingEventArgsコンストラクタ

OracleRowUpdatingEventArgsコンストラクタを、表5-108にリストします。

表5-108 OracleRowUpdatingEventArgsコンストラクタ

コンストラクタ

説明

OracleRowUpdatingEventArgsコンストラクタ

OracleRowUpdatingEventArgsクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleRowUpdatingEventArgs静的メソッド

OracleRowUpdatingEventArgs静的メソッドを、表5-109にリストします。

表5-109 OracleRowUpdatingEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleRowUpdatingEventArgsプロパティ

OracleRowUpdatingEventArgsプロパティを、表5-110にリストします。

表5-110 OracleRowUpdatingEventArgsプロパティ

プロパティ

説明

Command

OracleDataAdapter.Update()が呼び出されたときに使用されるOracleCommandを指定します

Errors

System.Data.Common.RowUpdatingEventArgsからの継承

Row

System.Data.Common.RowUpdatingEventArgsからの継承

StatementType

System.Data.Common.RowUpdatingEventArgsからの継承

Status

System.Data.Common.RowUpdatingEventArgsからの継承

TableMapping

System.Data.Common.RowUpdatingEventArgsからの継承

OracleRowUpdatingEventArgsパブリック・メソッド

OracleRowUpdatingEventArgsパブリック・メソッドを、表5-111にリストします。

表5-111 OracleRowUpdatingEventArgsパブリック・メソッド

パブリック・メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsクラス

OracleRowUpdatingEventArgsコンストラクタ

OracleRowUpdatingEventArgsコンストラクタは、指定されたデータ行、IDbCommand、SQL文のタイプおよび表マッピングを使用して、OracleRowUpdatingEventArgsクラスの新しいインスタンスを作成します。

宣言

// C#
public OracleRowUpdatingEventArgs(DataRow row, IDbCommand command,
StatementType statementType, DataTableMapping tableMapping);

パラメータ

- row
Updateに対して送信されるDataRow

- command
Update中に実行されるIDbCommand

- statementType
実行されるSQL文のタイプを示すStatementType列挙値

- tableMapping
Updateに対して使用されるDataTableMapping

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventArgsメンバー

OracleRowUpdatingEventArgs静的メソッド

OracleRowUpdatingEventArgs静的メソッドを、表5-112にリストします。

表5-112 OracleRowUpdatingEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventArgsメンバー

OracleRowUpdatingEventArgsプロパティ

OracleRowUpdatingEventArgsプロパティを、表5-113にリストします。

表5-113 OracleRowUpdatingEventArgsプロパティ

プロパティ

説明

Command

OracleDataAdapter.Update()が呼び出されたときに使用されるOracleCommandを指定します

Errors

System.Data.Common.RowUpdatingEventArgsからの継承

Row

System.Data.Common.RowUpdatingEventArgsからの継承

StatementType

System.Data.Common.RowUpdatingEventArgsからの継承

Status

System.Data.Common.RowUpdatingEventArgsからの継承

TableMapping

System.Data.Common.RowUpdatingEventArgsからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventArgsメンバー

Command

このプロパティは、OracleDataAdapter.Update()が呼び出されたときに使用されるOracleCommandを指定します。

宣言

// C#
public new OracleCommand Command {get; set;}

プロパティ値

Updateが呼び出されたときに実行されるOracleCommand

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventArgsメンバー

OracleRowUpdatingEventArgsパブリック・メソッド

OracleRowUpdatingEventArgsパブリック・メソッドを、表5-114にリストします。

表5-114 OracleRowUpdatingEventArgsパブリック・メソッド

パブリック・メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowUpdatingEventArgsクラス

- OracleRowUpdatingEventArgsメンバー

OracleRowUpdatingEventHandlerデリゲート

OracleRowUpdatingEventHandlerデリゲートは、OracleDataAdapter.RowUpdatingイベントを処理するメソッドの署名を表します。

宣言

// C#
public delegate void OracleRowUpdatingEventHandler (object sender,
OracleRowUpdatingEventArgs eventArgs);

パラメータ

- sender
イベントのソース

- eventArgs
イベント・データが含まれるOracleRowUpdatingEventArgsオブジェクト

備考

行が更新された後に通知を必要とするアプリケーションでは、このイベント・デリゲートによってイベントのコールバックを登録できます。

.NET Frameworkでは、イベント・デリゲートの表記規則において、イベントを呼び出すオブジェクトおよびイベント・データの2つのパラメータが必要です。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「RowUpdating」

OracleTransactionクラス

OracleTransactionオブジェクトは、ローカル・トランザクションを表します。

クラスの継承

System.Object

System.MarshalByRefObject

System.Data.Common.DbTransaction (ADO.NET 2.0専用)

Oracle.DataAccess.Client.OracleTransaction

宣言

// ADO.NET 2.0: C#
public sealed class OracleTransaction : DbTransaction

// C#
public sealed class OracleTransaction : MarshalByRefObject,
IDbTransaction, IDisposable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

アプリケーションはOracleConnectionオブジェクトに対してBeginTransactionをコールし、OracleTransactionオブジェクトを作成します。OracleTransactionオブジェクトは、コミット読取りモードでのみ作成できます。他のモードでは、例外が発生します。

トランザクションのコンテキスト内でDDL文を実行することは、OracleTransactionオブジェクトの状態に反映されない暗黙的コミットとなるため、お薦めできません。

セーブポイントに関連する操作はすべて、現行のローカル・トランザクションに関連しています。このトランザクションに対して実行されるコミットおよびロールバックなどの操作は、既存のDataSet内のデータには影響しません。

例

// Database Setup, if you have not done so yet.
/*
connect scott/tiger@oracle
DROP TABLE MyTable;
CREATE TABLE MyTable (MyColumn NUMBER);
--CREATE TABLE MyTable (MyColumn NUMBER PRIMARY KEY);

*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class OracleTransactionSample
{
static void Main()
{
// Drop & Create MyTable as indicated Database Setup, at beginning

// This sample starts a transaction and inserts two records with the same
// value for MyColumn into MyTable.
// If MyColumn is not a primary key, the transaction will commit.
// If MyColumn is a primary key, the second insert will violate the
// unique constraint and the transaction will rollback.

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = con.CreateCommand();

// Check the number of rows in MyTable before transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
int myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Print the number of rows in MyTable
Console.WriteLine("myTableCount = " + myTableCount);

// Start a transaction
OracleTransaction txn = con.BeginTransaction(
IsolationLevel.ReadCommitted);

try
{
// Insert the same row twice into MyTable
cmd.CommandText = "INSERT INTO MyTable VALUES (1)";
cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery(); // This may throw an exception
txn.Commit();
}
catch (Exception e)
{
// Print the exception message
Console.WriteLine("e.Message    =  " + e.Message);

// Rollback the transaction
txn.Rollback();
}

// Check the number of rows in MyTable after transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Prints the number of rows
// If MyColumn is not a PRIMARY KEY, the value should increase by two.
// If MyColumn is a PRIMARY KEY, the value should remain same.
Console.WriteLine("myTableCount = " + myTableCount);

txn.Dispose();
cmd.Dispose();

con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionメンバー

- OracleTransaction静的メソッド

- OracleTransactionプロパティ

OracleTransactionメンバー

OracleTransactionメンバーは、次の各表にリストしています。

OracleTransaction静的メソッド

OracleTransaction静的メソッドを、表5-115にリストします。

表5-115 OracleTransaction静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleTransactionプロパティ

OracleTransactionプロパティを、表5-116にリストします。

表5-116 OracleTransactionプロパティ

プロパティ

説明

IsolationLevel

トランザクションの分離レベルを指定します。

Connection

トランザクションに関連付けられた接続を指定します。

OracleTransactionパブリック・メソッド

OracleTransactionパブリック・メソッドを、表5-117にリストします。

表5-117 OracleTransactionパブリック・メソッド

パブリック・メソッド

説明

Commit

データベース・トランザクションをコミットします。

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

OracleTransactionオブジェクトに使用されるリソースを解放します。

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Rollback

ローカル・トランザクションをロールバックします(オーバーロード)

Save

現行トランザクション内にセーブポイントを作成します。

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

OracleTransaction静的メソッド

OracleTransaction静的メソッドを、表5-118にリストします。

表5-118 OracleTransaction静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

OracleTransactionプロパティ

OracleTransactionプロパティを、表5-119にリストします。

表5-119 OracleTransactionプロパティ

プロパティ

説明

IsolationLevel

トランザクションの分離レベルを指定します。

Connection

トランザクションに関連付けられた接続を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

IsolationLevel

このプロパティでは、トランザクションの分離レベルを指定します。

宣言

// ADO.NET 2.0: C#
public override IsolationLevel IsolationLevel {get;}

プロパティ値

IsolationLevel

実装

IDbTransaction

例外

InvalidOperationException - トランザクションはすでに完了しています。

備考

デフォルト = IsolationLevel.ReadCommitted

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Connection

このプロパティは、トランザクションに関連付けられた接続を指定します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

Connection

実装

IDbTransaction

備考

このプロパティは、トランザクションに関連付けられたOracleConnectionオブジェクトを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

OracleTransactionパブリック・メソッド

OracleTransactionパブリック・メソッドを、表5-120にリストします。

表5-120 OracleTransactionパブリック・メソッド

パブリック・メソッド

説明

Commit

データベース・トランザクションをコミットします。

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

OracleTransactionオブジェクトに使用されるリソースを解放します。

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Rollback

ローカル・トランザクションをロールバックします(オーバーロード)

Save

現行トランザクション内にセーブポイントを作成します。

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Commit

このメソッドは、データベース・トランザクションをコミットします。

宣言

// ADO.NET 2.0: C#
public override void Commit();

実装

IDbTransaction

例外

InvalidOperationException - トランザクションはすでに正常に完了しており、ロールバックされているか、または関連した接続がクローズされています。

備考

正常なコミットの後、トランザクションは完了した状態に入ります。

例

// Database Setup, if you have not done so yet
/*
connect scott/tiger@oracle
DROP TABLE MyTable;
CREATE TABLE MyTable (MyColumn NUMBER);
--CREATE TABLE MyTable (MyColumn NUMBER PRIMARY KEY);

*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class CommitSample
{
static void Main()
{
// Drop & Create MyTable as indicated in Database Setup, at beginning

// This sample starts a transaction and inserts two records with the same
// value for MyColumn into MyTable.
// If MyColumn is not a primary key, the transaction will commit.
// If MyColumn is a primary key, the second insert will violate the
// unique constraint and the transaction will rollback.

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = con.CreateCommand();

// Check the number of rows in MyTable before transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
int myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Print the number of rows in MyTable
Console.WriteLine("myTableCount = " + myTableCount);

// Start a transaction
OracleTransaction txn = con.BeginTransaction(
IsolationLevel.ReadCommitted);

try
{
// Insert the same row twice into MyTable
cmd.CommandText = "INSERT INTO MyTable VALUES (1)";
cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery(); // This may throw an exception
txn.Commit();
}
catch (Exception e)
{
// Print the exception message
Console.WriteLine("e.Message    =  " + e.Message);

// Rollback the transaction
txn.Rollback();
}

// Check the number of rows in MyTable after transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Prints the number of rows
// If MyColumn is not a PRIMARY KEY, the value should increase by two.
// If MyColumn is a PRIMARY KEY, the value should remain same.
Console.WriteLine("myTableCount = " + myTableCount);

txn.Dispose();
cmd.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Dispose

このメソッドでは、OracleTransactionオブジェクトに使用されるリソースを解放します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

このメソッドは、OracleTransactionオブジェクトが保持している管理リソースおよび非管理リソースの両方を解放します。トランザクションが完了した状態ではない場合、トランザクションをロールバックする試みが実行されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Rollback

Rollbackは、データベース・トランザクションをロールバックします。

オーバーロード・リスト:

- Rollback()
このメソッドは、データベース・トランザクションをロールバックします。

- Rollback(string)
このメソッドは、現行トランザクション内のセーブポイントへデータベース・トランザクションをロールバックします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Rollback()

このメソッドは、データベース・トランザクションをロールバックします。

宣言

// ADO.NET 2.0: C#
public override void Rollback();

実装

IDbTransaction

例外

InvalidOperationException - トランザクションはすでに正常に完了しており、ロールバックされているか、または関連した接続がクローズされています。

備考

Rollback()の後、Rollbackによりトランザクションが終了するため、OracleTransactionオブジェクトはそれ以上使用されません。

例

// Database Setup, if you have not done so yet.
/*
connect scott/tiger@oracle
DROP TABLE MyTable;
CREATE TABLE MyTable (MyColumn NUMBER);

*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class RollbackSample
{
static void Main()
{
// Drop & Create MyTable as indicated previously in Database Setup

// This sample starts a transaction and inserts one record into MyTable.
// It then rollsback the transaction, the number of rows remains the same

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = con.CreateCommand();

// Check the number of rows in MyTable before transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
int myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Print the number of rows in MyTable
Console.WriteLine("myTableCount = " + myTableCount);

// Start a transaction
OracleTransaction txn = con.BeginTransaction(
IsolationLevel.ReadCommitted);

// Insert a row into MyTable
cmd.CommandText = "INSERT INTO MyTable VALUES (1)";
cmd.ExecuteNonQuery();

// Rollback the transaction
txn.Rollback();

// Check the number of rows in MyTable after transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Prints the number of rows, should remain the same
Console.WriteLine("myTableCount = " + myTableCount);

txn.Dispose();
cmd.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Rollback(string)

このメソッドは、現行トランザクション内のセーブポイントへデータベース・トランザクションをロールバックします。

宣言

// ADO.NET 2.0: C#
public override void Rollback(string savepointName);

パラメータ

- savepointName
現行トランザクション内で、ロールバック先のセーブポイント名。

例外

InvalidOperationException - トランザクションはすでに正常に完了しており、ロールバックされているか、または関連した接続がクローズされています。

備考

セーブポイントへのロールバックの後、現行トランザクションはアクティブを維持し、その後の操作に使用できます。

セーブポイントはデータベース内で大文字小文字を区別して作成されるため、指定されたsavepointNameはSaveメソッドを使用して作成されたsavepointNameの場合と一致する必要はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

Save

このメソッドは現行トランザクション内にセーブポイントを作成します。

宣言

// C#
public void Save(string savepointName);

パラメータ

- savepointName
現行トランザクション内で作成されるセーブポイント名。

例外

InvalidOperationException - トランザクションはすでに完了しています。

備考

セーブポイントの作成後、トランザクションは完了状態に入らず、その後の操作に使用できます。

指定されたsavepointNameは大文字小文字を区別して作成されます。RollbackメソッドのコールによりsavepointNameにロールバックします。これにより、トランザクション全体ではなく、トランザクションの一部をロールバックできます。

例

// Database Setup, if you have not done so yet.
/*
connect scott/tiger@oracle
DROP TABLE MyTable;
CREATE TABLE MyTable (MyColumn NUMBER);

*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;

class SaveSample
{
static void Main()
{
// Drop & Create MyTable as indicated in Database Setup, at beginning

// This sample starts a transaction and creates a savepoint after
// inserting one record into MyTable.
// After inserting the second record it rollsback to the savepoint
// and commits the transaction. Only the first record will be inserted

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = con.CreateCommand();

// Check the number of rows in MyTable before transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
int myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Print the number of rows in MyTable
Console.WriteLine("myTableCount = " + myTableCount);

// Start a transaction
OracleTransaction txn = con.BeginTransaction(
IsolationLevel.ReadCommitted);

// Insert a row into MyTable
cmd.CommandText = "INSERT INTO MyTable VALUES (1)";
cmd.ExecuteNonQuery();

// Create a savepoint
txn.Save("MySavePoint");

// Insert another row into MyTable
cmd.CommandText = "insert into mytable values (2)";
cmd.ExecuteNonQuery();

// Rollback to the savepoint
txn.Rollback("MySavePoint");

// Commit the transaction
txn.Commit();

// Check the number of rows in MyTable after transaction
cmd.CommandText = "SELECT COUNT(*) FROM MyTable";
myTableCount = int.Parse(cmd.ExecuteScalar().ToString());

// Prints the number of rows, should have increased by 1
Console.WriteLine("myTableCount = " + myTableCount);

txn.Dispose();
cmd.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleTransactionクラス

- OracleTransactionメンバー

OracleConnectionTypeの列挙

OracleConnectionTypeの列挙値は、特定の接続オブジェクトがOracle Database接続またはTimesTenデータベース接続に関連付けられているか、あるいは物理接続に関連付けられていないかを指定します。

表5-121では、すべてのOracleConnectionTypeの列挙値と、それぞれの列挙値の説明をリストしています。

表5-121 OracleConnectionTypeの列挙値

メンバー名

説明

Undefined

OracleConnectionオブジェクトに関連付けられている接続はありません。

Oracle

OracleConnectionオブジェクトにOracle Databaseが関連付けられています。

TimesTen

OracleConnectionオブジェクトにTimesTenデータベースが関連付けられています。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleConnectionクラス」

- 「ConnectionType」

OracleCollectionTypeの列挙

OracleCollectionTypeの列挙値により、OracleParameterオブジェクトがコレクションを表しているかどうか、表している場合はコレクション型を指定しているかどうかが特定されます。

表5-122は、すべてのOracleCollectionTypeの列挙値と、それぞれの列挙値の説明をリストします。

表5-122 OracleCollectionTypeの列挙値

メンバー名

説明

None

コレクション型ではありません

PLSQLAssociativeArray

コレクション型がPL/SQL連想配列(またはPL/SQL索引付き表)であることを示します

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleParameterクラス」

- 「CollectionType」

OracleDBShutdownModeの列挙

OracleDBShutdownModeの列挙値は、データベース停止オプションを指定します。

表5-124は、すべてのOracleDBShutdownModeの列挙値と、それぞれの列挙値の説明をリストします。

表5-123 OracleDBShutdownModeの列挙値

メンバー名

説明

Default

新規接続を拒否し、既存の接続が終了するまで待ちます。

Transactional

新規接続を拒否し、新規トランザクションを許可しません。アクティブ・トランザクションがコミットされるまで待ちます。

TransactionalLocal

新規接続を拒否し、新規トランザクションを許可しません。ローカル・トランザクションのみがコミットされるまで待ちます。

Immediate

現行のコールが完了するまで待つことや、ユーザーがデータベースから切断されるまで待つことはしません。未コミットのトランザクションをすべて終了し、ロールバックします。

Final

データベースを停止します。データベースがクローズおよびディスマウントされた後の停止用に、2番目のコールで使用されます。

Abort

現行のコールが完了するまで待つことや、ユーザーがデータベースから切断されるまで待つことはしません。未コミットのトランザクションをすべて終了し、ロールバックは行いません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleConnectionクラス」

- 「Shutdown」

OracleDBStartupModeの列挙

OracleDBStartupModeの列挙値は、データベース起動オプションを指定します。

表5-124は、すべてのOracleDBStartupModeの列挙値と、それぞれの列挙値の説明をリストします。

表5-124 OracleDBStartupModeの列挙値

メンバー名

説明

NoRestriction

データベースを起動し、すべてのユーザーにアクセスを許可します。

Restrict

データベースを起動し、CREATE SESSIONおよびRESTRICTED SESSION権限を持つユーザーにのみデータベースへのアクセスを許可します。これらの権限は通常、データベース管理者に割り当てられます。

Force

実行中のインスタンスを異常終了モードで停止し、新規インスタンスを起動します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleConnectionクラス」

- 「Startup」

OracleDbTypeの列挙

OracleDbTypeの列挙値は、OracleParameterのOracleDbTypeを明示的に指定する際に使用されます。

表5-125では、すべてのOracleDbTypeの列挙値と、それぞれの列挙値の説明をリストしています。

表5-125 OracleDbTypeの列挙値

メンバー名

説明

Array

Oracleコレクション(VArrayまたはネストされた表)

BFile

Oracle BFILE型

BinaryFloat

Oracle BINARY_FLOAT型

BinaryDouble

Oracle BINARY_DOUBLE型

Blob

Oracle BLOB型

Byte

byte型

Char

Oracle CHAR型

Clob

Oracle CLOB型

Date

Oracle DATE型

Decimal

Oracle NUMBER型

Double

8バイトのFLOAT型

Int16

2バイトのINTEGER型

Int32

4バイトのINTEGER型

Int64

8バイトのINTEGER型

IntervalDS

Oracle INTERVAL DAY TO SECOND型

IntervalYM

Oracle INTERVAL YEAR TO MONTH型

Long

Oracle LONG型

LongRaw

Oracle LONG RAW型

NChar

Oracle NCHAR型

NClob

Oracle NCLOB型

NVarchar2

Oracle NVARCHAR2型

Object

Oracle Object

Raw

Oracle RAW型

Ref

Oracle REF

RefCursor

Oracle REF CURSOR型

Single

4バイトのFLOAT型、6精度をサポート

TimeStamp

Oracle TIMESTAMP型

TimeStampLTZ

Oracle TIMESTAMP WITH LOCAL TIME ZONE型

TimeStampTZ

Oracle TIMESTAMP WITH TIME ZONE型

Varchar2

Oracle VARCHAR2型

XmlType

Oracle XMLType型

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleParameterクラス」

- 「OracleParameterCollectionクラス」

- OracleParameterの「OracleDbType」

OracleParameterStatusの列挙

OracleParameterStatusの列挙型は、NULL値が列からフェッチされたかどうか、フェッチ時に切捨てが行われたかどうか、またはNULL値がデータベース列に挿入されるかどうかを指定します。

表5-126は、すべてのOracleParameterStatusの列挙値と、それぞれの列挙値の説明をリストします。

表5-126 OracleParameterStatusのメンバー

メンバー名

説明

Success

入力パラメータの場合、入力値が列に割り当てられたことを示します。出力パラメータの場合、プロバイダによってそのままの値がパラメータに割り当てられたことを示します。

NullFetched

NULL値が列またはOUTパラメータからフェッチされたことを示します。

NullInsert

NULL値が列に挿入されることを示します。

Truncation

列からデータをフェッチする際に切捨てが行われたことを示します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleParameterクラス」

- OracleParameterの「ArrayBindStatus」

- OracleParameterの「Value」

6 Oracle Data Provider for .NETのXML関連クラス

この章では、ODP.NETのXML関連クラスおよび列挙について説明します。

この章の内容は次のとおりです。

- OracleXmlCommandTypeの列挙

- OracleXmlQueryPropertiesクラス

- OracleXmlSavePropertiesクラス

- OracleXmlStreamクラス

- OracleXmlTypeクラス

OracleXmlStreamオブジェクト・パラメータにおいて、オフセットはすべて0ベースです。

OracleXmlCommandTypeの列挙

OracleXmlCommandTypeの列挙は、OracleCommandクラスのXmlCommandTypeプロパティに許可されている値を指定します。この列挙は、XML操作のタイプを指定する際に使用されます。

表6-1では、すべてのOracleXmlCommandTypeの列挙値と、それぞれの列挙値の説明をリストします。

表6-1 OracleXmlCommandTypeのメンバー

メンバー名

説明

None

XML操作は不要です。

Query

コマンド・テキストはSQL問合せで、問合せの結果はXML文書です。SQL問合せはSELECT文にする必要があります。

Insert

コマンド・テキストは、挿入する行が含まれるXML文書です。

Update

コマンド・テキストは、更新する行が含まれるXML文書です。

Delete

コマンド・テキストは、削除する行が含まれるXML文書です。

関連項目:
Oracle.DataAccess.Clientネームスペース

OracleXmlQueryPropertiesクラス

OracleXmlQueryPropertiesオブジェクトは、XmlCommandTypeプロパティがQueryである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

クラスの継承

System.Object

System.OracleXmlQueryProperties

宣言

public sealed class OracleXmlQueryProperties : ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleXmlQueryPropertiesは、OracleCommandクラスのXmlQueryPropertiesプロパティを使用してアクセスおよび変更できます。各OracleCommandオブジェクトには、XmlQueryPropertiesプロパティに、OracleXmlQueryPropertiesクラスの独自のインスタンスが含まれます。

OracleXmlQueryPropertiesの新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。OracleXmlQueryProperties.Clone()メソッドを使用して、OracleXmlQueryPropertiesインスタンスのコピーを取得します。

例

この例では、リレーショナル・データがXMLで取得されます。

// C#

using System;
using System.IO;
using System.Data;
using System.Xml;
using System.Text;
using Oracle.DataAccess.Client;

class OracleXmlQueryPropertiesSample
{
static void Main()
{
int rows = 0;
StreamReader sr = null;

// Define the XSL document for doing the transform.
string xslstr = "<?xml version='1.0'?>\n" +
"<xsl:stylesheet version=\"1.0\"" +
" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n" +
"  <xsl:output encoding=\"utf-8\"/>\n" +
"  <xsl:template match=\"/\">\n" +
"    <EMPLOYEES>\n" +
"      <xsl:apply-templates select=\"ROWSET\"/>\n" +
"    </EMPLOYEES>\n" +
"  </xsl:template>\n" +
"  <xsl:template match=\"ROWSET\">\n" +
"      <xsl:apply-templates select=\"ROW\"/>\n" +
"  </xsl:template>\n" +
"  <xsl:template match=\"ROW\">\n" +
"    <EMPLOYEE>\n" +
"    <EMPLOYEE_ID>\n" +
"      <xsl:apply-templates select=\"EMPNO\"/>\n" +
"    </EMPLOYEE_ID>\n" +
"    <EMPLOYEE_NAME>\n" +
"      <xsl:apply-templates select=\"ENAME\"/>\n" +
"    </EMPLOYEE_NAME>\n" +
"    <HIRE_DATE>\n" +
"      <xsl:apply-templates select=\"HIREDATE\"/>\n" +
"    </HIRE_DATE>\n" +
"    <JOB_TITLE>\n" +
"      <xsl:apply-templates select=\"JOB\"/>\n" +
"    </JOB_TITLE>\n" +
"    </EMPLOYEE>\n" +
"  </xsl:template>\n" +
"</xsl:stylesheet>\n";

// Create the connection.
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Set the date, and timestamp formats for Oracle 9i Release 2, or later.
// This is just needed for queries.
if (!con.ServerVersion.StartsWith("9.0") &&
!con.ServerVersion.StartsWith("8.1"))
{
OracleGlobalization sessionParams = con.GetSessionInfo();
sessionParams.DateFormat = "YYYY-MM-DD\"T\"HH24:MI:SS";
sessionParams.TimeStampFormat = "YYYY-MM-DD\"T\"HH24:MI:SS.FF3";
sessionParams.TimeStampTZFormat = "YYYY-MM-DD\"T\"HH24:MI:SS.FF3";
con.SetSessionInfo(sessionParams);
}

// Create the command.
OracleCommand cmd = new OracleCommand("", con);

// Set the XML command type to query.
cmd.XmlCommandType =  OracleXmlCommandType.Query;

// Set the SQL query.
cmd.CommandText = "select * from emp e where e.empno = :empno";

// Set command properties that affect XML query behaviour.
cmd.BindByName = true;

// Bind values to the parameters in the SQL query.
Int32 empNum = 7369;
cmd.Parameters.Add("empno", OracleDbType.Int32, empNum,
ParameterDirection.Input);

// Set the XML query properties.
cmd.XmlQueryProperties.MaxRows =  1;
cmd.XmlQueryProperties.RootTag =  "ROWSET";
cmd.XmlQueryProperties.RowTag =  "ROW";
cmd.XmlQueryProperties.Xslt =  xslstr;

// Test query execution without returning a result.
Console.WriteLine("SQL query: select * from emp e where e.empno = 7369");
Console.WriteLine("Maximum rows: all rows (-1)");
Console.WriteLine("Return Value from OracleCommand.ExecuteNonQuery():");
rows = cmd.ExecuteNonQuery();
Console.WriteLine(rows);
Console.WriteLine("\n");

// Get the XML document as an XmlReader.
Console.WriteLine("SQL query: select * from emp e where e.empno = 7369");
Console.WriteLine("Maximum rows: all rows (-1)");
Console.WriteLine("XML Document from OracleCommand.ExecuteXmlReader():");

XmlReader xmlReader =  cmd.ExecuteXmlReader();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.PreserveWhitespace = true;
xmlDocument.Load(xmlReader);
Console.WriteLine(xmlDocument.OuterXml);
Console.WriteLine("\n");

// Change the SQL query, and set the maximum number of rows to 2.
cmd.CommandText = "select * from emp e";
cmd.Parameters.Clear();
cmd.XmlQueryProperties.MaxRows =  2;

// Get the XML document as a Stream.
Console.WriteLine("SQL query: select * from emp e");
Console.WriteLine("Maximum rows: 2");
Console.WriteLine("XML Document from OracleCommand.ExecuteStream():");
Stream stream = cmd.ExecuteStream();
sr = new StreamReader(stream, Encoding.Unicode);
Console.WriteLine(sr.ReadToEnd());
Console.WriteLine("\n");

// Get all the rows.
cmd.XmlQueryProperties.MaxRows =  -1;

// Append the XML document to an existing Stream.
Console.WriteLine("SQL query: select * from emp e");
Console.WriteLine("Maximum rows: all rows (-1)");
Console.WriteLine("XML Document from OracleCommand.ExecuteToStream():");
MemoryStream mstream = new MemoryStream(32);
cmd.ExecuteToStream(mstream);
mstream.Seek(0, SeekOrigin.Begin);
sr = new StreamReader(mstream, Encoding.Unicode);
Console.WriteLine(sr.ReadToEnd());
Console.WriteLine("\n");

// Clean up.
cmd.Dispose();
con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesメンバー

- OracleXmlQueryPropertiesコンストラクタ

- OracleXmlQueryPropertiesプロパティ

- OracleXmlQueryPropertiesパブリック・メソッド

OracleXmlQueryPropertiesメンバー

次の各表にOracleXmlQueryPropertiesメンバーをリストします。

OracleXmlQueryPropertiesコンストラクタ

OracleXmlQueryPropertiesコンストラクタを、表6-2にリストします。

表6-2 OracleXmlQueryPropertiesコンストラクタ

コンストラクタ

説明

OracleXmlQueryPropertiesコンストラクタ

OracleXmlQueryPropertiesクラスの新規インスタンスをインスタンス化します

OracleXmlQueryPropertiesプロパティ

OracleXmlQueryPropertiesプロパティを、表6-3にリストします。

表6-3 OracleXmlQueryPropertiesプロパティ

名前

説明

MaxRows

結果のXMLドキュメント内で表現できる結果セットからの行の最大数を指定します。

RootTag

結果のXMLドキュメントのルート要素を指定します。

RowTag

XMLドキュメント内の結果セットからデータの行を識別するXML要素の値を指定します。

Xslt

XSLTを使用したXML変換に使用するXSLドキュメントを指定します。

XsltParams

XSLドキュメントのパラメータを指定します。

OracleXmlQueryPropertiesパブリック・メソッド

OracleXmlQueryPropertiesパブリック・メソッドを、表6-4にリストします。

表6-4 OracleXmlQueryPropertiesパブリック・メソッド

名前

説明

Clone

OracleXmlQueryPropertiesオブジェクトのコピーを作成します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

OracleXmlQueryPropertiesコンストラクタ

OracleXmlQueryPropertiesコンストラクタでは、OracleXmlQueryPropertiesクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleXmlQueryProperties();

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

OracleXmlQueryPropertiesプロパティ

OracleXmlQueryPropertiesプロパティを、表6-5にリストします。

表6-5 OracleXmlQueryPropertiesプロパティ

名前

説明

MaxRows

結果のXMLドキュメント内で表現できる結果セットからの行の最大数を指定します。

RootTag

結果のXMLドキュメントのルート要素を指定します。

RowTag

XMLドキュメント内の結果セットからデータの行を識別するXML要素の値を指定します。

Xslt

XSLTを使用したXML変換に使用するXSLドキュメントを指定します。

XsltParams

XSLドキュメントのパラメータを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

MaxRows

このプロパティでは、結果のXMLドキュメント内で表現できる結果セットからの行の最大数を指定します。

宣言

// C#
public int MaxRows {get; set;}

プロパティ値

行の最大数。

例外

ArgumentException - MaxRowの新しい値は無効です。

備考

デフォルト値は、-1です。

可能な値:

- -1(すべての行)。

- 0以上の数。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

RootTag

このプロパティでは結果のXMLドキュメントのルート要素を指定します。

宣言

// C#
public string RootTag {get; set;}

プロパティ値

結果のXMLドキュメントのルート要素を指定します。

備考

デフォルトのルート・タグは、ROWSETです。

結果のXMLドキュメント内にルート・タグが使用されていないことを示すには、このプロパティをNULLまたは""またはString.Emptyに設定します。

RootTagおよびRowTagの両方がNULLに設定されている場合、結果セットが1行と1列を戻す場合にのみ、XMLドキュメントが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

RowTag

このプロパティは、XMLドキュメント内の結果セットからデータの行を識別するXML要素の値を指定します。

宣言

// C#
public string RowTag {get; set;}

プロパティ値

XML要素の値

備考

デフォルトはROWです。

結果のXMLドキュメント内に行タグが使用されていないことを示すには、このプロパティをNULLまたは""またはString.Emptyに設定します。

RootTagおよびRowTagの両方がNULLに設定されている場合、結果セットが1行と1列を戻す場合にのみ、XMLドキュメントが戻されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

Xslt

このプロパティでは、XSLTを使用するXML変換に使用するXSLドキュメントを指定します。

宣言

// C#
public string Xslt {get; set;}

プロパティ値

XML変換に使用するXSLドキュメント。

備考

デフォルト値はNULLです。

問合せの結果セットから生成されるXMLドキュメントのXML変換にXSLドキュメントを使用します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

XsltParams

このプロパティは、XSLドキュメントのパラメータを指定します。

宣言

// C#
public string XsltParams {get; set;}

プロパティ値

XSLドキュメントのパラメータ。

備考

デフォルト値はNULLです。

このパラメータは、セミコロンで区切られたparam1=value1; param2=value2;...形式のname=valueペアの文字列として指定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

OracleXmlQueryPropertiesパブリック・メソッド

OracleXmlQueryPropertiesパブリック・メソッドを、表6-6にリストします。

表6-6 OracleXmlQueryPropertiesパブリック・メソッド

名前

説明

Clone

OracleXmlQueryPropertiesオブジェクトのコピーを作成します

Clone

このメソッドでは、OracleXmlQueryPropertiesオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleXmlQueryPropertiesオブジェクト

実装

ICloneable

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlQueryPropertiesクラス

- OracleXmlQueryPropertiesメンバー

OracleXmlSavePropertiesクラス

OracleXmlSavePropertiesオブジェクトは、XmlCommandTypeプロパティがInsert、UpdateまたはDeleteである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

クラスの継承

System.Object

System.OracleXmlSaveProperties

宣言

public sealed class OracleXmlSaveProperties : ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleXmlSavePropertiesは、OracleCommandクラスのXmlSavePropertiesプロパティを使用してアクセスおよび変更できます。各OracleCommandオブジェクトには、XmlSavePropertiesプロパティに、OracleXmlSavePropertiesクラスの独自のインスタンスが含まれます。

OracleXmlSavePropertiesの新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。 OracleXmlSaveProperties.Clone()メソッドを使用して、 OracleXmlSavePropertiesインスタンスのコピーを取得します。

例

このサンプルでは、XML文書を使用して、リレーショナル表またはビューに対して挿入、更新および削除を実行する方法を示しています。

// C#
/* -- If HR account is being locked, you need to log on as a DBA
-- to unlock the account first. Unlock a locked users account:

ALTER USER hr ACCOUNT UNLOCK;
*/

using System;
using Oracle.DataAccess.Client;

class OracleXmlSavePropertiesSample
{
static void Main()
{
string[] KeyColumnsList = null;
string[] UpdateColumnsList = null;
int rows = 0;

// Create the connection.
string constr = "User Id=hr;Password=hr;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create the command.
OracleCommand cmd = new OracleCommand("", con);

// Set the XML command type to insert.
cmd.XmlCommandType = OracleXmlCommandType.Insert;

// Set the XML document.
cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
"<ROWSET>\n" +
" <MYROW num = \"1\">\n" +
" <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" +
" <LAST_NAME>Smith</LAST_NAME>\n" +
" <EMAIL>Smith@Oracle.com</EMAIL>\n" +
" <HIRE_DATE>1982-01-23T00:00:00.000</HIRE_DATE>\n" +
" <JOB_ID>IT_PROG</JOB_ID>\n" +
" </MYROW>\n" +
" <MYROW num = \"2\">\n" +
" <EMPLOYEE_ID>1235</EMPLOYEE_ID>\n" +
" <LAST_NAME>Barney</LAST_NAME>\n" +
" <EMAIL>Barney@Oracle.com</EMAIL>\n" +
" <HIRE_DATE>1982-01-23T00:00:00.000</HIRE_DATE>\n" +
" <JOB_ID>IT_PROG</JOB_ID>\n" +
" </MYROW>\n" +
"</ROWSET>\n";

// Set the XML save properties.
KeyColumnsList = new string[1];
KeyColumnsList[0] = "EMPLOYEE_ID";
UpdateColumnsList = new string[5];
UpdateColumnsList[0] = "EMPLOYEE_ID";
UpdateColumnsList[1] = "LAST_NAME";
UpdateColumnsList[2] = "EMAIL";
UpdateColumnsList[3] = "HIRE_DATE";
UpdateColumnsList[4] = "JOB_ID";
cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
cmd.XmlSaveProperties.RowTag = "MYROW";
cmd.XmlSaveProperties.Table = "employees";
cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList;
cmd.XmlSaveProperties.Xslt = null;
cmd.XmlSaveProperties.XsltParams = null;

// Do the inserts.
rows = cmd.ExecuteNonQuery();
Console.WriteLine("rows: " + rows);

// Set the XML command type to update.
cmd.XmlCommandType = OracleXmlCommandType.Update;

// Set the XML document.
cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
"<ROWSET>\n" +
" <MYROW num = \"1\">\n" +
" <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" +
" <LAST_NAME>Adams</LAST_NAME>\n" +
" </MYROW>\n" +
"</ROWSET>\n";

// Set the XML save properties.
KeyColumnsList = new string[1];
KeyColumnsList[0] = "EMPLOYEE_ID";
UpdateColumnsList = new string[1];
UpdateColumnsList[0] = "LAST_NAME";
cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList;
rows = cmd.ExecuteNonQuery();
Console.WriteLine("rows: " + rows);

// Set the XML command type to delete.
cmd.XmlCommandType = OracleXmlCommandType.Delete;

// Set the XML document.
cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
"<ROWSET>\n" +
" <MYROW num = \"1\">\n" +
" <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" +
" </MYROW>\n" +
" <MYROW num = \"2\">\n" +
" <EMPLOYEE_ID>1235</EMPLOYEE_ID>\n" +
" </MYROW>\n" +
"</ROWSET>\n";

// Set the XML save properties.
KeyColumnsList = new string[1];
KeyColumnsList[0] = "EMPLOYEE_ID";
cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
cmd.XmlSaveProperties.UpdateColumnsList = null;

// Do the deletes.
rows = cmd.ExecuteNonQuery();
Console.WriteLine("rows: " + rows);

// Clean up.
cmd.Dispose();
con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesメンバー

- OracleXmlSavePropertiesコンストラクタ

- OracleXmlSavePropertiesプロパティ

- OracleXmlSavePropertiesパブリック・メソッド

OracleXmlSavePropertiesメンバー

次の表にOracleXmlSavePropertiesメンバーをリストします。

OracleXmlSavePropertiesコンストラクタ

OracleXmlSavePropertiesコンストラクタを、表6-7にリストします。

表6-7 OracleXmlSavePropertiesコンストラクタ

コンストラクタ

説明

OracleXmlSavePropertiesコンストラクタ

OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します

OracleXmlSavePropertiesプロパティ

OracleXmlSavePropertiesプロパティを、表6-8にリストします。

表6-8 OracleXmlSavePropertiesプロパティ

名前

説明

KeyColumnsList

XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。

RowTag

XMLドキュメント内のデータの行を識別するXML要素の値を指定します。

Table

変更を保存する表またはビューの名前を指定します。

UpdateColumnsList

更新または挿入する列のリストを指定します。

Xslt

XSLTを使用したXML変換に使用するXSLドキュメントを指定します。

XsltParams

Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。

OracleXmlSavePropertiesパブリック・メソッド

OracleXmlSavePropertiesパブリック・メソッドを、表6-9にリストします。

表6-9 OracleXmlSavePropertiesパブリック・メソッド

名前

説明

Clone

OracleXmlSavePropertiesオブジェクトのコピーを作成します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

OracleXmlSavePropertiesコンストラクタ

OracleXmlSavePropertiesコンストラクタでは、OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleXmlSaveProperties;

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

OracleXmlSavePropertiesプロパティ

OracleXmlSavePropertiesプロパティを、表6-10にリストします。

表6-10 OracleXmlSavePropertiesプロパティ

名前

説明

KeyColumnsList

XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。

RowTag

XMLドキュメント内のデータの行を識別するXML要素の値を指定します。

Table

変更を保存する表またはビューの名前を指定します。

UpdateColumnsList

更新または挿入する列のリストを指定します。

Xslt

XSLTを使用したXML変換に使用するXSLドキュメントを指定します。

XsltParams

Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

KeyColumnsList

このプロパティは、XMLドキュメントを使用して更新または削除する既存の行を検出するためのキーとして使用される列のリストを指定します。

宣言

// C#
public string[] KeyColumnsList {get; set;}

プロパティ値

列のリスト。

備考

デフォルト値はNULLです。

最初のNULL値(ある場合)はリストを停止します。

XMLCommandTypeプロパティ値を持つKeyColumnsListの使用方法

- Insert - KeyColumnsListは無視され、NULLになります。

- Update - KeyColumnsListを指定する必要があります。これは更新する行を検索するために使用する列を識別します。

- Delete - KeyColumnsListがNULLの場合、XMLドキュメント内の各行要素の列値すべてを使用して、削除する行を検出します。それ以外の場合、KeyColumnsListは削除する行を識別するために使用する列を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

RowTag

このプロパティでは、XMLドキュメント内のデータの行を識別するXML要素の値を指定します。

宣言

// C#
public string RowTag {get; set;}

プロパティ値

XML要素名。

備考

デフォルト値はROWです。

XMLドキュメント内の各要素は、表またはビュー内の行を識別します。

RowTagが""またはnullに設定されている場合、XMLドキュメント内に行タグは使用されません。この場合、XMLドキュメントに含まれるのは1行のみと仮定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

Table

このプロパティでは変更を保存する表またはビューの名前を指定します。

宣言

// C#
public string Table {get; set;}

プロパティ値

表の名前。

備考

デフォルト値はNULLです。

このプロパティには、有効な表またはビュー名を設定する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

UpdateColumnsList

このプロパティでは更新または挿入する列のリストを指定します。

宣言

// C#
public string[] UpdateColumnsList {get; set;}

プロパティ値

列のリスト。

備考

デフォルト値はNULLです。

最初のNULL値(ある場合)はリストを停止します。

XMLCommandTypeプロパティ値を持つUpdateColumnListの使用方法:

- Insert - UpdateColumnListは、新しい行が作成された場合に値を割り当てられる列を示します。UpdateColumnListがNULLの場合、すべての列に値が割り当てられます。列がUpdateColumnListにあり、値がXMLファイル内に割り当てられていない場合、NULLが使用されます。列がUpdateColumnListにない場合、その列のデフォルト値が使用されます。

- Update - UpdateColumnListでは、XMLドキュメント内の各行のデータに対して変更する列を指定します。UpdateColumnListがNULLの場合、XMLドキュメント内の各XML要素のすべての値を使用して列を変更します。

- Delete - UpdateColumnsListがNULLの場合は無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

Xslt

このプロパティでは、XSLTを使用するXML変換に使用するXSLドキュメントを指定します。

宣言

// C#
public string Xslt {get; set;}

プロパティ値

XML変換に使用するXSLドキュメント。

備考

デフォルト = null

所定のXMLドキュメントのXSLT変換にはXSLドキュメントを使用します。変換したXMLドキュメントを使用して、表またはビューに加えられた変更を保存します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

XsltParams

このプロパティでは、Xsltプロパティ内で指定するXSLTドキュメントのパラメータを指定します。

宣言

// C#
public string XsltParams {get; set;}

プロパティ値

XSLTドキュメントのパラメータ。

備考

デフォルトはnullです。

このプロパティは、"param1=value1; param2=value2;..."形式の"name=value"ペアをセミコロンで区切った文字列です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

OracleXmlSavePropertiesパブリック・メソッド

OracleXmlSavePropertiesパブリック・メソッドを、表6-11にリストします。

表6-11 OracleXmlSavePropertiesパブリック・メソッド

名前

説明

Clone

OracleXmlSavePropertiesオブジェクトのコピーを作成します

Clone

このメソッドでは、OracleXmlSavePropertiesオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleXmlSavePropertiesオブジェクト

実装

ICloneable

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleXmlSavePropertiesクラス

- OracleXmlSavePropertiesメンバー

OracleXmlStreamクラス

OracleXmlStreamオブジェクトは、OracleXmlTypeオブジェクトに格納されているXMLデータの読取り専用ストリームを表します。

クラスの継承

System.Object

System.MarshalByRefObject

System.Stream

System.OracleXmlStream

宣言

// C#
public sealed class OracleXmlStream : IDisposable, ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamメンバー

- OracleXmlStreamコンストラクタ

- OracleXmlStream静的メソッド

- OracleXmlStreamインスタンス・プロパティ

- OracleXmlStreamインスタンス・メソッド

OracleXmlStreamメンバー

次の表に、OracleXmlStreamメンバーを示します。

OracleXmlStreamコンストラクタ

OracleXmlStreamコンストラクタを、表6-12にリストします。

表6-12 OracleXmlStreamコンストラクタ

コンストラクタ

説明

OracleXmlStreamコンストラクタ

OracleXmlTypeオブジェクト内に格納されたXMLデータのStream表現を提供する、OracleXmlStreamオブジェクトのインスタンスを作成します。

OracleXmlStream静的メソッド

OracleXmlStream静的メソッドを、表6-13にリストします。

表6-13 OracleXmlStream静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleXmlStreamインスタンス・プロパティ

OracleXmlStreamインスタンス・プロパティを、表6-14にリストします。

表6-14 OracleXmlStreamインスタンス・プロパティ

プロパティ

説明

CanRead

XMLストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作が実行可能かどうかを示します

CanWrite

サポート対象外

Connection

XMLデータの取得に使用するOracleConnectionを示します

Length

XMLストリーム内のバイト数を示します。

Position

ストリーム内のバイト位置を取得または設定します。

Value

ストリームの最初の文字を起点とする文字列としてXMLデータを戻します。

OracleXmlStreamインスタンス・メソッド

OracleXmlStreamインスタンス・メソッドを、表6-15にリストします。

表6-15 OracleXmlStreamインスタンス・メソッド

メソッド

説明

BeginRead

System.IO.Streamから継承します

BeginWrite

System.IO.Streamから継承します

Clone

OracleXmlStreamオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、それに関連するリソースを解除します

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndRead

System.IO.Streamから継承します

EndWrite

System.IO.Streamから継承します

Equals

System.Objectからの継承

Flush

サポート対象外

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Read

現行のストリーム・インスタンスから指定された数量を読み取り、配列バッファに移入します(オーバーロード)

ReadByte

System.IO.Streamから継承します

Seek

現行ストリーム内の位置を設定し、現行ストリーム内の新しい位置を戻します。

SetLength

サポート対象外

ToString

System.Objectからの継承

Write

サポート対象外

WriteByte

サポート対象外

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

OracleXmlStreamコンストラクタ

このコンストラクタは、OracleXmlTypeオブジェクト内に格納されたXMLデータのStream表現を提供する、OracleXmlStreamオブジェクトのインスタンスを作成します。

宣言

// C#
public OracleXmlStream(OracleXmlType xmlType);

パラメータ

- xmlType
OracleXmlTypeオブジェクト。

備考

OracleXmlStreamオブジェクトは、構築元であるOracleXmlTypeオブジェクトからのOracleConnectionオブジェクトを暗黙的に使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

OracleXmlStream静的メソッド

OracleXmlStream静的メソッドを、表6-16にリストします。

表6-16 OracleXmlStream静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

OracleXmlStreamインスタンス・プロパティ

OracleXmlStreamインスタンス・プロパティを、表6-17にリストします。

表6-17 OracleXmlStreamインスタンス・プロパティ

プロパティ

説明

CanRead

XMLストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作が実行可能かどうかを示します

CanWrite

サポート対象外

Connection

XMLデータの取得に使用するOracleConnectionを示します

Length

XMLストリーム内のバイト数を示します。

Position

ストリーム内のバイト位置を取得または設定します。

Value

ストリームの最初の文字を起点とする文字列としてXMLデータを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

CanRead

Streamをオーバーライドします。

このプロパティは、XMLストリームが読取り可能であるかどうかを示します。

宣言

// C#
public override bool CanRead{get;}

プロパティ値

XMLストリームが読取り可能である場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

CanSeek

Streamをオーバーライドします。

このプロパティでは、順方向および逆方向シーク操作が実行可能かどうかを示します。

宣言

// C#
public override bool CanSeek{get;}

プロパティ値

順方向および逆方向シーク操作が実行可能の場合、このプロパティはtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Connection

このインスタンス・プロパティでは、XMLデータの取得に使用するOracleConnectionを示します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

OracleConnection

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Length

Streamをオーバーライドします。

このプロパティでは、XMLストリーム内のバイト数を示します。

宣言

// C#
public override Int64 Length{get;}

プロパティ値

XMLストリーム内のバイト数を表すInt64値。空のストリームの長さは0バイトです。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Position

Streamをオーバーライドします。

このプロパティではストリーム内のバイト位置を取得または設定します。

宣言

// C#
public override Int64 Position{get; set;}

プロパティ値

ストリーム内の現行の位置を示すInt64。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - Positionは0未満です。

備考

ストリームの開始は、位置0で表します。ストリーム長を超えた任意の位置の検索がサポートされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Value

このプロパティではストリームの最初の文字を起点とする文字列としてXMLデータを戻します。

宣言

// C#
public string Value{get; set;}

プロパティ値

string

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

このプロパティの使用により、Positionの値が使用または変更されることはありません。

このプロパティが戻すことができる文字列の最大長は2GBです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

OracleXmlStreamインスタンス・メソッド

OracleXmlStreamインスタンス・メソッドを、表6-18にリストします。

表6-18 OracleXmlStreamインスタンス・メソッド

メソッド

説明

BeginRead

System.IO.Streamから継承します

BeginWrite

System.IO.Streamから継承します

Clone

OracleXmlStreamオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、それに関連するリソースを解除します

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndRead

System.IO.Streamから継承します

EndWrite

System.IO.Streamから継承します

Equals

System.Objectからの継承

Flush

サポート対象外

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

Read

現行XMLストリーム・インスタンスから指定された数量を読み取り、配列バッファに移入します(オーバーロード)

ReadByte

System.IO.Streamから継承します

Seek

現行ストリーム内の位置を設定し、現行ストリーム内の新しい位置を戻します。

SetLength

サポート対象外

ToString

System.Objectからの継承

Write

サポート対象外

WriteByte

サポート対象外

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Clone

このメソッドでは、OracleXmlStreamオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleXmlStreamオブジェクト。

実装

ICloneable

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Close

Streamをオーバーライドします。

このメソッドは現行のストリームをクローズし、それに関連するあらゆるリソースを解放します。

宣言

// C#
public override void Close();

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Dispose

このパブリック・メソッドでは、このオブジェクトによって割り当てられたリソースを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

オブジェクトは、処理後は再度使用できません。一部のプロパティには継続してアクセスできますが、その値は適切ではありません。リソースが解放されているため、メソッドのコールにより例外が発生することがあります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Read

このメソッドは、現行XMLストリーム・インスタンスから指定数を読み取り、配列バッファに移入します。

オーバーロード・リスト:

- Read(byte[ ], int, int)
このメソッドでは、現行のインスタンスから指定されたユニコードのバイト数を読み取り、ストリーム内の位置を進め、バイト配列バッファに移入します。

- Read(char[ ], int, int)
このメソッドでは、現行のインスタンスから指定された文字数を読み取り、ストリーム内の位置を進め、文字配列バッファに移入します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Read(byte[ ], int, int)

Streamをオーバーライドします。

このメソッドでは、現行のインスタンスから指定されたユニコードのバイト数を読み取り、ストリーム内の位置を進め、バイト配列バッファに移入します。

宣言

// C#
public override int Read(byte[ ] buffer, int offset, int count);

パラメータ

- buffer
移入されるバイト配列バッファ

- offset
バッファに移入されるゼロ・ベースのオフセット(バイト)。

- count
読み取られる最大バイト数

戻り値

ストリームの終わりに到達したとき、所定のbyte[]バッファに読み込むユニコードのバイト数または0。

備考

このメソッドでは、現行ストリームからcountバイトの最大数を読み取り、それらをoffsetで始まるバッファに格納します。ストリーム内の現在の位置は、読み取られたバイト数によって進められます。ただし、例外が発生した場合、ストリーム内の現在の位置は変更されずに残ります。

XMLデータの読取りは、Positionプロパティにより指定された位置から開始されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Read(char[ ], int, int)

Streamをオーバーライドします。

このメソッドでは、現行のインスタンスから指定された文字数を読み取り、ストリーム内の位置を進め、文字配列バッファに移入します。

宣言

// C#
public override int Read(char[ ] buffer, int offset, int count);

パラメータ

- buffer
移入される文字配列バッファ。

- offset
データ移入元バッファのゼロ・ベースのオフセット(文字)

- count
ストリームから読み取られる最大文字数

戻り値

戻り値は、ストリームの終わりに到達した場合のストリームから読み取られた文字数または0を示します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

このメソッドでは、ストリーム・インスタンス上のPositionをゼロまたは偶数にする必要があります。

XMLデータの読取りは、Positionプロパティにより指定された位置から開始されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

Seek

Streamをオーバーライドします。

このメソッドでは、現行ストリーム内の位置を設定し、現行ストリーム内の新しい位置を戻します。

宣言

// C#
public long Seek(long offset, SeekOrigin origin);

パラメータ

- offset
起点に相対的なバイト・オフセット

- offsetが負の場合は、新規位置がoffsetによって指定されたバイト数だけ、originで指定した位置より前にあります。

- offsetがゼロの場合は、originで指定した位置が新規位置となります。

- offsetが正の場合は、新規位置はoffsetによって指定されたバイト数だけ、originで指定した位置より後にあります。

- origin
新規位置を取得する場合に使用する参照ポイントを示すタイプSeekOriginの値。

戻り値

現行ストリーム内の新規Position。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

CanSeekプロパティを使用して、現行インスタンスが検索をサポートしているかどうかを判断します。ストリーム長を超えた任意の位置の検索がサポートされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlStreamクラス

- OracleXmlStreamメンバー

OracleXmlTypeクラス

OracleXmlTypeオブジェクトは、Oracle XMLTypeインスタンスを表します。

クラスの継承

System.Object

System.OracleXmlType

宣言

// C#
public sealed class OracleXmlType : IDisposable, INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleXmlTypeオブジェクトは、XML SchemaまたはXML断片部分があるかどうかにかかわらず、整形式XML文書に使用できます。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeメンバー

- OracleXmlTypeコンストラクタ

- OracleXmlType静的メソッド

- OracleXmlTypeインスタンス・プロパティ

- OracleXmlTypeインスタンス・メソッド

OracleXmlTypeメンバー

OracleXmlTypeメンバーは、次の各表にリストしています。

OracleXmlTypeコンストラクタ

OracleXmlTypeコンストラクタを、表6-19にリストします。

表6-19 OracleXmlTypeコンストラクタ

コンストラクタ

説明

OracleXmlTypeコンストラクタ

OracleXmlTypeクラスのインスタンスを作成します(オーバーロード)

OracleXmlType静的メソッド

OracleXmlType静的メソッドを、表6-20にリストします。

表6-20 OracleXmlType静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleXmlTypeインスタンス・プロパティ

OracleXmlTypeインスタンス・プロパティを、表6-21にリストします。

表6-21 OracleXmlTypeインスタンス・プロパティ

プロパティ

説明

Connection

OracleXmlType内のXMLデータの取得および格納に使用するOracleConnectionを示します。

IsEmpty

OracleXmlTypeが空かどうかを示します

IsFragment

XMLデータがXML要素のコレクションであるか、整形式XMLドキュメントであるかを示します。

IsSchemaBased

OracleXmlTypeが表すXMLデータがXMLスキーマに基づくかどうかを示します。

RootElement

OracleXmlType内にあるスキーマ・ベースのXMLデータの最上位レベル要素の名前を表します。

Schema

OracleXmlType内にあるXMLデータのXMLスキーマを表します。

SchemaUrl

OracleXmlType内にあるXMLデータのXMLスキーマのデータベースにあるXMLスキーマを表します。

Value

現行インスタンスの最初の文字を起点とする文字列としてXMLデータを戻します。

OracleXmlTypeインスタンス・メソッド

OracleXmlTypeインスタンス・メソッドを、表6-22にリストします。

表6-22 OracleXmlTypeインスタンス・メソッド

メソッド

説明

Clone

OracleXmlTypeインスタンスのコピーを作成します

Dispose

このOracleXmlTypeオブジェクトによって割り当てられたリソースを解除します

Equals

System.Objectからの継承

Extract

ネームスペース解決のための指定されたXPath式を使用してXMLデータからのサブセットを抽出します(オーバーロード)

GetHashCode

System.Objectからの継承

GetStream

OracleXmlTypeインスタンスに格納されたXMLデータの読取り専用ストリームを提供するOracleXmlStreamのインスタンスを戻します。

GetType

System.Objectからの継承

GetXmlDocument

このOracleXmlTypeインスタンスに格納されたXMLデータを含むXmlDocumentオブジェクトを戻します。

GetXmlReader

.NET Frameworkクラスおよびメソッドを使用して直接XMLデータを操作するために使用できるXmlTextReaderオブジェクトを戻します。

IsExists

XMLデータ内のXPath式で識別するノードの特定セットの存在を確認します(オーバーロード)

ToString

System.Objectからの継承

Transform

指定されたXSLドキュメントを使用して、OracleXmlTypeを他のOracleXmlTypeインスタンスに変換します(オーバーロード)

Update

現行OracleXmlTypeインスタンス内の指定されたXPath式で識別するXMLノードまたは断片を更新します(オーバーロード)

Validate

OracleXmlTypeオブジェクト内のXMLデータが指定されたXMLデータに一致するかどうかを検証します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

OracleXmlTypeコンストラクタ

OracleXmlTypeコンストラクタは、OracleXmlTypeクラスのインスタンスを作成します。

オーバーロード・リスト:

- OracleXmlType(OracleClob)
このコンストラクタでは、OracleClobオブジェクトに含まれるXMLデータを使用して、OracleXmlTypeクラスのインスタンスを作成します。

- OracleXmlType(OracleConnection, string)
このコンストラクタでは、.NET Stringに含まれるXMLデータを使用して、OracleXmlTypeクラスのインスタンスを作成します。

- OracleXmlType(OracleConnection, XmlReader)
このコンストラクタでは、.NET XmlReaderオブジェクトのコンテンツを使用して、OracleXmlTypeクラスのインスタンスを作成します。

- OracleXmlType(OracleConnection, XmlDocument)
このコンストラクタでは、.NET XmlDocumentオブジェクト内のXML DOMドキュメントのコンテンツを使用して、OracleXmlTypeオブジェクトのインスタンスを作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlType(OracleClob)

このコンストラクタでは、OracleClobオブジェクトに含まれるXMLデータを使用して、OracleXmlTypeクラスのインスタンスを作成します。

宣言

// C#
public OracleXmlType(OracleClob oraClob);

パラメータ

- oraClob
OracleClobオブジェクト

例外

ArgumentNullException - OracleClobオブジェクトはNullです。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

CLOBデータは、接続オブジェクトによって異なり、新しいOracleXMLTypeはOracleClobオブジェクト内のOracleConnectionを使用して現行インスタンスのデータを格納します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlType(OracleConnection, string)

このコンストラクタでは、.NET Stringに含まれるXMLデータを使用して、OracleXmlTypeクラスのインスタンスを作成します。

宣言

// C#
public OracleXmlType(OracleConnection con, string xmlData);

パラメータ

- con
OracleConnectionオブジェクト

- xmlData
XMLデータを含む文字列。

例外

ArgumentNullException - OracleConnectionオブジェクトはNullです。

ArgumentException - xmlData引数は空の文字列です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

新しいOracleXmlTypeは指定のOracleConnectionオブジェクトを使用して、現行インスタンスのデータを格納します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlType(OracleConnection, XmlReader)

このコンストラクタでは、.NET XmlReaderオブジェクトのコンテンツを使用して、OracleXmlTypeクラスのインスタンスを作成します。

宣言

// C#
public OracleXmlType(OracleConnection con, XmlReader reader);

パラメータ

- con
OracleConnectionオブジェクト

- reader
XmlReaderオブジェクト。

例外

ArgumentNullException - OracleConnectionオブジェクトはNullです。

ArgumentException - reader引数にはデータがありません。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

新しいOracleXMLTypeは指定のOracleConnectionオブジェクトを使用して、現行インスタンスのデータを格納します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlType(OracleConnection, XmlDocument)

このコンストラクタでは、.NET XmlDocumentオブジェクト内のXML DOMドキュメントのコンテンツを使用して、OracleXmlTypeオブジェクトのインスタンスを作成します。

宣言

// C#
public OracleXmlType(OracleConnection con, XmlDocument domDoc);

パラメータ

- con
OracleConnectionオブジェクト

- domDoc
XMLドキュメント。

例外

ArgumentNullException - OracleConnectionオブジェクトはNullです。

ArgumentException - domDoc引数にはデータがありません。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

新しいOracleXMLTypeは指定のOracleConnectionオブジェクトを使用して、現行インスタンスのデータを格納します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlType静的メソッド

OracleXmlType静的メソッドを、表6-23にリストします。

表6-23 OracleXmlType静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlTypeインスタンス・プロパティ

OracleXmlTypeインスタンス・プロパティを、表6-24にリストします。

表6-24 OracleXmlTypeインスタンス・プロパティ

プロパティ

説明

Connection

OracleXmlType内のXMLデータの取得および格納に使用するOracleConnectionを示します。

IsEmpty

OracleXmlTypeが空かどうかを示します

IsFragment

XMLデータがXML要素のコレクションであるか、整形式XMLドキュメントであるかを示します。

IsSchemaBased

OracleXmlTypeが表すXMLデータがXMLスキーマに基づくかどうかを示します。

RootElement

OracleXmlType内にあるスキーマ・ベースのXMLデータの最上位レベル要素の名前を表します。

Schema

OracleXmlType内にあるXMLデータのXMLスキーマを表します。

SchemaUrl

OracleXmlType内に含まれるXMLデータのXMLスキーマのデータベース内のURLを表します。

Value

現行インスタンスの最初の文字を起点とする文字列としてXMLデータを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Connection

このインスタンス・プロパティでは、OracleXmlType内のXMLデータの取得および格納に使用するOracleConnectionを示します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

OracleConnectionオブジェクト

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

接続は、OracleXmlTypeを作成または使用する前に、ユーザーによって明示的にオープンされる必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

IsEmpty

このプロパティでは、OracleXmlTypeが空かどうかを示します。

宣言

// C#
public bool IsEmpty {get;}

プロパティ値

OracleXmlTypeが空のXMLドキュメントを表す場合はtrueを戻します。それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

IsFragment

このプロパティでは、XMLデータがXML要素のコレクションであるか、整形式XMLドキュメントであるかを示します。

宣言

// C#
public bool IsFragment {get;}

プロパティ値

OracleXmlTypeオブジェクトに含まれるXMLデータがルート要素を持たないXML要素のコレクションである場合、trueを戻します。それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

IsSchemaBased

このプロパティでは、OracleXmlTypeが表すXMLデータがXMLスキーマに基づくかどうかを示します。

宣言

// C#
public bool IsSchemaBased {get;}

プロパティ値

OracleXmlTypeが表すXMLデータがXMLスキーマに基づく場合はtrueを戻します。それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

RootElement

このプロパティは、OracleXmlType内にあるスキーマ・ベースのXMLデータの最上位レベル要素、またはルート要素の名前を表します。

宣言

// C#
public string RootElement{get;}

プロパティ値

OracleXmlType内にあるスキーマ・ベースのXMLデータの最上位レベル要素、またはルート要素の名前を表す文字列。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

OracleXmlTypeインスタンスに非スキーマ・ベースのXMLデータがある場合、このプロパティは空の文字列を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Schema

このプロパティはOracleXmlType内にあるXMLデータのXMLスキーマを表します。

宣言

// C#
public OracleXmlType Schema {get;}

プロパティ値

OracleXmlTypeにあるXMLデータのXMLスキーマを表すOracleXmlTypeインスタンス。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

OracleXmlTypeインスタンスに非スキーマ・ベースのXMLデータがある場合、このプロパティは空のXMLドキュメントを表すOracleXmlTypeインスタンスを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

SchemaUrl

このプロパティは、OracleXmlType内にあるXMLデータのXMLスキーマのデータベースにあるXMLスキーマを表します。

宣言

// C#
public string SchemaUrl {get;}

プロパティ値

XMLデータのXMLスキーマのデータベース内にあるURLを表す文字列。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

OracleXmlTypeインスタンスに非スキーマ・ベースのXMLデータがある場合、このプロパティは空の文字列を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Value

このプロパティでは、現行インスタンスの最初の文字を起点とするstringとしてXMLデータを戻します。

宣言

// C#
public string RootElement{get;}

プロパティ値

stringとしてのXMLデータ全体。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

OracleXmlTypeインスタンス・メソッド

OracleXmlTypeインスタンス・メソッドを、表6-25にリストします。

表6-25 OracleXmlTypeインスタンス・メソッド

メソッド

説明

Clone

OracleXmlTypeインスタンスのコピーを作成します

Dispose

このOracleXmlTypeオブジェクトによって割り当てられたリソースを解除します

Equals

System.Objectからの継承

Extract

ネームスペース解決のための指定されたXPath式を使用してXMLデータからのサブセットを抽出します(オーバーロード)

GetHashCode

System.Objectからの継承

GetStream

OracleXmlTypeインスタンスに格納されたXMLデータの読取り専用ストリームを提供するOracleXmlStreamのインスタンスを戻します。

GetType

System.Objectからの継承

GetXmlDocument

このOracleXmlTypeインスタンスに格納されたXMLデータを含むXmlDocumentオブジェクトを戻します。

GetXmlReader

.NET Frameworkクラスおよびメソッドを使用して直接XMLデータを操作するために使用できるXmlTextReaderオブジェクトを戻します。

IsExists

XMLデータ内のXPath式で識別するノードの特定セットの存在を確認します(オーバーロード)

ToString

System.Objectからの継承

Transform

指定されたXSLドキュメントを使用して、OracleXmlTypeを他のOracleXmlTypeインスタンスに変換します(オーバーロード)

Update

現行OracleXmlTypeインスタンス内の指定されたXPath式で識別するXMLノードまたは断片を更新します(オーバーロード)

Validate

OracleXmlTypeオブジェクト内のXMLデータが指定されたXMLデータに一致するかどうかを検証します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Clone

このメソッドは、このOracleXmlTypeインスタンスのコピーを作成します。

宣言

// C#
public object Clone();

実装

ICloneable

戻り値

OracleXmlTypeオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Dispose

このパブリック・メソッドでは、このオブジェクトによって割り当てられたリソースを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Extract

このメソッドでは、ネームスペース解決の指定されたXPath式を使用してXMLデータからのサブセットを抽出します。

オーバーロード・リスト:

- Extract(string, string)
このメソッドでは、ネームスペース解決のために、指定されたXPath式および文字列パラメータを使用して、OracleXmlTypeオブジェクトが表すXMLデータからのサブセットを抽出します。

- Extract(string, XmlNameSpaceManager)
このメソッドでは、ネームスペース解決のための指定されたXPath式および.NET XmlNameSpaceManagerオブジェクトを使用して、OracleXmlTypeオブジェクトが表すXMLデータからのサブセットを抽出します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Extract(string, string)

このメソッドでは、ネームスペース解決のために、指定されたXPath式および文字列パラメータを使用して、OracleXmlTypeオブジェクトが表すXMLデータからのサブセットを抽出します。

宣言

// C#
public OracleXmlType Extract(string xpathExpr, string nsMap);

パラメータ

- xpathExpr
XPath式。

- nsMap
XPath式のネームスペース解決に使用する文字列パラメータ。nsMapには、スペースで区切られたゼロ以上のネームスペースがあります。nsMapにはNULLを使用できます。次に例を示します。

xmlns:nsi"=http://www.company1.com" xmlns:nsz="http://www.company2.com"

戻り値

OracleXmlTypeオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Extract(string, XmlNameSpaceManager)

このパブリック・メソッドでは、ネームスペース解決のための指定されたXPath式および.NET XmlNameSpaceManagerオブジェクトを使用して、OracleXmlTypeオブジェクトが表すXMLデータからのサブセットを抽出します。

宣言

// C#
public OracleXmlType Extract(string xpathExpr, XmlNameSpaceManager nsMgr);

パラメータ

- xpathExpr
XPath式。

- nsMgr
XPath式のネームスペース解決に使用する.NET XmlNameSpaceManagerオブジェクト。nsMgrにはNULLを使用できます。

戻り値

OracleXmlType

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

GetStream

このパブリック・メソッドは、OracleXmlTypeインスタンスに格納されたXMLデータの読取り専用ストリームを提供するOracleXmlStreamのインスタンスを戻します。

宣言

// C#
public Stream GetStream();

戻り値

Streamオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

GetXmlDocument

このパブリック・メソッドは、このOracleXmlTypeインスタンスに格納されたXMLデータを含むXmlDocumentオブジェクトを戻します。

宣言

// C#
public XmlDocument GetXmlDocument();

戻り値

XmlDocumentオブジェクト

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

XmlDocumentオブジェクト内のXMLデータは、OracleXmlType インスタンス内のXMLデータのコピーであり、これを変更してもOracleXmlTypeインスタンス内のXMLデータは自動的には変更されません。戻されたXmlDocumentインスタンスには、trueに設定されたPreserveWhitespaceプロパティがあります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

GetXmlReader

パブリック・メソッドは、.NET Frameworkクラスおよびメソッドを使用して直接XMLデータを操作するために使用できるXmlTextReaderオブジェクトを戻します。

宣言

// C#
public XmlTextReader GetXmlReader();

戻り値

XmlTextReaderオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

XmlTextReaderは、OracleXmlTypeインスタンスに格納されたXMLデータの読取り専用、および順方向専用の表現です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

IsExists

IsExistsでは、XMLデータ内のXPath式で識別するノードの特定セットの存在を確認します。

オーバーロード・リスト:

- IsExists(string, string)
このメソッドでは、ネームスペース解決の文字列パラメータを使用して、現行OracleXmlTypeインスタンスによって表されるXMLデータ内の、XPath式で識別するノードの特定セットの存在を確認します。

- IsExists(string, XmlNameSpaceManager)
このメソッドでは、ネームスペース解決の.NET XmlNameSpaceManagerオブジェクトを使用して、現行OracleXmlTypeインスタンスによって表されるXMLドキュメント内の、XPath式で識別するノードの特定セットの存在を確認します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

IsExists(string, string)

このメソッドでは、ネームスペース解決の文字列パラメータを使用して、現行OracleXmlTypeインスタンスによって表されるXMLデータ内の、XPath式で識別するノードの特定セットの存在を確認します。

宣言

// C#
public bool IsExists(string xpathExpr, string nsMap);

パラメータ

- xpathExpr
XPath式。

- nsMap
XPath式のネームスペース解決に使用する文字列パラメータ。nsMapには、スペースで区切られたゼロ以上のネームスペースがあります。nsMapにはNULLを使用できます。

戻り値

必要なノードのセットが存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

IsExists(string, XmlNameSpaceManager)

このメソッドでは、ネームスペース解決の.NET XmlNameSpaceManagerオブジェクトを使用して、現行OracleXmlTypeインスタンスによって表されるXMLドキュメント内の、XPath式で識別するノードの特定セットの存在を確認します。

宣言

// C#
public bool IsExists(string xpathExpr, XmlNameSpaceManager nsMgr);

パラメータ

- xpathExpr
XPath式。

- nsMgr
XPath式のネームスペース解決に使用する.NET XmlNameSpaceManagerオブジェクト。nsMgrにはNULLを使用できます。

戻り値

必要なノードのセットが存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Transform

このメソッドでは、指定されたXSLドキュメントを使用して、OracleXmlTypeを他のOracleXmlTypeインスタンスに変換します。

オーバーロード・リスト:

- Transform(OracleXmlType, string)
このメソッドは、指定されたXSLドキュメントおよびXSLTパラメータの文字列を(OracleXmlTypeオブジェクトとして)使用して、現行のOracleXmlTypeインスタンスを他のOracleXmlTypeインスタンスに変換します。

- Transform(string, string)
このパブリック・メソッドは、指定されたXSLドキュメントおよびXSLTパラメータの文字列を使用して、現行のOracleXmlTypeインスタンスを他のOracleXmlTypeインスタンスに変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Transform(OracleXmlType, string)

このメソッドは、指定されたXSLドキュメントおよびXSLTパラメータの文字列を使用して、現行のOracleXmlTypeインスタンスを他のOracleXmlTypeインスタンスに変換します。

宣言

// C#
public OracleXmlType Transform(OracleXmlType xsldoc, string paramMap);

パラメータ

- xsldoc
OracleXmlTypeオブジェクトとしてのXSLドキュメント。

- paramMap
XSLドキュメントのパラメータを指定する文字列。

このリリースでは、paramMapは無視されます。

戻り値

変換したXMLドキュメントを含むOracleXmlTypeオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xsldocパラメータがNULLです。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Transform(string, string)

このメソッドは、指定されたXSLドキュメントおよびXSLTパラメータの文字列を使用して、現行のOracleXmlTypeインスタンスを他のOracleXmlTypeインスタンスに変換します。

宣言

// C#
public OracleXmlType Transform(string xsldoc, string paramMap);

パラメータ

- xsldoc
XSLTに使用するXSLドキュメント。

- paramMap
XSLドキュメントのパラメータを指定する文字列。

このリリースでは、paramMapは無視されます。

戻り値

変換したXMLドキュメントを含むOracleXmlTypeオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xsldocパラメータがNULLです。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Update

このメソッドでは、現行OracleXmlTypeインスタンス内の指定されたXPath式で識別するXMLノードまたは断片を更新します(オーバーロード)

オーバーロード・リスト:

- Update(string, string, string)
このメソッドでは、ネームスペース解決のための指定された文字列値および文字列パラメータを持つ指定されたXPath式で識別されるXMLノードを更新します。

- Update(string, XmlNameSpaceManager, string)
このメソッドでは、ネームスペース解決のための指定された文字列値および.NET XmlNameSpaceManagerオブジェクトを持つ指定されたXPath式で識別されるXMLノードを更新します。

- Update(string, string, OracleXmlType)
このメソッドでは、ネームスペース解決のための指定されたOracleXmlType値および文字列値に格納されたXMLデータを持つ指定されたXPath式で識別されるXMLノードを更新します。

- Update(string, XmlNameSpaceManager, OracleXmlType)
このメソッドでは、ネームスペース解決のための指定されたOracleXmlType値および .NET XmlNameSpaceManagerオブジェクトに格納されたXMLデータを持つ指定されたXPath式で識別されるXMLノードを更新します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Update(string, string, string)

このメソッドでは、ネームスペース解決のための指定された文字列値および文字列パラメータを持つ指定されたXPath式で識別されるXMLノードを更新します。

宣言

// C#
public void Update(string xpathExpr, string nsMap, string value);

パラメータ

- xpathExpr
更新するノードを識別するXPath式。

- nsMap
XPath式のネームスペース解決に使用する文字列パラメータ。nsMapには、スペースで区切られたゼロ以上のネームスペースがあります。nsMapにはNULLを使用できます。次に例を示します。

xmlns:nsi"=http://www.company1.com" xmlns:nsz="http://www.company2.com"

- value
stringとしての新しい値。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Update(string, XmlNameSpaceManager, string)

このメソッドでは、ネームスペース解決のための指定された文字列値および.NET XmlNameSpaceManagerオブジェクトを持つ指定されたXPath式で識別されるXMLノードを更新します。

宣言

// C#
public void Update(string xpathExpr, XmlNameSpaceManager nsMgr, string
value);

パラメータ

- xpathExpr
更新するノードを識別するXPath式。

- nsMgr
XPath式のネームスペース解決に使用する.NET XmlNameSpaceManagerオブジェクト。nsMgrにはNULLを使用できます。

- value
stringとしての新しい値。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Update(string, string, OracleXmlType)

このメソッドでは、ネームスペース解決のための指定されたOracleXmlType値および文字列値に格納されたXMLデータを持つ指定されたXPath式で識別されるXMLノードを更新します。

宣言

// C#
public void Update(string xpathExpr, string nsMap, OracleXmlType value);

パラメータ

- xpathExpr
更新するノードを識別するXPath式。

- nsMap
XPath式のネームスペース解決に使用する文字列パラメータ。nsMapには、スペースで区切られたゼロ以上のネームスペースがあります。nsMapにはNULLを使用できます。

- value
OracleXmlTypeオブジェクトとしての新しい値。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Update(string, XmlNameSpaceManager, OracleXmlType)

このメソッドでは、ネームスペース解決のための指定されたOracleXmlType値および .NET XmlNameSpaceManagerオブジェクトに格納されたXMLデータを持つ指定されたXPath式で識別されるXMLノードを更新します。

宣言

// C#
public void Update(string xpathExpr, XmlNameSpaceManager nsMgr, OracleXmlType     value);

パラメータ

- xpathExpr
更新するノードを識別するXPath式。

- nsMgr
XPath式のネームスペース解決に使用する.NET XmlNameSpaceManagerオブジェクト。nsMgrにはNULLを使用できます。

- value
OracleXmlTypeオブジェクトとしての新しい値。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentNullException - xpathExprはNULLまたはゼロ長です。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

この値が空の文字列である場合、デフォルト・ネームスペースは無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

Validate

このメソッドではOracleXmlTypeオブジェクト内のXMLデータが指定されたXMLデータに一致するかどうかを検証します。

宣言

// C#
public bool Validate(String schemaUrl);

パラメータ

- schemaUrl
XMLスキーマのデータベース内にあるURLを表す文字列。

戻り値

XMLデータがXMLスキーマと一致する場合はtrueを戻します。それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentNullException - schemaUrl引数はNULLか空の文字列です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleXmlTypeクラス

- OracleXmlTypeメンバー

7 ADO.NET 2.0のクラス

この章では、ADO.NET 2.0仕様をサポートする次のOracle Data Provider for .NETクラスについて説明します。

関連項目:
「ADO.NET 2.0の機能」

- OracleClientFactoryクラス

- OracleConnectionStringBuilderクラス

- OracleDataSourceEnumeratorクラス

OracleClientFactoryクラス

OracleClientFactoryオブジェクトによって、アプリケーションはODP.NETクラスを一般的な方法でインスタンス化できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

クラスの継承

System.Object

System.Data.Common.DbProviderFactory

Oracle.DataAccess.Client.OracleClientFactory

宣言

// C#
public sealed class OracleClientFactory : DbProviderFactory

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class FactorySample
{
static void Main()
{
string constr = "user id=scott;password=tiger;data source=oracle";

DbProviderFactory factory =
DbProviderFactories.GetFactory("Oracle.DataAccess.Client");

DbConnection conn = factory.CreateConnection();

try
{
conn.ConnectionString = constr;
conn.Open();

DbCommand cmd = factory.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from emp";

DbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
Console.WriteLine(reader["EMPNO"] + " : " + reader["ENAME"]);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryメンバー

- OracleClientFactoryパブリック・プロパティ

- OracleClientFactoryパブリック・メソッド

OracleClientFactoryメンバー

OracleClientFactoryメンバーを、次の各表にリストします。

OracleClientFactoryパブリック・プロパティ

OracleClientFactoryパブリック・プロパティを、表7-1にリストします。

表7-1 OracleClientFactoryパブリック・プロパティ

プロパティ

説明

CanCreateDataSourceEnumerator

CreateDataSourceEnumeratorメソッドがサポートされているかどうかを示します。

OracleClientFactoryパブリック・メソッド

OracleClientFactoryパブリック・メソッドを、表7-2にリストします。

表7-2 OracleClientFactoryパブリック・メソッド

メソッド

説明

CreateCommand

OracleCommandオブジェクトを表すDbCommandオブジェクトを戻します

CreateCommandBuilder

OracleCommandBuilderオブジェクトを表すDbCommandBuilderオブジェクトを戻します

CreateConnection

OracleConnectionオブジェクトを表すDbConnectionオブジェクトを戻します

CreateConnectionStringBuilder

OracleConnectionStringBuilderオブジェクトを表すDbConnectionStringBuilderオブジェクトを戻します

CreateDataAdapter

DbDataAdapterオブジェクトを表すDbDataAdapterオブジェクトを戻します

CreateDataSourceEnumerator

OracleDataSourceEnumeratorオブジェクトを表すDbDataSourceEnumeratorオブジェクトを戻します

CreateParameter

OracleParameterオブジェクトを表すDbParameterオブジェクトを戻します

CreatePermission

OraclePermissionオブジェクトを表すCodeAccessPermissionオブジェクトを戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

OracleClientFactoryパブリック・プロパティ

OracleClientFactoryパブリック・プロパティを、表7-3にリストします。

表7-3 OracleClientFactoryパブリック・プロパティ

プロパティ

説明

CanCreateDataSourceEnumerator

CreateDataSourceEnumeratorメソッドがサポートされているかどうかを示します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CanCreateDataSourceEnumerator

このプロパティは、CreateDataSourceEnumeratorメソッドがサポートされているかどうかを示します。

宣言

// C#
public override bool CanCreateDataSourceEnumerator { get; }

プロパティ値

trueを戻します。

備考

ODP.NETでは、OracleDataSourceEnumeratorオブジェクトがサポートされています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

OracleClientFactoryパブリック・メソッド

OracleClientFactoryパブリック・メソッドを、表7-4にリストします。

表7-4 OracleClientFactoryパブリック・メソッド

メソッド

説明

CreateCommand

OracleCommandオブジェクトを表すDbCommandオブジェクトを戻します

CreateCommandBuilder

OracleCommandBuilderオブジェクトを表すDbCommandBuilderオブジェクトを戻します

CreateConnection

OracleConnectionオブジェクトを表すDbConnectionオブジェクトを戻します

CreateConnectionStringBuilder

OracleConnectionStringBuilderオブジェクトを表すDbConnectionStringBuilderオブジェクトを戻します

CreateDataAdapter

DbDataAdapterオブジェクトを表すDbDataAdapterオブジェクトを戻します

CreateDataSourceEnumerator

OracleDataSourceEnumeratorオブジェクトを表すDbDataSourceEnumeratorオブジェクトを戻します

CreateParameter

OracleParameterオブジェクトを表すDbParameterオブジェクトを戻します

CreatePermission

OraclePermissionオブジェクトを表すCodeAccessPermissionオブジェクトを戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreateCommand

このメソッドは、OracleCommandオブジェクトを表すDbCommandオブジェクトを戻します。

宣言

// C#
public override DbCommand CreateCommand();

戻り値

OracleCommandオブジェクトを表すDbCommandオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreateCommandBuilder

このメソッドは、OracleCommandBuilderオブジェクトを表すDbCommandBuilderオブジェクトを戻します。

宣言

// C#
public override DbCommandBuilder CreateCommandBuilder();

戻り値

OracleCommandBuilderオブジェクトを表すDbCommandBuilderオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreateConnection

このメソッドは、OracleConnectionオブジェクトを表すDbConnectionオブジェクトを戻します。

宣言

// C#
public override DbConnection CreateConnection();

戻り値

DbConnectionオブジェクトを表すDbConnectionオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreateConnectionStringBuilder

このメソッドは、OracleConnectionStringBuilderオブジェクトを表すDbConnectionStringBuilderオブジェクトを戻します。

宣言

// C#
public override DbConnectionStringBuilder CreateConnectionStringBuilder();

戻り値

OracleConnectionStringBuilderオブジェクトを表すDbConnectionStringBuilderオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreateDataAdapter

このメソッドは、OracleDataAdapterオブジェクトを表すDbDataAdapterオブジェクトを戻します。

宣言

// C#
public override DbDataAdapter CreateDataAdapter();

戻り値

DbDataAdapterオブジェクトを表すDbDataAdapterオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreateDataSourceEnumerator

このメソッドは、OracleDataSourceEnumeratorオブジェクトを表すDbDataSourceEnumeratorオブジェクトを戻します。

宣言

// C#
public override DbDataSourceEnumerator CreateDataSourceEnumerator();

戻り値

OracleDataSourceEnumeratorオブジェクトを表すDbDataSourceEnumeratorオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

- 「OracleDataSourceEnumeratorクラス」

CreateParameter

このメソッドは、OracleParameterオブジェクトを表すDbParameterオブジェクトを戻します。

宣言

// C#
public override DbParameter CreateParameter();

戻り値

OracleParameterオブジェクトを表すDbParameterオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

CreatePermission

このメソッドは、OraclePermissionオブジェクトを表すCodeAccessPermissionオブジェクトを戻します。

宣言

// C#
public override System.Security.CodeAccessPermission CreatePermission(
System.Security.Permissions.PermissionState state);

パラメータ

- state
PermissionStateオブジェクト。

戻り値

OraclePermissionオブジェクトを表すCodeAccessPermissionオブジェクト。

備考

このメソッドは、プロバイダに依存しないコードを記述するユーザーが、OraclePermissionオブジェクトを表すCodeAccessPermissionインスタンスを取得できるようにします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleClientFactoryクラス

- OracleClientFactoryメンバー

OracleConnectionStringBuilderクラス

OracleConnectionStringBuilderオブジェクトによって、アプリケーションは接続文字列を作成し変更できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

クラスの継承

System.Object

System.Data.Common.DbConnectionStringBuilder

Oracle.DataAccess.Client.OracleConnectionStringBuilder

宣言

// C#
public sealed class OracleConnectionStringBuilder : DbConnectionStringBuilder

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

予約文字を使用して値を設定する場合には、次のルールに従う必要があります。

1. 一重引用符で囲まれた文字を含む値
値に一重引用符で囲まれた文字が含まれる場合、値全体を二重引用符で囲む必要があります。

たとえば、値が'scoTT'の場合、password ="'scoTT'"とします。

2. 二重引用符で囲まれた文字を含む値
値は二重引用符で囲み、大/小文字の区別を順守して、値が大文字にならないようにする必要があります。

値に二重引用符で囲まれた文字が含まれる場合、値を一重引用符で囲む必要があります。

たとえば、値が"scoTT"の場合、password = '"scoTT"'とします。

3. 一重引用符と二重引用符の両方で囲まれた文字を含む値
値が一重引用符と二重引用符の両方で囲まれている場合、値を囲む引用符は、その値を使用するたびに二重に囲む必要があります。

たとえば、値が"sco'TT"の場合、password = '"sco''TT"'とします。

4. スペースを含む値
先頭および末尾にあるすべてのスペースは無視されますが、値の間にあるスペースは認識されます。値の先頭または末尾にスペースが必要な場合、二重引用符で囲む必要があります。

たとえば、値が<Sco TT>の場合、User ID = Sco TTとします。

たとえば、値が<Sco TT>の場合、User ID = "Sco TT "とします。

5. 接続文字列内で複数回表示されるキーワード
指定したキーワードが接続文字列で複数回表示される場合、リストされた最後のキーワードが値セットで使用されます。

たとえば、"User ID = scott; password = tiger; User ID = david"接続文字の場合、User IDの値はdavidです。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;
using System.Collections;

class ConnectionStringBuilderSample
{
static void Main(string[] args)
{
bool bRet = false;

// Create an instance of OracleConnectionStringBuilder
OracleConnectionStringBuilder connStrBuilder =
new OracleConnectionStringBuilder();

// Add new key/value pairs to the connection string
connStrBuilder.Add("User Id", "scott");
connStrBuilder.Add("Password", "tiger");
connStrBuilder.Add("Data Source", "oracle");
connStrBuilder.Add("pooling", false);

// Modify the existing value
connStrBuilder["Data source"] = "inst1";

// Remove an entry from the connection string
bRet = connStrBuilder.Remove("pooling");

//ContainsKey indicates whether or not the specific key exist
//returns true even if the user has not specified it explicitly
Console.WriteLine("Enlist exist: " +
connStrBuilder.ContainsKey("Enlist"));

//returns false
connStrBuilder.ContainsKey("Invalid");

// ShouldSerialize indicates whether or not a specific key
// exists in connection string inherited from DbConnectionStringBuilder.
// returns true if the key is explicitly added the user otherwise false;
// this will return false as this key doesn't exists.
connStrBuilder.ShouldSerialize("user");

// returns false because this key is nott added by user explicitly.
connStrBuilder.ShouldSerialize("Enlist");

// IsFixedSize [read-only property]
Console.WriteLine("Connection String is fixed size only: "
+ connStrBuilder.IsFixedSize);
Console.WriteLine("Key/Value Pair Count: " + connStrBuilder.Count);

//adding a new key which is not supported by the provider
//is not allowed.
try
{
//this will throw an exception.
connStrBuilder.Add("NewKey", "newValue");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Console.WriteLine("Key/Value Pair Count: " + connStrBuilder.Count);

//modifying a existing key is allowed.
connStrBuilder.Add("Enlist", false);
Console.WriteLine("Key/Value Pair Count: " + connStrBuilder.Count);

// Get all the keys and values supported by the provider.
ICollection keyCollection = connStrBuilder.Keys;
ICollection valueCollection = connStrBuilder.Values;

IEnumerator keys = keyCollection.GetEnumerator();
IEnumerator values = valueCollection.GetEnumerator();

while (keys.MoveNext())
{
values.MoveNext();
Console.WriteLine("Key: {0}     Value: {1} \n"
,keys.Current ,values.Current);
}
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderメンバー

- OracleConnectionStringBuilderコンストラクタ

- OracleConnectionStringBuilderパブリック・プロパティ

- OracleConnectionStringBuilderパブリック・メソッド

OracleConnectionStringBuilderメンバー

OracleConnectionStringBuilderメンバーを次の表にリストします。

OracleConnectionStringBuilderコンストラクタ

OracleConnectionStringBuilderコンストラクタを、表7-5にリストします。

表7-5 OracleConnectionStringBuilderコンストラクタ

コンストラクタ

説明

OracleConnectionStringBuilderコンストラクタ

OracleConnectionStringBuilderクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleConnectionStringBuilderパブリック・プロパティ

OracleConnectionStringBuilderインスタンス・プロパティを、表7-6にリストします。

表7-6 OracleConnectionStringBuilderパブリック・プロパティ

プロパティ

説明

BrowsableConnectionString

System.Data.Common. DbConnectionStringBuilderからの継承

ConnectionLifetime

ConnectionStringプロパティ内のConnection Lifetime属性に対応する値を指定します。

ConnectionString

System.Data.Common. DbConnectionStringBuilderからの継承

ConnectionTimeout

ConnectionStringプロパティ内のConnection Timeout属性に対応する値を指定します。

ContextConnection

ConnectionStringプロパティ内のContext Connection属性に対応する値を指定します。

Count

System.Data.Common.DbConnectionStringBuilderからの継承

DataSource

ConnectionStringプロパティ内のData Source属性に対応する値を指定します。

DBAPrivilege

ConnectionStringプロパティ内のDBA Privilege属性に対応する値を指定します。

DecrPoolSize

ConnectionStringプロパティ内のDecr Pool Size属性に対応する値を指定します。

Enlist

ConnectionStringプロパティ内のEnlist属性に対応する値を指定します。

HAEvents

ConnectionStringプロパティ内のHA Events属性に対応する値を指定します。

IncrPoolSize

ConnectionStringプロパティ内のIncr Pool Size属性に対応する値を指定します。

IsFixedSize

Connection String Builderに固定サイズがあるかどうかを示します。

IsReadOnly

System.Data.Common.DbConnectionStringBuilderからの継承

Item

指定された属性に関連した値を指定します。

Keys

Connection String Builder内に含まれる属性のコレクションを指定します。

LoadBalancing

ConnectionStringプロパティ内のLoad Balancing属性に対応する値を指定します。

MaxPoolSize

ConnectionStringプロパティ内のMax Pool Size属性に対応する値を指定します。

MetadataPooling

ConnectionStringプロパティ内のMetadata Pooling属性に対応する値を指定します。

MinPoolSize

ConnectionStringプロパティ内のMin Pool Size属性に対応する値を指定します。

Password

ConnectionStringプロパティ内のPassword属性に対応する値を指定します。

PersistSecurityInfo

ConnectionStringプロパティ内のPersist Security Info属性に対応する値を指定します。

Pooling

ConnectionStringプロパティ内のPooling属性に対応する値を指定します。

ProxyPassword

ConnectionStringプロパティ内のProxy User Id属性に対応する値を指定します。

ProxyUserId

ConnectionStringプロパティ内のProxy User Id属性に対応する値を指定します。

SelfTuning

ConnectionStringプロパティ内のSelf Tuning属性に対応する値を指定します。

StatementCachePurge

ConnectionStringプロパティ内のStatement Cache Purge属性に対応する値を指定します。

StatementCacheSize

ConnectionStringプロパティ内のStatement Cache Size属性に対応する値を指定します。

UserID

ConnectionStringプロパティ内のUser Id属性に対応する値を指定します。

ValidateConnection

ConnectionStringプロパティ内のValidate Connection属性に対応する値を指定します。

Values

Connection String Builder内に含まれる値のコレクションを指定します。

OracleConnectionStringBuilderパブリック・メソッド

OracleConnectionStringBuilderインスタンス・メソッドを、表7-7にリストします。

表7-7 OracleConnectionStringBuilderパブリック・メソッド

メソッド

説明

Add

System.Data.Common.DbConnectionStringBuilderからの継承

Clear

接続文字列のコンテンツをクリアします。

ContainsKey

ODP.NETが接続文字列内の特定の属性をサポートしているかどうかを示します。

EquivalentTo

System.Data.Common.DbConnectionStringBuilderからの継承

Remove

接続文字列から指定された属性に対応するエントリを削除します。

ShouldSerialize

System.Data.Common.DbConnectionStringBuilderからの継承

ToString

System.Data.Common.DbConnectionStringBuilderからの継承

TryGetValue

指定された属性に対応する値を出力パラメータとして戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

OracleConnectionStringBuilderコンストラクタ

OracleConnectionStringBuilderコンストラクタはOracleConnectionStringBuilderクラスの新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleConnectionStringBuilder()
このコンストラクタでは、OracleConnectionStringBuilderクラスの新規インスタンスがインスタンス化されます。

- OracleConnectionStringBuilder(string)
このコンストラクタは、指定された接続文字列とともにOracleConnectionStringBuilderクラスの新規インスタンスをインスタンス化します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

OracleConnectionStringBuilder()

このコンストラクタでは、OracleConnectionStringBuilderクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleConnectionStringBuilder();

備考

ConnectionStringプロパティは、オブジェクト作成後に空にされます。

関連項目:
Oracle.DataAccess.Clientネームスペース

OracleConnectionStringBuilder(string)

このコンストラクタは、指定された接続文字列とともにOracleConnectionStringBuilderクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleConnectionStringBuilder(string connectionString);

パラメータ

- connectionString
接続情報。

例外

ArgumentNullException - connectionStringパラメータがNullです。

ArgumentException - connectionStringパラメータが無効です。

備考

このインスタンスのConnectionStringプロパティは、指定された接続文字列に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

OracleConnectionStringBuilderパブリック・プロパティ

OracleConnectionStringBuilderパブリック・プロパティを、表7-8にリストします。

表7-8 OracleConnectionStringBuilderパブリック・プロパティ

プロパティ

説明

BrowsableConnectionString

System.Data.Common. DbConnectionStringBuilderからの継承

ConnectionLifetime

ConnectionStringプロパティ内のConnection Lifetime属性に対応する値を指定します。

ConnectionString

System.Data.Common. DbConnectionStringBuilderからの継承

ConnectionTimeout

ConnectionStringプロパティ内のConnection Timeout属性に対応する値を指定します。

ContextConnection

ConnectionStringプロパティ内のContext Connection属性に対応する値を指定します。

Count

System.Data.Common. DbConnectionStringBuilderからの継承

DataSource

ConnectionStringプロパティ内のData Source属性に対応する値を指定します。

DBAPrivilege

ConnectionStringプロパティ内のDBA Privilege属性に対応する値を指定します。

DecrPoolSize

ConnectionStringプロパティ内のDecr Pool Size属性に対応する値を指定します。

Enlist

ConnectionStringプロパティ内のEnlist属性に対応する値を指定します。

HAEvents

ConnectionStringプロパティ内のHA Events属性に対応する値を指定します。

IncrPoolSize

ConnectionStringプロパティ内のIncr Pool Size属性に対応する値を指定します。

IsFixedSize

Connection String Builderに固定サイズがあるかどうかを示します。

IsReadOnly

System.Data.Common.DbConnectionStringBuilderからの継承

Item

指定された属性に関連した値を指定します。

Keys

Connection String Builder内に含まれる属性のコレクションを指定します。

LoadBalancing

ConnectionStringプロパティ内のLoad Balancing属性に対応する値を指定します。

MaxPoolSize

ConnectionStringプロパティ内のMax Pool Size属性に対応する値を指定します。

MetadataPooling

ConnectionStringプロパティ内のMetadata Pooling属性に対応する値を指定します。

MinPoolSize

ConnectionStringプロパティ内のMin Pool Size属性に対応する値を指定します。

Password

ConnectionStringプロパティ内のPassword属性に対応する値を指定します。

PersistSecurityInfo

ConnectionStringプロパティ内のPersist Security Info属性に対応する値を指定します。

Pooling

ConnectionStringプロパティ内のPooling属性に対応する値を指定します。

ProxyPassword

ConnectionStringプロパティ内のProxy User Id属性に対応する値を指定します。

ProxyUserId

ConnectionStringプロパティ内のProxy User Id属性に対応する値を指定します。

SelfTuning

ConnectionStringプロパティ内のSelf Tuning属性に対応する値を指定します。

StatementCachePurge

ConnectionStringプロパティ内のStatement Cache Purge属性に対応する値を指定します。

StatementCacheSize

ConnectionStringプロパティ内のStatement Cache Size属性に対応する値を指定します。

UserID

ConnectionStringプロパティ内のUser Id属性に対応する値を指定します。

ValidateConnection

ConnectionStringプロパティ内のValidate Connection属性に対応する値を指定します。

Values

Connection String Builder内に含まれる値のコレクションを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ConnectionLifetime

このプロパティは、ConnectionStringプロパティ内のConnection Lifetime属性に対応する値を指定します。

宣言

// C#
public int ConnectionLifetime{get; set;}

プロパティ値

指定された属性の値を表すint

例外

OracleException - 指定された値が0未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ConnectionTimeout

このプロパティは、ConnectionStringプロパティ内のConnection Timeout属性に対応する値を指定します。

宣言

// C#
public int ConnectionTimeout{get; set;}

プロパティ値

指定された属性の値を表すint

例外

OracleException - 指定された値が0未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ContextConnection

このプロパティは、ConnectionStringプロパティ内のContext Connection属性に対応する値を指定します。

宣言

// C#
public bool ContextConnection {get; set;}

プロパティ値

指定された属性の値を表すbool。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

DataSource

このプロパティは、ConnectionStringプロパティ内のData Source属性に対応する値を指定します。

宣言

// C#
public string DataSource{get; set;}

プロパティ値

指定された属性の値を表す文字列。

例外

ArgumentNullException - 指定値はNullです。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

DBAPrivilege

このプロパティは、ConnectionStringプロパティ内のDBA Privilege属性に対応する値を指定します。

宣言

// C#
public string DBAPrivilege{get; set;}

プロパティ値

指定された属性の値を表す文字列。

可能な値は、SYSDBAまたはSYSOPERです。

例外

ArgumentNullException - 指定値はNullです。

OracleException - 指定値が無効です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

DecrPoolSize

このプロパティは、ConnectionStringプロパティ内のDecr Pool Size属性に対応する値を指定します。

宣言

// C#
public int DecrPoolSize{get; set;}

プロパティ値

指定された属性の値を表すint

例外

OracleException - 指定された値が1未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Enlist

このプロパティは、ConnectionStringプロパティ内のEnlist属性に対応する値を指定します。

宣言

// C#
public string Enlist{get; set;};

プロパティ値

指定された属性の値を表す文字列。値は大文字小文字が区別されます。可能な値はdynamic、true、false、yesおよびnoです。

例外

ArgumentNullException - 指定値はNullです。

OracleException: 指定された値が、dynamic、true、false、yesまたはnoのうち1つではありません。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

HAEvents

このプロパティは、ConnectionStringプロパティ内のHA Events属性に対応する値を指定します。

宣言

// C#
public bool HAEvents{get; set;}

プロパティ値

指定された属性の値を表すbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

IncrPoolSize

このプロパティは、ConnectionStringプロパティ内のIncr Pool Size属性に対応する値を指定します。

宣言

// C#
public int IncrPoolSize{get; set;}

プロパティ値

指定された属性の値を表すint

例外

OracleException - 指定された値が1未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

IsFixedSize

Connection String Builderに固定サイズがあるかどうかを示します。

宣言

// C#
public override bool IsFixedSize{get;}

プロパティ値

Connection String Builderに固定サイズがある場合はtrue、それ以外の場合はfalseを戻します。

備考

属性は追加または削除できません。これらは固定サイズの接続文字列に対してのみ変更できます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Item

このプロパティは、指定された属性に関連した値を指定します。

宣言

// C#
public override object this[string keyword]{get; set;}

プロパティ値

属性に対応するオブジェクト値。

例外

ArgumentNullException - 指定属性はNullです。

OracleException - 指定値がサポートされていないか、無効です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Keys

このプロパティでは、Connection String Builder内に含まれる属性のコレクションを指定します。

宣言

// C#
public override ICollection Keys{get;}

プロパティ値

Connection String Builder内の属性を表すICollectionを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

LoadBalancing

このプロパティは、ConnectionStringプロパティ内のLoad Balancing属性に対応する値を指定します。

宣言

// C#
public bool LoadBalancing {get; set;}

プロパティ値

指定された属性の値を含むbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

MaxPoolSize

このプロパティは、ConnectionStringプロパティ内のMax Pool Size属性に対応する値を指定します。

宣言

// C#
public int MaxPoolSize{get; set;}

プロパティ値

指定された属性の値を表すint

例外

OracleException - 指定された値が1未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

MetadataPooling

このプロパティは、ConnectionStringプロパティ内のMetadata Pooling属性に対応する値を指定します。

宣言

// C#
public bool MetadataPooling{get; set;};

プロパティ値

指定された属性の値を含むbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

MinPoolSize

このプロパティは、ConnectionStringプロパティ内のMin Pool Size属性に対応する値を指定します。

宣言

// C#
public int MinPoolSize{get; set;}

プロパティ値

指定された属性の値を含むint。

例外

OracleException - 指定された値が0未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Password

このプロパティは、ConnectionStringプロパティ内のPassword属性に対応する値を指定します。

宣言

// C#
public string Password{get; set;}

プロパティ値

指定された属性の値を含む文字列。

例外

ArgumentNullException - 指定値はNullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

PersistSecurityInfo

このプロパティは、ConnectionStringプロパティ内のPersist Security Info属性に対応する値を指定します。

宣言

// C#
public bool PersistSecurityInfo{get; set;}

プロパティ値

指定された属性の値を表すbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Pooling

このプロパティは、ConnectionStringプロパティ内のPooling属性に対応する値を指定します。

宣言

// C#
public bool Pooling {get; set;}

プロパティ値

指定された属性の値を表すbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ProxyPassword

このプロパティは、ConnectionStringプロパティ内のProxy Password属性に対応する値を指定します。

宣言

// C#
public string ProxyPassword {get; set;}

プロパティ値

指定された属性の値を表す文字列。

例外

ArgumentNullException - 指定値はNullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ProxyUserId

このプロパティは、ConnectionStringプロパティ内のProxy User Id属性に対応する値を指定します。

宣言

// C#
public string ProxyUserId {get; set;}

プロパティ値

指定された属性の値を表す文字列。

例外

ArgumentNullException - 指定値はNullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

SelfTuning

このプロパティは、ConnectionStringプロパティ内のSelf Tuning属性に対応する値を指定します。

宣言

// C#
public bool SelfTuning {get; set;}

プロパティ値

指定された属性の値を表すbool。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

StatementCachePurge

このプロパティは、ConnectionStringプロパティ内のStatement Cache Purge属性に対応する値を指定します。

宣言

// C#
public bool StatementCachePurge {get; set;}

プロパティ値

指定された属性の値を表すbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

StatementCacheSize

このプロパティは、ConnectionStringプロパティ内のStatement Cache Size属性に対応する値を指定します。

宣言

// C#
public int StatementCacheSize{get; set;}

プロパティ値

指定された属性の値を表すint

例外

OracleException - 指定された値が0未満です。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

UserID

このプロパティは、ConnectionStringプロパティ内のUser Id属性に対応する値を指定します。

宣言

// C#
public string UserID{get; set;}

プロパティ値

指定された属性の値を表す文字列。

例外

ArgumentNullException - 指定値はNullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ValidateConnection

このプロパティは、ConnectionStringプロパティ内のValidate Connection属性に対応する値を指定します。

宣言

// C#
public bool ValidateConnection{get; set;}

プロパティ値

指定された属性の値を表すbool。

備考

OracleConnectionStringBuilderインスタンスが作成されると、このプロパティは接続文字列属性に対応するデフォルト値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Values

このプロパティでは、Connection String Builder内に含まれる値のコレクションを指定します。

宣言

// C#
public override ICollection Values{get;}

プロパティ値

Connection String Builder内の値を表すICollectionを戻します。

備考

ICollection内の値の順序は指定されていませんが、Keysプロパティが戻すICollection内の関連属性と同じです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

OracleConnectionStringBuilderパブリック・メソッド

OracleConnectionStringBuilderパブリック・メソッドを、表7-9にリストします。

表7-9 OracleConnectionStringBuilderパブリック・メソッド

メソッド

説明

Add

System.Data.Common.DbConnectionStringBuilderからの継承

Clear

接続文字列のコンテンツをクリアします。

ContainsKey

ODP.NETが接続文字列内の特定の属性をサポートしているかどうかを示します。

EquivalentTo

System.Data.Common.DbConnectionStringBuilderからの継承

Remove

接続文字列から指定された属性に対応するエントリを削除します。

ShouldSerialize

System.Data.Common.DbConnectionStringBuilderからの継承

ToString

System.Data.Common.DbConnectionStringBuilderからの継承

TryGetValue

指定された属性に対応する値を出力パラメータとして戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Clear

このメソッドは、接続文字列のコンテンツをクリアします。

宣言

// C#
public override void Clear();

備考

すべてのキー/値ペアがOracleConnectionStringBuilderオブジェクトから削除され、ConnectionStringプロパティはEmptyに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

ContainsKey

このメソッドは、ODP.NETが接続文字列内の特定の属性をサポートしているかどうかを示します。

宣言

// C#
public override bool ContainsKey(string keyword);

パラメータ

- keyword
検証される属性。

戻り値

指定された属性が存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。

例外

ArgumentNullException - 指定属性はNullです。

備考

このメソッドは、属性がプロバイダ・サポート属性の一部かどうかを示します。ユーザーが接続文字列に追加した属性かどうかは示しません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

Remove

このメソッドは、接続文字列から指定された属性に対応するエントリを削除します。

宣言

// C#
public override bool Remove(string keyword);

パラメータ

- keyword
削除するエントリを指定する属性。

戻り値

接続文字列内に存在する属性および対応するエントリが削除された場合はtrue、それ以外の場合はfalseを戻します。

例外

ArgumentNullException - 指定属性はNullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

TryGetValue

このメソッドは、指定された属性に対応する値を出力パラメータとして戻します。

宣言

// C#
public override bool TryGetValue(string keyword, out object value);

パラメータ

- keyword
取得される値の属性。

- value
指定属性の値。

属性が接続文字列にない場合、valueをデフォルト値に設定します。

戻り値

属性に対応する値が正常に取得された場合はtrue、それ以外の場合はfalseを戻します。接続文字列内に属性がない場合はfalseを戻し、valueをNullに設定します。

例外

ArgumentNullException - 指定属性はNullです。

備考

関数がfalseを戻す場合、valueをnullに設定します。

属性が接続文字列にない場合、valueをデフォルト値に設定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleConnectionStringBuilderクラス

- OracleConnectionStringBuilderメンバー

OracleDataSourceEnumeratorクラス

OracleDataSourceEnumeratorオブジェクトは、アプリケーションが、接続するデータ・ソースのコレクションを一般的に取得できるようにします。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

クラスの継承

System.Object

System.DbDataSourceEnumerator

Oracle.DataAccess.Client.OracleDataSourceEnumerator

宣言

// C#
public sealed class OracleDataSourceEnumerator : DbDataSourceEnumerator

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;

class DataSourceEnumSample
{
static void Main()
{
string ProviderName = "Oracle.DataAccess.Client";

DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);

if (factory.CanCreateDataSourceEnumerator)
{
DbDataSourceEnumerator dsenum = factory.CreateDataSourceEnumerator();
DataTable dt = dsenum.GetDataSources();

// Print the first column/row entry in the DataTable
Console.WriteLine(dt.Columns[0] + " : " + dt.Rows[0][0]);
Console.WriteLine(dt.Columns[1] + " : " + dt.Rows[0][1]);
Console.WriteLine(dt.Columns[2] + " : " + dt.Rows[0][2]);
Console.WriteLine(dt.Columns[3] + " : " + dt.Rows[0][3]);
Console.WriteLine(dt.Columns[4] + " : " + dt.Rows[0][4]);
}
else
Console.Write("Data source enumeration is not supported by provider");
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataSourceEnumeratorメンバー

- OracleDataSourceEnumeratorパブリック・メソッド

OracleDataSourceEnumeratorメンバー

次の表に、OracleDataSourceEnumeratorメンバーを示します。

OracleDataSourceEnumeratorパブリック・メソッド

OracleDataSourceEnumeratorパブリック・メソッドを、表7-10にリストします。

表7-10 OracleDataSourceEnumeratorメソッド

メソッド

説明

GetDataSources

tnsnames.oraファイルにすべてのTNS別名エントリの情報を保持してDataTableオブジェクトを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataSourceEnumeratorクラス

OracleDataSourceEnumeratorパブリック・メソッド

OracleDataSourceEnumerator静的メソッドを、表7-11にリストします。

表7-11 OracleDataSourceEnumeratorメソッド

メソッド

説明

GetDataSources

tnsnames.oraファイルにすべてのTNS別名エントリの情報を保持してDataTableオブジェクトを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataSourceEnumeratorクラス

- OracleDataSourceEnumeratorメンバー

GetDataSources

このメソッドは、DataTableオブジェクトを戻します。すべてのTNS別名エントリに関する情報はtnsnames.oraファイルに保持されています。

宣言

// C#
public override DataTable GetDataSources();

戻り値

DataTableオブジェクト。

備考

このメソッドは、tnsnames.oraファイル内に存在する各TNS別名エントリに対応するDataTableオブジェクトを戻します。

tnsnames.oraファイルが検出されない場合、戻されるDataTableオブジェクトは空です。

次の列は各行に対して戻されますが、InstanceName列のみに入力されています。

- InstanceName(タイプ: System.String)

- ServerName(タイプ: System.String)

- ServiceName(タイプ: System.String)

- Protocol(タイプ: System.String)

- Port(タイプ: System.String)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDataSourceEnumeratorクラス

- OracleDataSourceEnumeratorメンバー

8 Oracle Data Provider for .NETのHAイベント・クラス

この章では、次のODP.NETのHAイベント・クラスおよび列挙について説明します。

- OracleHAEventArgsクラス

- OracleHAEventHandlerデリゲート

- OracleHAEventSourceの列挙

- OracleHAEventStatusの列挙

OracleHAEventArgsクラス

OracleHAEventArgsクラスは、OracleConnection.HAEventイベントのイベント・データを提供します。

クラスの継承

System.Object

System.EventArgs

Oracle.DataAccess.Client.OracleHAEventArgs

宣言

// C#
public sealed class OracleHAEventArgs

スレッド安全性

パブリック・メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleConnectionオブジェクトに"ha events=true"が設定されているサービス、サービス・メンバー、ホスト、ノードまたはインスタンスにHAイベントが発生した場合、OracleConnection.HAEventがトリガーされ、イベントに登録されているすべてのデリゲートにOracleHAEventArgsのインスタンスが渡されます。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsメンバー

- OracleHAEventArgsプロパティ

- 「OracleConnectionクラス」

- 「HAEvent」

OracleHAEventArgsメンバー

OracleHAEventArgsメンバーを、次の各表に示します。

OracleHAEventArgsプロパティ

OracleHAEventArgsプロパティを、表8-2にリストします。

表8-1 OracleHAEventArgsプロパティ

名前

説明

DatabaseDomainName

HAeventの影響を受けるデータベースのドメイン名を指定します

DatabaseName

HAeventの影響を受けるデータベースを指定します

HostName

イベントをトリガーしたホストを指定します

InstanceName

イベントをトリガーしたインスタンスを指定します

ServiceName

イベントをトリガーしたサービスを指定します

Source

イベントをトリガーしたソースを指定します

Status

イベントをトリガーしたソースのステータスを指定します

Time

サーバーでイベントがトリガーされた時間を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- 「HAEvent」

OracleHAEventArgsプロパティ

OracleHAEventArgsプロパティを、表8-2にリストします。

表8-2 OracleHAEventArgsプロパティ

名前

説明

DatabaseDomainName

HAeventの影響を受けるデータベースのドメイン名を指定します

DatabaseName

HAeventの影響を受けるデータベースを指定します

HostName

イベントをトリガーしたホストを指定します

InstanceName

イベントをトリガーしたインスタンスを指定します

ServiceName

イベントをトリガーしたサービスを指定します

Source

イベントをトリガーしたソースを指定します

Status

イベントをトリガーしたソースのステータスを指定します

Time

サーバーでイベントがトリガーされた時間を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

DatabaseDomainName

このプロパティは、HAイベントの影響を受けるデータベースのドメイン名を指定します。

宣言

// C#
public string DatabaseDomainName {get;}

プロパティ値

HAイベントの影響を受けるデータベースのドメイン名。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

DatabaseName

このプロパティは、HAイベントの影響を受けるデータベースを指定します。

宣言

// C#
public string DatabaseName {get;}

プロパティ値

このプロパティは、HAイベントの影響を受けるデータベース名を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

HostName

このプロパティは、HAイベントをトリガーしたホストを指定します。

宣言

// C#
public string HostName {get;}

プロパティ値

HAイベントの影響を受けるホスト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

InstanceName

このプロパティは、HAイベントをトリガーしたインスタンスを指定します。

宣言

// C#
public string InstanceName {get;}

プロパティ値

HAイベントの影響を受けるインスタンス。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

ServiceName

このプロパティは、HAイベントをトリガーしたサービスを指定します。

宣言

// C#
public string ServiceName {get;}

プロパティ値

HAイベントの影響を受けるサービス。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

Source

このプロパティは、HAイベントをトリガーしたソースを指定します。

宣言

// C#
public OracleHAEventSource Source {get;}

プロパティ値

HAイベントをトリガーしたソース。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

Status

このプロパティは、HAイベントをトリガーしたソースのステータスを指定します。

宣言

// C#
public OracleHAEventStatus Status {get;}

プロパティ値

HAイベントをトリガーしたソースのステータス。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

Time

このプロパティは、サーバーでHAイベントがトリガーされた時間を指定します。

宣言

// C#
public DateTime Time {get;}

プロパティ値

HAイベントがトリガーされた時間。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- OracleHAEventArgsメンバー

- 「HAEvent」

OracleHAEventHandlerデリゲート

OracleHAEventHandlerデリゲートは、OracleConnection.HAEventイベントを処理するメソッドの署名を表します。

宣言

// C#
public delegate void OracleHAEventHandler(object sender, OracleHAEventArgs
eventArgs);

パラメータ

- sender
イベントのソース

- EventArgs
イベント・データが含まれるOracleHAEventArgsオブジェクト。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- 「HAEvent」

OracleHAEventSourceの列挙

OracleHAEventSourceの列挙は、HAイベントのソースを示します。

表8-3は、すべてのOracleHAEventSourceの列挙値と、それぞれの列挙値の説明をリストします。

表8-3 OracleHAEventSourceの列挙メンバー値

メンバー名

説明

Service

HAイベントのソースはサービスです。

ServiceMember

HAイベントのソースはサービス・メンバーです。

Database

HAイベントのソースはデータベースです。

Host

HAイベントのソースはホストです。

Instance

HAイベントのソースはインスタンスです。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- 「Source」

OracleHAEventStatusの列挙

OracleHAEventStatusの列挙は、HAイベント・ソースのステータスを示します。

表8-4は、すべてのOracleHAEventStatusの列挙値と、それぞれの列挙値の説明をリストします。

表8-4 OracleHAEventStatusの列挙値

メンバー名

説明

Up

HAイベントのソースは稼働中です。

Down

HAイベントのソースは停止中です。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleHAEventArgsクラス

- 「Status」

9 Database Change Notification

この章では、Continuous Query Notificationをサポートする、Oracle Data Provider for .NETのChange Notificationクラス、イベント・デリゲートおよび列挙について説明します。

注意:
Database Change Notificationは、Oracleデータベース・ドキュメントではContinuous Query Notificationと呼ばれます。

関連項目:
Database Change Notificationサポート

この章の内容は次のとおりです。

- OracleDependencyクラス

- OracleNotificationRequestクラス

- OracleNotificationEventArgsクラス

- OnChangeEventHandlerデリゲート

- OracleRowidInfoの列挙

- OracleNotificationTypeの列挙

- OracleNotificationSourceの列挙

- OracleNotificationInfoの列挙

OracleDependencyクラス

OracleDependencyクラスは、アプリケーションとOracle Database間の依存性を表します。これを使用して、アプリケーションでは、関心のあるデータまたはOracle Databaseの状態が変更されたときはいつでも通知を取得できます。

クラスの継承

System.Object

Oracle.DataAccess.Client.OracleDependency

宣言

// C#
public sealed class OracleDependency

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyメンバー

- OracleDependencyコンストラクタ

- OracleDependency静的フィールド

- OracleDependency静的メソッド

- OracleDependencyメソッド

- OracleDependencyプロパティ

- OracleDependencyイベント

OracleDependencyメンバー

次の表に、OracleDependencyメンバーを示します。

OracleDependencyコンストラクタ

OracleDependencyコンストラクタを、表9-1にリストします。

表9-1 OracleDependencyコンストラクタ

コンストラクタ

説明

OracleDependencyコンストラクタ

OracleDependencyクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleDependency静的フィールド

OracleDependency静的フィールドを、表9-2にリストします。

表9-2 OracleDependency静的フィールド

静的フィールド

説明

Port

通知リスナーがデータベース通知をリスニングするポート番号を示します

OracleDependency静的メソッド

OracleDependency静的メソッドを、表9-3にリストします。

表9-3 OracleDependency静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

GetOracleDependency

指定された一意の識別子に基づいてOracleDependencyインスタンスを戻します

OracleDependencyプロパティ

OracleDependencyプロパティを、表9-4にリストします。

表9-4 OracleDependencyプロパティ

プロパティ

説明

DataSource

OracleDependencyインスタンスに関連付けられているデータ・ソースを示します

HasChanges

この依存性に関連付けられているデータベースに変更が加えられているかどうかを示します

Id

OracleDependencyインスタンスの一意の識別子を表します

IsEnabled

アプリケーションとデータベースの間で依存性が有効になっているかどうかを示します

QueryBasedNotification

変更通知登録がオブジェクトベースか問合せベースかを指定します

RegisteredQueryIDs

CHANGE_NOTIFICATION_QUERY_IDのリストを提供します

RegisteredResources

通知登録で登録されたデータベース・リソースを示します

RowidInfo

ROWID情報が、データベース上でデータが変更されると発生する変更通知イベントの一部であるかどうかを示します

UserName

OracleDependencyインスタンスに関連付けられているデータベース・ユーザー名を示します

OracleDependencyメソッド

OracleDependencyメソッドを、表9-5にリストします。

表9-5 OracleDependencyメソッド

メソッド

説明

AddCommandDependency

指定されたOracleCommandインスタンスにOracleDependencyインスタンスをバインドします

Equals

System.Objectからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

RemoveRegistration

アプリケーションとデータベース間に指定されている依存性を削除します

ToString

System.Objectからの継承

OracleDependencyイベント

OracleDependencyイベントを、表9-6にリストします。

表9-6 OracleDependencyイベント

イベント

説明

OnChange

依存性に関連付けられているデータベース通知をデータベースから受信すると送信されるイベント

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

OracleDependencyコンストラクタ

OracleDependencyコンストラクタは、OracleDependencyクラスのインスタンスを作成します。

オーバーロード・リスト:

- OracleDependency()
このコンストラクタは、OracleDependencyクラスのインスタンスを作成します。

- OracleDependency(OracleCommand)
このコンストラクタでは、OracleDependencyクラスのインスタンスを作成し、指定されたOracleCommandインスタンスにバインドします。

- OracleDependency(OracleCommand, bool, int, bool)
このコンストラクタでは、OracleDependencyクラスのインスタンスを作成し、指定されたOracleCommandインスタンスにバインドします。このとき、通知時にその通知が削除されるかどうか、通知登録のタイムアウト値、および通知の継続期間を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependency()

このコンストラクタは、OracleDependencyクラスのインスタンスを作成します。

宣言

// C#
public OracleDependency ()

備考

このコンストラクタを使用すると、OracleCommandインスタンスは新たに作成されたOracleDependencyインスタンスにバインドされません。バインドするには、AddCommandDependencyメソッドを使用します。

注意:
アプリケーションとデータベース間の依存性は、OracleDependencyインスタンスの作成時には確立されません。依存性は、関連付けられたコマンドの実行時に確立されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependency(OracleCommand)

このコンストラクタは、OracleDependencyクラスのインスタンスを作成し、OracleCommandインスタンスにバインドします。

宣言

// C#
public OracleDependency (OracleCommand cmd)

パラメータ

- cmd
OracleDependecyオブジェクトがバインドされるコマンド。

例外

ArgumentNullException - cmdパラメータがNULLです。

InvalidOperationException - 指定されたOracleCommandインスタンスには、すでに通知要求が含まれています。

備考

このOracleDependencyコンストラクタによりOracleCommandインスタンスがOracleDependencyインスタンスにバインドされると、OracleNotificationRequestインスタンスが作成され、OracleCommand.NotificationプロパティにそのOracleNotificationRequestインスタンスが設定されます。

連続問合せ通知は、コマンド実行時にデータベースに登録されます。コマンド実行メソッド(ExecuteNonQueryやExecuteReaderなど)により、通知要求が登録されます。OracleDependencyは、複数のOracleCommandにバインドできます。これらのOracleCommandオブジェクト文のいずれかが実行されると、関連付けられているOracleCommandにその文が登録されます。個々のOracleCommandの登録は個別に発生しますが、OracleDependencyが関連付けられているすべてのOracleCommandオブジェクトに対して発生する、通知の検出および送信は1つのOracleDependencyで行うことができます。OnChangeイベントのアプリケーションに渡されるOnChangeEventArgsでは、データベース内での変更に関する情報を提供します。

このコンストラクタによって作成されるOracleNotificationRequestインスタンスのプロパティのデフォルト値は、次のとおりです。

- IsNotifiedOnceはTrueに設定されます。

- Timeoutは50,000秒に設定されます。

- IsPersistentはFalseに設定されます。つまり、無効化メッセージに永続性はなく、配信前にメモリー内キューに格納されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependency(OracleCommand, bool, int, bool)

このコンストラクタでは、OracleDependencyクラスのインスタンスを作成し、指定されたOracleCommandインスタンスにバインドします。このとき、通知時にその登録が削除されるかどうか、通知登録のタイムアウト値、および通知の継続期間を指定します。

宣言

// C#
public OracleDependency (OracleCommand cmd, bool isNotifiedOnce, long timeout,
bool isPersistent)

パラメータ

- cmd
連続問合せ通知要求に関連付けられるコマンド。

- isNotifiedOnce
通知の発生後に、登録が自動的に削除されるかどうかを示すインジケータ。

- timeout
秒数で表した、登録が有効な時間。timeoutが0に設定されている場合、登録が期限切れになることはありません。timeoutの有効値は、0から4294967295です。

- isPersistent
配信前に、無効化メッセージがデータベース内で永続的にキューされるかどうかを示します。isPersistentパラメータがTrueに設定されている場合、メッセージはデータベース内で永続的にキューされ、データベースがクラッシュおよびシャットダウンした際にも失われることはありません。isPersistentプロパティがFalse に設定されている場合、メッセージは配信前にメモリー内キューに格納されるため、失われる可能性があります。

メッセージがデータベース・キューではなくメモリー内キューに格納されることで、データベース・パフォーマンスは向上します。

例外

ArgumentNullException - cmdパラメータがNULLです。

ArgumentOutOfRangeException - 指定されたtimeoutが無効です。

InvalidOperationException - 指定されたOracleCommandインスタンスには、すでに通知要求が含まれています。

備考

このOracleDependencyコンストラクタによりOracleCommandインスタンスがOracleDependencyインスタンスにバインドされると、OracleNotificationRequestインスタンスが作成され、OracleCommand.NotificationプロパティにそのOracleNotificationRequestインスタンスが設定されます。

連続問合せ通知は、コマンド実行時にデータベースに登録されます。コマンド実行メソッド(ExecuteNonQueryやExecuteReaderなど)により、通知要求が登録されます。OracleDependencyは、複数のOracleCommandにバインドできます。これらのOracleCommandオブジェクト文のいずれかが実行されると、関連付けられているOracleCommandにその文が登録されます。個々のOracleCommandの登録は個別に発生しますが、OracleDependencyが関連付けられているすべてのOracleCommandオブジェクトに対して発生する、通知の検出および送信は1つのOracleDependencyで行うことができます。OnChangeイベントのアプリケーションに渡されるOnChangeEventArgsでは、データベース内での変更に関する情報を提供します。

このコンストラクタによって作成されるOracleNotificationRequestインスタンスのプロパティのデフォルト値は、次のとおりです。

- IsNotifiedOnceは指定された値に設定されます。

- Timeoutは指定された値に設定されます。

- IsPersistentは指定された値に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependency静的フィールド

OracleDependency静的フィールドを、表9-7にリストします。

表9-7 OracleDependency静的フィールド

静的フィールド

説明

Port

通知リスナーがデータベース通知をリスニングするポート番号を示します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

Port

この静的フィールドは、通知リスナーがデータベース通知をリスニングするポート番号を示します。

宣言

// C#
public static int Port{get; set}

プロパティ値

データベース通知をリスニングするポートの番号を表すint値。ポート番号が-1に設定されている場合、リスナーの開始時にランダムなポート番号が割り当てられます。それ以外の場合は、指定されたポート番号を使用してリスナーが開始されます。

例外

ArgumentOutOfRangeException - ポート番号が負の値に設定されています。

InvalidOperationException - リスナーが開始された後にポート番号が変更されようとしています。

備考

ODP.NETと同じアプリケーション・ドメイン内で実行される通知リスナーは、OracleDependency.Port静的フィールドで指定するポート番号を使用します。このポート番号は、データベースから連続問合せ通知を受信します。ある通知リスナーは、すべての連続問合せ通知をリスニングできるため、各アプリケーション・ドメインに対して作成される通知リスナーは1つのみです。

OracleDependencyオブジェクトと関連付けられたコマンド通知リスナーが、アプリケーション・ドメイン存続中初めて実行されると、通知リスナーが作成されます。OracleDependency.Port静的フィールドに指定されたポート番号は、その存続中、リスナーによって使用されます。OracleDependency.Port静的フィールドは、通知リスナーの作成後に変更できますが、これを変更しても、通知リスナーがリスニング中の実際のポート番号には影響しません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependency静的メソッド

OracleDependency静的メソッドを、表9-8にリストします。

表9-8 OracleDependency静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

GetOracleDependency

指定された一意の識別子に基づいてOracleDependencyインスタンスを戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

GetOracleDependency

この静的メソッドでは、指定された一意の識別子に基づいてOracleDependencyインスタンスを戻します。

宣言

// C#
public static OracleDependency GetOracleDependency(string guid)

パラメータ

- guid
OracleDependencyインスタンスの一意の識別子を表す文字列。

例外

ArgumentException - 指定された一意識別子は、OracleDependencyインスタンスを見つけられません。

戻り値

指定されたguidパラメータを持つOracleDependencyインスタンス。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependencyプロパティ

OracleDependencyプロパティを、表9-9にリストします。

表9-9 OracleDependencyプロパティ

プロパティ

説明

DataSource

OracleDependencyインスタンスに関連付けられているデータ・ソースを示します

HasChanges

この依存性に関連付けられているデータベースに変更が加えられているかどうかを示します

Id

OracleDependencyインスタンスの一意の識別子を表します

IsEnabled

アプリケーションとデータベースの間で依存性が有効になっているかどうかを示します

QueryBasedNotification

変更通知登録がオブジェクトベースか問合せベースかを指定します

RegisteredQueryIDs

CHANGE_NOTIFICATION_QUERY_IDのリストを提供します

RegisteredResources

通知登録で登録されたデータベース・リソースを示します

RowidInfo

ROWID情報が、データベース上でデータが変更されると発生する変更通知イベントの一部であるかどうかを示します

UserName

OracleDependencyインスタンスに関連付けられているデータベース・ユーザー名を示します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

DataSource

このプロパティでは、OracleDependencyインスタンスに関連付けられているデータ・ソースを示します。

宣言

// C#
public string DataSource{get;}

プロパティ値

OracleDependencyインスタンスに関連付けられているデータ・ソースを示す文字列。

備考

OracleDependencyに関連付けられているOracleCommandが実行され、通知が正常に登録されると、DataSourceプロパティはデータ・ソースを使用して移入されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

HasChanges

このプロパティは、この依存性に関連付けられているデータベースに変更があるかどうかを示します。

宣言

// C#
public bool HasChanges{get;}

プロパティ値

この依存性に関連付けられている変更がデータベースで検出された場合はTrueを戻し、それ以外の場合はFalseを戻すbool値。

備考

OnChangeイベントを使用するかわりに、アプリケーションではHasChangesプロパティをチェックして、この依存性に関連付けられている変更がデータベースにあるかどうかを判断できます。

HasChangesプロパティにアクセスすると、その値がFalseにリセットされ、次の通知を認識できるようになります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

Id

このプロパティでは、OracleDependencyインスタンスの一意の識別子を表します。

宣言

// C#
public string Id{get;}

プロパティ値

OracleDependencyインスタンスの作成時にインスタンスに対して生成された一意識別子を表す文字列。

備考

このプロパティは、OracleDependencyインスタンスの作成時に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

IsEnabled

このプロパティは、アプリケーションとデータベースの間で依存性が有効になっているかどうかを示します。

宣言

// C#
public bool IsEnabled {get;}

プロパティ値

アプリケーションとデータベース間で依存性が有効になっているかどうかを指定するbool値。

備考

アプリケーションとデータベース間の依存性は、OracleDependencyインスタンスの作成時には確立されません。依存性に関連付けられたコマンドが実行されると、この依存性は確立されます。このとき、通知要求がデータベースに登録されます。通知登録がデータベースから削除されたとき、またはタイムアウトになったときに、依存性は消滅します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

QueryBasedNotification

このインスタンス・プロパティは、変更通知登録がオブジェクトベースか問合せベースかを指定します。

宣言

// C#
public bool QueryBasedNotification{get; set;}

プロパティ値

変更通知登録がオブジェクトベースか否かを指定します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このプロパティ値は、変更通知用のコマンドを登録するコマンド実行の後に設定された場合、無視されます。

デフォルトではこのプロパティはtrueです。

Oracle Data Provider for .NETリリース11.1およびOracle Database 11gリリース1(11.1)以上のリリースでは、ODP.NET開発者が問合せをオブジェクト・レベルだけでなく行レベルでも登録できます。アプリケーションは、選択した行が変更された場合のみ通知を受け取ります。問合せベースの通知によって開発者は、アプリケーションへの通知が必要な変更について特定がより可能なため、クライアント側にキャッシュされたデータをより細分化して使用できます。

OracleNotificationTypeの列挙は、問合せベースの通知に対してQueryに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

RegisteredQueryIDs

このインスタンス・プロパティはCHANGE_NOTIFICATION_QUERY_IDのリストを提供します。

宣言

// C#
public ArrayList RegisteredQueryIDs {get;}

プロパティ値

このプロパティはCHANGE_NOTIFICATION_QUERY_IDのArrayListです。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このプロパティは、変更通知のため登録されている問合せを一意に特定するCHANGE_NOTIFICATION_QUERY_IDのリストを提供します。データベースから返される通知にはこれらのIDも含まれているため、通知の対象となる問合せをアプリケーションで判断できます。

RegisteredQueryIDsの索引nのQueryIdは、索引nのRegisteredResourcesにおける索引nの文が対象です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

RegisteredResources

このプロパティは、通知登録に登録されているデータベース・リソースを示します。

宣言

// C#
public ArrayList RegisteredResources{get;}

プロパティ値

通知登録に含まれる登録済リソース。

備考

ArrayListには、このOracleDependencyオブジェクトを介して通知用に登録されたすべてのコマンド文が含まれます。これは、コマンド実行により連続問合せ通知が登録されたときに、適宜更新されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

RowidInfo

このプロパティは、ROWID情報が、データベース上でデータが変更されると発生する変更通知イベントの一部であるかどうかを示します。

宣言

// C#
public OracleRowidInfo RowidInfo {get; set;};

プロパティ値

変更通知イベントにROWIDを含めるかどうかを判別するOracleRowidInfoの列挙型。

備考

このプロパティに有効な次の3つのOracleRowidInfoの列挙型があります。

- Defaultには、OracleCommand.AddRowidプロパティがtrueに設定されているか、ROWIDが変更通知に対して登録されている問合せの選択リスト内にある場合のみ、変更通知イベント内のROWID情報が含まれます。

- Includeには、ROWIDが問合せに対する選択リスト内にあるかどうかにかかわらずROWID情報が含まれます。

- Excludeには、ROWIDが選択リスト内にあるかどうかにかかわらずROWID情報は含まれません。

ストアド・プロシージャを含む変更通知登録の場合、RowidInfoプロパティがOracleRowidInfo.Includeに設定されている場合のみ、変更通知イベントREF CURSORに関連する変更通知イベントに、ROWID情報が含まれます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

- 「OracleRowidInfoの列挙」

UserName

このプロパティは、OracleDependencyインスタンスに関連付けられているデータベース・ユーザー名を示します。

宣言

// C#
public string UserName{get;}

プロパティ値

OracleDependencyインスタンスに関連付けられているデータベース・ユーザー名を示す文字列。このデータベース・ユーザーは、連続問合せ通知をデータベースに登録します。

備考

OracleDependencyに関連付けられているOracleCommandが実行され、通知が正常に登録されると、UserNameプロパティはユーザー名を使用して移入されます。通知登録を削除できるのは、登録を作成するユーザーまたはデータベース・システム管理者のみです。

このプロパティにより指定されたユーザーは、連続問合せ通知をデータベースに正常に登録するためのCHANGE NOTIFICATION権限を持っている必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependencyメソッド

OracleDependencyメソッドを、表9-10にリストします。

表9-10 OracleDependencyメソッド

メソッド

説明

AddCommandDependency

指定されたOracleCommandインスタンスにOracleDependencyインスタンスをバインドします

Equals

System.Objectからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

RemoveRegistration

アプリケーションとデータベース間に指定されている依存性を削除します

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

AddCommandDependency

このインスタンス・メソッドでは、指定されたOracleCommandインスタンスにOracleDependencyインスタンスをバインドします。

宣言

// C#
Public void AddCommandDependency (OracleCommand cmd);

パラメータ

- cmd
OracleDependencyオブジェクトにバインドされるコマンド。

例外

ArgumentNullException - cmdパラメータがNULLです。

InvalidOperationException - 指定されたOracleCommandインスタンスには、すでに通知要求が含まれています。

備考

OracleDependencyインスタンスは、複数のOracleCommandインスタンスにバインドできます。

AddCommandDependencyメソッドは、既存のOracleDependencyインスタンスをOracleCommandインスタンスにバインドする際、OracleNotificationRequestインスタンスを作成し、指定されたOracleCommand.Notificationプロパティにこのインスタンスを設定します。

このメソッドによりOracleNotificationRequestインスタンスが作成される際、次のOracleNotificationRequestプロパティが設定されます。

- IsNotifiedOnceはTrueに設定されます。

- Timeoutは50,000秒に設定されます。

- IsPersistentはFalseに設定され、配信前に無効化メッセージがメモリー内キューに格納されます。

このメソッドを使用すると、複数のコマンドを1つの連続問合せ通知登録要求に関連付けることができます。さらに、OracleCommandとOracleDependency間にアソシエーションが確立されると、OracleCommandに割り当てられているOracleNotificationRequest属性の値を変更できます。

ただし、複数のOracleCommandオブジェクトが1つのOracleDependencyオブジェクトに関連付けられている場合は、最初に実行されるOracleCommandオブジェクトのOracleNotificationRequest属性(Timeout、IsPersistentおよびIsNotifiedOnce)が登録に使用され、その後に実行されるOracleCommandに関連付けられている属性は無視されます。

さらに、OracleDependencyに関連付けられているコマンドが実行および登録されると、同じOracleDependencyに関連付けられている後続のすべてのコマンドの実行と登録では、同じ"User Id"および"Data Source"接続文字列属性を持つ接続を使用する必要があります。

それ以外の場合は、例外がスローされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

- OracleNotificationRequestプロパティ値については、「OracleDependency(OracleCommand)」を参照

RemoveRegistration

このインスタンスは、アプリケーションとデータベースの間に指定されている依存性を削除します。依存性の登録がデータベースから削除されると、OracleDependencyではデータベースで発生する変更を検出できなくなります。

宣言

// C#
public void RemoveRegistration(OracleConnection con)

パラメータ

- con
現行のOracleDependencyインスタンスに関連付けられている接続。

例外

InvalidOperationException - 関連する接続がオープンされていません。

備考

現行のOracleDependencyインスタンスに関連付けられている通知登録が、データベースから削除されます。

OracleConnectionパラメータはオープンされている必要があります。このインスタンス・メソッドでは、接続をアプリケーションに対して暗黙的にオープンしません。

依存性が有効でない場合は、例外が表示されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleDependencyイベント

OracleDependencyイベントを、表9-11にリストします。

表9-11 OracleDependencyイベント

イベント

説明

OnChange

依存性に関連付けられているデータベース通知をデータベースから受信すると送信されるイベント

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OnChange

OnChangeイベントは、依存性に関連付けられているデータベース通知をデータベースから受信すると送信されます。通知に関連する情報は、OracleChangeNotificationEventArgsクラスに格納されます。

宣言

// C#
public event OnChangeEventHandler OnChange;

備考

OnChangeイベントは、依存性に関連付けられている、任意の結果セットが変更されると発生します。トランザクションの一部であるオブジェクトの場合、通知は変更された各オブジェクトで受信されます。このイベントは、データベースまたは登録ステータスに関連する他のアクション(データベースの停止や起動または登録タイムアウトなど)に対しても発生します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleDependencyクラス

- OracleDependencyメンバー

OracleNotificationRequestクラス

OracleNotificationRequestクラスは、データベース内でサブスクライブする通知要求を表します。このクラスには、要求に関する情報と通知の特性が含まれます。OracleNotificationRequestクラスを使用して、Oracle Data Provider for .NETは適宜データベース内に通知登録を作成できます。

クラスの継承

System.Object

Oracle.DataAccess.Client.OracleNotificationRequest

宣言

// C#
public sealed class OracleNotificationRequest

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequest静的メソッド

- OracleNotificationRequestプロパティ

- OracleNotificationRequestメソッド

OracleNotificationRequestメンバー

OracleNotificationRequestメンバーは次の表にリストされています。

OracleNotificationRequest静的メソッド

OracleNotificationRequest静的メソッドを、表9-12にリストします。

表9-12 OracleNotificationRequest静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

OracleNotificationRequestプロパティ

OracleNotificationRequestプロパティを、表9-13にリストします。

表9-13 OracleNotificationRequestプロパティ

プロパティ

説明

IsNotifiedOnce

通知時に登録が削除されるかどうかを示します。

IsPersistent

配信の前に、通知メッセージを永続的にデータベースのキューに入れる必要があるかどうかを示します

Timeout

登録が存続する時間を指定します。

GroupingNotificationEnabled

グループ化通知が有効かどうかを指定します

GroupingType

グループ化通知のタイプを指定します

GroupingInterval

グループ化通知の間隔(秒)を指定します

OracleNotificationRequestメソッド

OracleNotificationRequestメソッドを、表9-14にリストします。

表9-14 OracleNotificationRequestメソッド

メソッド

説明

Equals

System.Objectからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

OracleNotificationRequest静的メソッド

OracleNotificationRequest静的メソッドを、表9-15にリストします。

表9-15 OracleNotificationRequest静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

OracleNotificationRequestプロパティ

OracleNotificationRequestプロパティを、表9-16にリストします。

表9-16 OracleNotificationRequestプロパティ

プロパティ

説明

IsNotifiedOnce

通知時に登録が削除されるかどうかを示します。

IsPersistent

配信の前に、通知メッセージを永続的にデータベースのキューに入れる必要があるかどうかを示します

Timeout

登録が存続する時間を指定します。

GroupingNotificationEnabled

グループ化通知が有効かどうかを指定します

GroupingType

グループ化通知のタイプを指定します

GroupingInterval

グループ化通知の間隔(秒)を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

IsNotifiedOnce

このプロパティは、通知時に登録が削除されるかどうかを示します。

宣言

// C#
public bool IsNotifiedOnce{get; set;}

プロパティ値

通知時に登録が削除されるかどうかを示すbool値

備考

デフォルト値は、AQの場合はfalseです。これは、デフォルト値がtrueである変更通知とは異なります。

正常な登録の完了後にこのプロパティを変更しても効果はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

IsPersistent

このプロパティは、通知メッセージが配信されるまで、そのメッセージを永続的にデータベースのキューに入れる必要があるかどうかを示します。

宣言

// C#
public bool IsPersistent{get; set;}

プロパティ値

通知が配信されるまで、その通知を永続的にデータベースに格納する必要があるかどうかを示すbool値。

IsPersistentプロパティがTrueに設定されている場合、メッセージは永続的にデータベースのキューに入れられ、データベースのクラッシュ時または停止時に失われることはありません。IsPersistentプロパティがFalseに設定されている場合、メッセージは配信の前にメモリー・キューに格納されるので、失われる可能性があります。

このプロパティは、常に永続性のあるNotificationRegistrationには適用されません。

このプロパティは、通知メッセージが送信された後、そのメッセージにのみ適用されます。

備考

デフォルト値はfalseです。

メッセージがメモリー・キューに格納された場合、データベース・キューの場合よりもデータベースは高速で動作します。

正常な登録の完了後にこのプロパティを変更しても効果はありません。

このプロパティは、グループ化通知については無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

Timeout

このプロパティは、登録が存続する時間を秒単位で指定します。

宣言

// C#
public long Timeout{get; set}

プロパティ値

登録が存続する時間を秒単位で指定するlong値。Timeoutプロパティの有効値は0から4294967295です。

例外

ArgumentOutOfRangeException - 指定されたTimeout値が無効です。

備考

デフォルト値は、AQの場合は0(無限)、変更通知の場合は50000です。Timeoutプロパティが0に設定されている場合、登録が期限切れになることはありません。

Timeout値に達したために登録が削除されると、データベースは期限切れを示す通知を送信します。

正常な登録の完了後にこのプロパティを変更しても効果はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

GroupingNotificationEnabled

このプロパティは、グループ化通知が有効かどうかを指定します。

宣言

// C#
public bool GroupingNotificationEnabled {get; set}

プロパティ値

グループ化通知が有効であることを示すtrue値。グループ化通知が無効であることを示すfalse値。

備考

デフォルト値はfalseです。

正常な登録の完了後にこのプロパティを変更しても効果はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

GroupingType

このプロパティは、グループ化通知のタイプを指定します。

宣言

// C#
public OracleAQNotificationGroupingType GroupingType {get; set}

プロパティ値

OracleAQNotificationGroupingTypeの列挙値

備考

デフォルト値はOracleAQNotificationGroupingType.Summaryです。

正常な登録の完了後にこのプロパティを変更しても効果はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

GroupingInterval

このプロパティは、グループ化通知の間隔(秒)を指定します。グループ化通知は、このプロパティによって指定した間隔で配信されます。

宣言

// C#
public int GroupingInterval {get; set}

プロパティ値

グループ化の間隔(秒)を指定するinteger。

備考

デフォルト値は600秒です。

GroupingIntervalの範囲は0からInt32.MaxValueです。

正常な登録の完了後にこのプロパティを変更しても効果はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

OracleNotificationRequestメソッド

OracleNotificationRequestメソッドを、表9-17にリストします。

表9-17 OracleNotificationRequestメソッド

メソッド

説明

Equals

System.Objectからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationRequestメンバー

- OracleNotificationRequestクラス

OracleNotificationEventArgsクラス

OracleNotificationEventArgsクラスでは、通知にイベント・データを提供します。

クラスの継承

System.Object

System.EventArgs

Oracle.DataAccess.Client.OracleNotificationEventArgs

宣言

// C#
public sealed class OracleNotificationEventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsメンバー

- OracleNotificationEventArgs静的フィールド

- OracleNotificationEventArgs静的メソッド

- OracleNotificationEventArgsプロパティ

- OracleNotificationEventArgsメソッド

OracleNotificationEventArgsメンバー

OracleNotificationEventArgsメンバーは次の表にリストされています。

OracleNotificationEventArgs静的フィールド

OracleNotificationEventArgs静的フィールドを、表9-18にリストします。

表9-18 OracleNotificationEventArgs静的フィールド

静的フィールド

説明

Empty

System.EventArgsからの継承

OracleNotificationEventArgs静的メソッド

OracleNotificationEventArgs静的メソッドを、表9-19にリストします。

表9-19 OracleNotificationEventArgs静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

OracleNotificationEventArgsプロパティ

OracleNotificationEventArgsプロパティを、表9-20にリストします。

表9-20 OracleNotificationEventArgsプロパティ

プロパティ

説明

Details

現行の通知に関する詳細情報を含みます

Info

通知のデータベース・イベントを示します

ResourceNames

現行の通知に関連するデータベース・リソースを示します

Source

通知のデータベース・イベント・ソースを戻します

Type

通知のデータベース・イベント・タイプを戻します

OracleNotificationEventArgsメソッド

OracleNotificationEventArgsメソッドを、表9-21にリストします。

表9-21 OracleNotificationEventArgsメソッド

メソッド

説明

Equals

System.Objectからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

OracleNotificationEventArgs静的フィールド

OracleNotificationEventArgs静的フィールドを、表9-22にリストします。

表9-22 OracleNotificationEventArgs静的フィールド

静的フィールド

説明

Empty

System.EventArgsからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

OracleNotificationEventArgs静的メソッド

OracleNotificationEventArgs静的メソッドを、表9-23にリストします。

表9-23 OracleNotificationEventArgs静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

OracleNotificationEventArgsプロパティ

OracleNotificationEventArgsプロパティを、表9-24にリストします。

表9-24 OracleNotificationEventArgsプロパティ

プロパティ

説明

Details

現行の通知に関する詳細情報を含みます

Info

通知のデータベース・イベントを示します

ResourceNames

現行の通知に関連するデータベース・リソースを示します

Source

通知のデータベース・イベント・ソースを戻します

Type

通知のデータベース・イベント・タイプを戻します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

Details

このプロパティには、現行の通知に関する詳細情報が含まれます。

宣言

// C#
Public DataTable Details{get;}

プロパティ値

現行の通知に関する詳細情報を含んだDataTableインスタンス

備考

戻されたDataTableオブジェクトには、表9-25に示すように現行通知の列データが順番に含まれます。

表9-25 DataTableオブジェクトの列データ

名前

タイプ

説明

ResourceName

System.String

<Schema_name>.<object_name>の書式で表された無効なオブジェクトのリソース名

Info

OracleNotificationInfo

リソース上で発生するデータベース・イベントに関する情報

Rowid

System.String

無効な表の行の行ID

QueryId

Int32

CHANGE_NOTIFICATION_QUERY_ID

QueryId列には、問合せベース通知の際にSELECT文で取得された疑似列に相当するCHANGE_NOTIFICATION_QUERY_IDが含まれます。また、OracleDependencyオブジェクトは登録されているすべてのCHANGE_NOTIFICATION_QUERY_IDを保持します。

連続問合せ通知の場合

- Detailsプロパティは、データ表の通知にある、各無効化オブジェクトの変更を示します。

- ROWID情報が要求されると、ROWID情報がROWID列に作成されます。ただし、多くの行が表内で変更されると、表全体が無効化し、ROWID情報は提供されません。このため、ROWID行にはすべてのNull値が含まれます。

- データベース・イベントが表のDDL変更または表の削除に関連している場合、Rowid列はNullに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

Info

このプロパティは、通知のデータベース・イベントを示します。

宣言

// C#
public OracleNotificationInfo Info{get;}

プロパティ値

通知のデータベース・イベントを示すOracleNotificationInfo値

備考

OracleNotificationInfo値は列挙型です。無効化メッセージから複数のイベントを受信する場合、Infoプロパティはデータベース・イベントに関連付けられたOracleNotificationInfo列挙値の1つに設定されます。たとえば、ある表が変更され、別の表に新しい行が挿入されている場合、InfoプロパティはOracleNotificationInfo.AlterededまたはOracleNotificationInfo.Insertのいずれかに設定されます。

無効化メッセージから詳細情報を取得するには、DetailsおよびResourceNamesプロパティを使用します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

- 「Details」

- 「ResourceNames」

- 「OracleNotificationInfoの列挙」

ResourceNames

このプロパティは、現行の通知に関連するデータベース・リソースを示します。

宣言

// C#
public string[] ResourceNames{get;}

プロパティ値

現行の通知に関連するデータベース・リソースを示す文字列配列

備考

連続問合せ通知の場合、ResourceNamesプロパティには無効化オブジェクト名が<schema_name>.<object _name>の書式で含まれます。無効化オブジェクトの変更に関する詳細情報を取得するには、Detailsプロパティを使用します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

- 「Details」

Source

このプロパティでは、通知のデータベース・イベント・ソースを戻します。

宣言

// C#
public OracleNotificationSource Source{get;}

プロパティ値

通知のOracleNotificationSource値

備考

OracleNotificationSource値は列挙型です。通知メッセージから複数のイベント・ソースを受信する場合、Sourceプロパティはデータベース・イベント・ソースに関連するOracleNotificationSource列挙値の1つに設定されます。たとえば、(ALTER TABLEコマンドにより)表が変更され、同じ表に新しい行が挿入されている場合、SourceプロパティはOracleNotificationSource.ObjectまたはOracleNotificationSource.Dataのいずれかに設定されます。

連続問合せ通知の場合

- SourceプロパティがOracleNotificationSource.Dataに設定されている場合

- Infoプロパティは、次のいずれかに設定されます。

- OracleNotificationInfo.Insert

- OracleNotificationInfo.Delete

- OracleNotificationInfo.Update

- ResourceNamesプロパティが設定され、要素は無効化オブジェクト名に設定されます。

- Detailsプロパティには、無効化された各表の変更に関する詳細情報が含まれます。

- SourceプロパティがOracleNotificationSource.Databaseに設定されている場合

- Infoプロパティは、次のいずれかに設定されます。

- OracleNotificationInfo.Startup

- OracleNotificationInfo.Shutdown

- OracleNotificationInfo.Shutdown_Any

- OracleNotificationInfo.Dropped

- SourceプロパティがOracleNotificationSource.Objectに設定されている場合

- Infoプロパティは、OracleNotificationInfo.AlteredまたはOracleNotificationInfo.Droppedのいずれかに設定されます。

- ResourceNamesプロパティが設定され、ResourceNamesプロパティの配列要素は、変更または削除されたオブジェクト名に設定されます。

- Detailsプロパティには、オブジェクトの変更に関する詳細情報が含まれます。

- SourceプロパティがOracleNotificationSource.Subscriptionに設定されている場合

- Infoプロパティは、次の値に設定されます。

- OracleNotificationInfo.End

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

- 「OracleNotificationSourceの列挙」

Type

このプロパティでは、通知のデータベース・イベント・タイプを戻します。

宣言

// C#
public OracleNotificationType Type{get;}

プロパティ値

データベース・イベント通知のタイプを表すOracleNotificationType列挙値

備考

OracleNotificationType値は列挙型です。通知メッセージから複数のイベント・ソースを受信する場合、Typeプロパティはデータベース・イベント・タイプに関連するOracleNotificationType列挙値の1つに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

- 「OracleNotificationTypeの列挙」

OracleNotificationEventArgsメソッド

OracleNotificationEventArgsメソッドを、表9-26にリストします。

表9-26 OracleNotificationEventArgsメソッド

メソッド

説明

Equals

System.Objectからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

OnChangeEventHandlerデリゲート

OnChangeEventHandlerデリゲートでは、通知を処理するメソッドの署名を表します。

宣言

// C#
public delegate void OnChangeEventHandler(object sender,
OracleNotificationEventArgs args);

パラメータ

- sender
イベントのソース

- args
イベント・データが含まれるOracleNotificationEventArgsインスタンス

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleNotificationEventArgsクラス

- OracleNotificationEventArgsメンバー

OracleRowidInfoの列挙

OracleRowidInfoの列挙値は、ROWID情報をChangeNotificationEventArgsの一部として含めるかどうかを指定します。

表9-28では、すべてのOracleRowidInfoの列挙値と、それぞれの列挙値の説明をリストします。

表9-27 OracleRowidInfoメンバー

メンバー名

説明

Default

OracleCommand.AddRowidプロパティがtrueに設定されている場合、またはROWID列が明示的に問合せに含まれている場合のみ、ROWID情報が含まれます。

Include

ROWIDが問合せの選択リストに含まれているかどうかにかかわらず、ROWID情報は含まれます。

Exclude

ROWIDが問合せの選択リストに含まれているかどうかにかかわらず、ROWID情報は含まれません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「RowidInfo」

OracleNotificationTypeの列挙

OracleNotificationType列挙値は、通知を引き起こす様々なタイプを指定します。

表9-28は、すべてのOracleNotificationTypeの列挙値と、それぞれの列挙値の説明をリストします。

表9-28 OracleNotificationTypeメンバー

メンバー名

説明

Change

データベース内の変更

Subscribe

サブスクリプション内の変更

Query

データベース内の問合せベースの変更

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:
Oracle.DataAccess.Clientネームスペース

OracleNotificationSourceの列挙

OracleNotificationSource列挙値は、通知を引き起こす様々なソースを指定します。

表9-29は、すべてのOracleNotificationSourceの列挙値と、それぞれの列挙値の説明をリストします。

表9-29 OracleNotificationSourceメンバー

メンバー名

説明

Data

表内のデータの変更

Database

データベースの起動または停止などのデータベース・イベントの発生

Object

データベース・オブジェクトの更新または削除

Subscription

サブスクリプションの変更

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:
Oracle.DataAccess.Clientネームスペース

OracleNotificationInfoの列挙

OracleNotificationInfo列挙値は、通知を引き起こすデータベース・イベントを示します。

表9-30は、すべてのOracleNotificationInfoの列挙値と、それぞれの列挙値の説明をリストします。

表9-30 OracleNotificationInfoメンバー

メンバー名

説明

Insert

行の挿入

Delete

行の削除

Update

行の更新

Startup

データベースの開始

Shutdown

データベースの停止

Shutdown_Any

Real Application Cluster(Oracle RAC)環境内のデータベース・インスタンスの停止

Alter

オブジェクトの更新

Drop

オブジェクトまたはデータベースの削除

End

登録の削除

Error

通知エラーの発生

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:
Oracle.DataAccess.Clientネームスペース

10 Oracle Data Provider for .NETのグローバリゼーション・クラス

この章では、ODP.NETのグローバリゼーション・クラスについて説明します。

この章の内容は次のとおりです。

- OracleGlobalizationクラス

OracleGlobalizationクラス

OracleGlobalizationクラスは、セッション、スレッドおよびローカル・コンピュータのOracleグローバリゼーション設定(読取り専用)の取得および設定に使用されます。

クラスの継承

System.Object

Oracle.DataAccess.Client.OracleGlobalization

宣言

public sealed class OracleGlobalization : ICloneable, IDisposable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

プロパティ値が無効である場合は例外が表示されます。TimeZoneプロパティを除いて、新規に設定されたプロパティ値はすべて検証されます。

OracleGlobalizationオブジェクト・プロパティを変更しても、セッションまたはスレッドのグローバリゼーション設定は変更されません。セッションおよびスレッドのグローバリゼーション設定を変更するには、それぞれ、OracleConnectionオブジェクトのSetSessionInfoメソッド、またはOracleGlobalizationオブジェクトのSetThreadInfoメソッドがコールされる必要があります。

例

// C#

using System;
using Oracle.DataAccess.Client;

class OracleGlobalizationSample
{
static void Main()
{
// Get thread's globalization info
OracleGlobalization glob = OracleGlobalization.GetThreadInfo();

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

// Set language on thread's globalization info
glob.Language = "FRENCH";
OracleGlobalization.SetThreadInfo(glob);
OracleGlobalization.GetThreadInfo(glob);

// Prints "glob.Language = FRENCH"
Console.WriteLine("glob.Language = " + glob.Language);

glob.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationメンバー

- OracleGlobalization静的メソッド

- OracleGlobalizationプロパティ

- OracleGlobalizationパブリック・メソッド

- Oracle Database SQLリファレンス

- 『Oracle Databaseグローバリゼーション・サポート・ガイド』

OracleGlobalizationメンバー

OracleGlobalizationメンバーは次の表にリストされています。

OracleGlobalization静的メソッド

OracleGlobalization静的メソッドを、表10-1にリストします。

表10-1 OracleGlobalization静的メソッド

名前

説明

GetClientInfo

ローカル・コンピュータのOracleグローバリゼーション設定を表すOracleGlobalizationオブジェクトを戻します(オーバーロード)

GetThreadInfo

現行スレッドのOracleグローバリゼーション設定を表すOracleGlobalizationインスタンスを戻す、またはリフレッシュします(オーバーロード)

SetThreadInfo

Oracleグローバリゼーション・パラメータを現行スレッドに設定します

OracleGlobalizationプロパティ

OracleGlobalizationプロパティを、表10-2にリストします。

表10-2 OracleGlobalizationプロパティ

名前

説明

Calendar

カレンダ・システムを指定します

ClientCharacterSet

クライアントのキャラクタ・セットを指定します

Comparison

WHERE句の比較およびPL/SQLブロックの比較のメソッドを指定します

Currency

L数値書式要素のローカル通貨記号として使用する文字列を指定します

DateFormat

文字列としてのOracleのDateタイプ用の日付書式を指定します

DateLanguage

曜日と月の名称、および日付の略称を表現するために使用される言語を指定します

DualCurrency

U数値書式要素用のユーロEuroなどの、二重通貨記号を指定します

ISOCurrency

C数値書式要素の国際通貨記号として使用する文字列を指定します

Language

データベースのデフォルト言語を指定します

LengthSemantics

バイトまたは文字(デフォルト)長セマンティクスのいずれかを使用するCHARおよびVARCHAR2列の作成を有効化します

NCharConversionException

暗黙的または明示的なキャラクタ・タイプ変換時のデータ損失によって、エラーを報告するかどうかを判別します

NumericCharacters

文字列の数値に対して、小数点文字およびグループ・セパレータ用に使用される文字を指定します

Sort

句によってORDERの照合順番を指定します

Territory

地域の名前を指定します

TimeStampFormat

TimeStampタイプの文字列書式を指定します

TimeStampTZFormat

TimeStampTZタイプの文字列書式を指定します

TimeZone

タイムゾーンのリージョン名を指定します

OracleGlobalizationパブリック・メソッド

OracleGlobalizationパブリック・メソッドを、表10-3にリストします。

表10-3 OracleGlobalizationパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleGlobalizationオブジェクトのコピーを作成します

Dispose

System.ComponentModel.Componentからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

OracleGlobalization静的メソッド

OracleGlobalization静的メソッドを、表10-4にリストします。

表10-4 OracleGlobalization静的メソッド

名前

説明

GetClientInfo

ローカル・コンピュータのOracleグローバリゼーション設定を表すOracleGlobalizationオブジェクトを戻します(オーバーロード)

GetThreadInfo

現行スレッドのOracleグローバリゼーション設定を表すOracleGlobalizationインスタンスを戻す、またはリフレッシュします(オーバーロード)

SetThreadInfo

Oracleグローバリゼーション・パラメータを現行スレッドに設定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

GetClientInfo

GetClientInfoにより、ローカル・コンピュータのOracleグローバリゼーション設定を表すOracleGlobalizationオブジェクトを戻します。

オーバーロード・リスト:

- GetClientInfo()
このメソッドにより、ローカル・コンピュータのグローバリゼーション設定を表すOracleGlobalizationインスタンスを戻します。

- GetClientInfo(OracleGlobalization)
このメソッドにより、ローカル・コンピュータのグローバリゼーション設定を含む、指定されたOracleGlobalizationオブジェクトをリフレッシュします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

GetClientInfo()

このメソッドにより、ローカル・コンピュータのグローバリゼーション設定を表すOracleGlobalizationインスタンスを戻します。

宣言

// C#
public static OracleGlobalization GetClientInfo();

戻り値

OracleGlobalizationインスタンス

例

// C#

using System;
using Oracle.DataAccess.Client;

class GetClientInfoSample
{
static void Main()
{
// Get client's globalization info
OracleGlobalization glob = OracleGlobalization.GetClientInfo();

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

glob.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

GetClientInfo(OracleGlobalization)

このメソッドにより、ローカル・コンピュータのグローバリゼーション設定を含む、指定されたOracleGlobalizationオブジェクトをリフレッシュします。

宣言

// C#
public static void GetClientInfo(OracleGlobalization oraGlob);

パラメータ

- oraGlob
更新されているOracleGlobalizationオブジェクト

例

// C#

using System;
using Oracle.DataAccess.Client;

class GetClientInfoSample
{
static void Main()
{
// Get client's globalization info
OracleGlobalization glob = OracleGlobalization.GetClientInfo();

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

// Get client's globalization info using overload
OracleGlobalization.GetClientInfo(glob);

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

glob.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

GetThreadInfo

GetThreadInfoにより、OracleGlobalizationインスタンスを戻す、またはリフレッシュします。

オーバーロード・リスト:

- GetThreadInfo()
このメソッドにより、現行スレッドのOracleGlobalizationオブジェクト・インスタンスを戻します。

- GetThreadInfo(OracleGlobalization)
このメソッドにより、現行スレッドのグローバリゼーション設定を含む、OracleGlobalizationオブジェクト・インスタンスをリフレッシュします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

GetThreadInfo()

このメソッドにより、現行スレッドのOracleGlobalizationインスタンスを戻します。

宣言

// C#
public static OracleGlobalization GetThreadInfo();

戻り値

OracleGlobalizationインスタンス

備考

最初に、GetThreadInfo()により、OracleGlobalizationオブジェクトを戻します。このオブジェクトは、アプリケーションでSetThreadInfo()を起動してこれを変更しないかぎり、GetClientInfo()によって戻されるのと同じプロパティ値を持ちます。

例

// C#

using System;
using Oracle.DataAccess.Client;

class GetThreadInfoSample
{
static void Main()
{
// Get thread's globalization info
OracleGlobalization glob = OracleGlobalization.GetThreadInfo();

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

// Get thread's globalization info using overloaded
OracleGlobalization.GetThreadInfo(glob);

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

glob.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

GetThreadInfo(OracleGlobalization)

このメソッドにより、現行スレッドのグローバリゼーション設定を含む、OracleGlobalizationオブジェクトをリフレッシュします。

宣言

// C#
public static void GetThreadInfo(OracleGlobalization oraGlob);

パラメータ

- oraGlob
更新されているOracleGlobalizationオブジェクト

備考

最初に、GetThreadInfo()により、OracleGlobalizationオブジェクトを戻します。アプリケーションでSetThreadInfo()を起動してこれを変更しないかぎり、このオブジェクトはGetClientInfo()によって戻されるのと同じプロパティ値を持ちます。

例

// C#

using System;
using Oracle.DataAccess.Client;

class GetThreadInfoSample
{
static void Main()
{
// Get thread's globalization info
OracleGlobalization glob = OracleGlobalization.GetThreadInfo();

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

// Get thread's globalization info using overloaded
OracleGlobalization.GetThreadInfo(glob);

// Prints "glob.Language = AMERICAN"
Console.WriteLine("glob.Language = " + glob.Language);

glob.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

SetThreadInfo

このメソッドは、Oracleグローバリゼーション・パラメータを現行スレッドに設定します。

宣言

// C#
public static void SetThreadInfo(OracleGlobalization oraGlob);

パラメータ

- oraGlob
OracleGlobalizationオブジェクト

備考

任意の.NET文字列の、ODP.NETタイプへの変換およびODP.NETタイプからの変換では、ODP.NETタイプ・コンストラクタと同様に、適用可能であればグローバリゼーション・プロパティ値を使用します。たとえば、.NET文字列からOracleDate構造を構築するとき、この文字列はスレッドのOracleGlobalization.DateFormatプロパティによって指定された書式であることが予想されます。

例

// C#

using System;
using Oracle.DataAccess.Client;

class SetThreadInfoSample
{
static void Main()
{
// Get thread's globalization info
OracleGlobalization glob1 = OracleGlobalization.GetThreadInfo();

// Prints "glob1.Language = AMERICAN"
Console.WriteLine("glob1.Language = " + glob1.Language);

// Set language on thread's globalization info
glob1.Language = "FRENCH";
OracleGlobalization.SetThreadInfo(glob1);
OracleGlobalization glob2 = OracleGlobalization.GetThreadInfo();

// Prints "glob2.Language = FRENCH"
Console.WriteLine("glob2.Language = " + glob2.Language);

glob1.Dispose();
glob2.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

OracleGlobalizationプロパティ

OracleGlobalizationプロパティを、表10-5にリストします。

表10-5 OracleGlobalizationプロパティ

名前

説明

Calendar

カレンダ・システムを指定します

ClientCharacterSet

クライアントのキャラクタ・セットを指定します

Comparison

WHERE句の比較およびPL/SQLブロックの比較のメソッドを指定します

Currency

L数値書式要素のローカル通貨記号として使用する文字列を指定します

DateFormat

文字列としてのOracleのDateタイプ用の日付書式を指定します

DateLanguage

曜日と月の名称、および日付の略称を表現するために使用される言語を指定します

DualCurrency

U数値書式要素用のユーロEuroなどの、二重通貨記号を指定します

ISOCurrency

C数値書式要素の国際通貨記号として使用する文字列を指定します

Language

データベースのデフォルト言語を指定します

LengthSemantics

バイトまたは文字(デフォルト)長セマンティクスのいずれかを使用するCHARおよびVARCHAR2列の作成を有効化します

NCharConversionException

暗黙的または明示的なキャラクタ・タイプ変換時のデータ損失によって、エラーを報告するかどうかを判別します

NumericCharacters

文字列の数値に対して、小数点文字およびグループ・セパレータ用に使用される文字を指定します

Sort

句によってORDERの照合順番を指定します

Territory

地域の名前を指定します

TimeStampFormat

TimeStampタイプの文字列書式を指定します

TimeStampTZFormat

TimeStampTZタイプの文字列書式を指定します

TimeZone

タイムゾーンのリージョン名を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

Calendar

このプロパティはカレンダ・システムを指定します。

宣言

// C#
public string Calendar {get; set;}

プロパティ値

Calendarを表す文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_CALENDAR設定です。OracleGlobalizationオブジェクトがクライアント、スレッドまたはセッションの設定を表すかどうかにかかわらず、この値は同じです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

ClientCharacterSet

このプロパティはクライアントのキャラクタ・セットを指定します。

宣言

// C#
public string ClientCharacterSet {get;}

プロパティ値

ローカル・コンピュータのキャラクタ・セットの名前を指定する文字列です。

備考

デフォルト値はローカル・コンピュータのキャラクタ・セットです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

Comparison

このプロパティは、WHERE句の比較およびPL/SQLブロックの比較のメソッドを表します。

宣言

// C#
public string Comparison {get; set;}

プロパティ値

比較のメソッドの名前を指定する文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_COMP設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

Currency

このプロパティは、L数値書式要素のローカル通貨記号として使用する文字列を指定します。

宣言

// C#
public string Currency {get; set;}

プロパティ値

L数値書式要素のローカル通貨記号として使用する文字列です。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_CURRENCY設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

- L数値書式要素の詳細は、Oracle Database SQLリファレンスを参照

DateFormat

このプロパティは、文字列としてのOracleのDateタイプ用の、日付書式を指定します。

宣言

// C#
public string DateFormat {get; set;}

プロパティ値

文字列としてのOracle Dateタイプ用の日付書式です。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_DATE_FORMAT設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

DateLanguage

このプロパティは、曜日、月の名前および日付の略称(たとえば、a.m、p.m、AD、BCなど)を綴るのに使用する言語を指定します。

宣言

// C#
public string DateLanguage {get; set;}

プロパティ値

言語を指定する文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_DATE_LANGUAGE設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

DualCurrency

このプロパティは、U数値書式要素用のユーロなどの、二重通貨記号を指定します。

宣言

// C#
public string DualCurrency {get; set;}

プロパティ値

二重通貨記号を指定する文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_DUAL_CURRENCY設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

- U数値書式要素の詳細は、Oracle Database SQLリファレンスを参照

ISOCurrency

このプロパティは、C数値書式要素の国際通貨記号として使用する文字列を指定します。

宣言

// C#
public string ISOCurrency {get; set;}

プロパティ値

国際通貨記号として使用される文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_ISO_CURRENCY設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

- C数値書式要素の詳細は、Oracle Database SQLリファレンスを参照

Language

このプロパティはデータベースのデフォルト言語を指定します。

宣言

// C#
public string Language {get; set;}

プロパティ値

データベースのデフォルト言語

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_LANGUAGE設定です。

Languageはメッセージ、曜日名と月の名前およびソート・アルゴリズムに使用されます。また、これによってNLS_DATE_LANGUAGEおよびNLS_SORTパラメータ値を決定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

LengthSemantics

このプロパティは、CHARおよびVARCHAR2列がバイトまたは文字(デフォルト)長セマンティクスを使用するかどうかを示します。

宣言

// C#
public string LengthSemantics {get; set;}

プロパティ値

バイトまたは文字長セマンティクスのいずれかを示す文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_LENGTH_SEMANTICS設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

NCharConversionException

このプロパティでは、暗黙的または明示的なキャラクタ・タイプ変換時のデータ損失によって、エラーを報告するかどうかを判断します。

宣言

// C#
public bool NCharConversionException {get; set;}

プロパティ値

キャラクタ・タイプ変換によってエラー・メッセージが発生するかどうかを示す文字列です。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

NLS_NCHAR_CONV_EXCPのデフォルト値は、INIT.ORAファイルの設定が優先される場合以外はFalseです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

NumericCharacters

このプロパティは、文字列の数値に対して、小数点文字およびグループ・セパレータ用に使用される文字を指定します。

宣言

// C#
public string NumericCharacters {get; set;}

プロパティ値

使用される文字を表す文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_NUMERIC_CHARACTERS設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

Sort

このプロパティは、句によってORDERの照合順番を指定します。

宣言

// C#
public string Sort {get; set;}

プロパティ値

照合順番を示す文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_SORT設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

Territory

このプロパティは、地域の名前を指定します。

宣言

// C#
public string Territory {get; set;}

プロパティ値

地域の名前を指定する文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_TERRITORY設定です。

このプロパティを変更すると、その他のグローバリゼーション設定が変更されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

- Oracle Databaseグローバリゼーション・サポート・ガイド

TimeStampFormat

このプロパティは、TimeStampタイプの文字列書式を指定します。

宣言

// C#
public string TimeStampFormat {get; set;}

プロパティ値

TimeStampタイプの文字列書式

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_TIMESTAMP_FORMAT設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

TimeStampTZFormat

このプロパティは、TimeStampTZタイプの文字列書式を指定します。

宣言

// C#
public string TimeStampTZFormat {get; set;}

プロパティ値

TimeStampTZタイプの文字列書式

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのNLS_TIMESTAMP_TZ_FORMAT設定です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

TimeZone

このプロパティは、タイムゾーンのリージョン名または時間オフセットを指定します。

宣言

// C#
public string TimeZone {get; set;}

プロパティ値

タイムゾーンのリージョン名またはタイムゾーンのオフセットを表す文字列です。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値はローカル・コンピュータのタイムゾーンのリージョン名です。

スレッドによりTimeStamp構造の1つを構築するときにのみ、TimeZoneは使用されます。TimeZoneはセッションに影響を及ぼしません。

TimeZoneは、時間オフセット(7:00など)か、US/PacificのようなV$TIMEZONE_NAMESで指定される有効なタイムゾーンのリージョン名です。タイムゾーンの略称はサポートされていません

注意:
PSTは、タイムゾーンのリージョン名および略称であるため、OracleGlobalizationによって認証されます。

GetSessionInfo()またはGetSessionInfo(OracleGlobalization)を使用して、OracleGlobalizationオブジェクトが取得される場合、このプロパティにより空の文字列を戻します。デフォルトにより、最初はセッションのタイムゾーンはスレッドのタイムゾーンと同一になっています。したがって、セッションのタイムゾーンがALTER SESSIONコールの起動によって変更されない場合、セッションのタイムゾーンはクライアントのグローバリゼーション設定からフェッチできます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

OracleGlobalizationパブリック・メソッド

OracleGlobalizationパブリック・メソッドを、表10-6にリストします。

表10-6 OracleGlobalizationパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleGlobalizationオブジェクトのコピーを作成します

Dispose

System.ComponentModel.Componentからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

Clone

このメソッドでは、OracleGlobalizationオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleGlobalizationオブジェクト

実装

ICloneable

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleGlobalizationクラス

- OracleGlobalizationメンバー

11 Oracle Data Provider for .NETのフェイルオーバー・クラス

この章では、ODP.NETのフェイルオーバー・クラスおよび列挙について説明します。

この章の内容は次のとおりです。

- OracleFailoverEventArgsクラス

- OracleFailoverEventHandlerデリゲート

- FailoverEventの列挙

- FailoverReturnCodeの列挙

- FailoverTypeの列挙

OracleFailoverEventArgsクラス

OracleFailoverEventArgsクラスは、OracleConnection.Failoverイベントのイベント・データを提供します。データベースのフェイルオーバーが発生すると、OracleConnection.Failoverイベントが、イベント・データが格納されているOracleFailoverEventArgsオブジェクトとともにトリガーされます。

クラスの継承

System.Object

System.EventArgs

Oracle.DataAccess.Client.OracleFailoverEventArgs

宣言

// C#
public sealed class OracleFailoverEventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例(Oracle.DataAccess.Clientのみ)

// Transparent Application Failover (TAF) Setup
// Refer Oracle® Database Net Services Administrator's Guide

// C#

using System;
using System.Threading;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class FailoverSample
{
static void Main(string[] args)
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Register the event handler OnFailover
con.Failover += new OracleFailoverEventHandler(OnFailover);

Console.WriteLine("Wait for a failover for 5 seconds");
Thread.Sleep(5000);

con.Close();
con.Dispose();
}

// TAF callback function
static FailoverReturnCode OnFailover(object sender,
OracleFailoverEventArgs eventArgs)
{
switch (eventArgs.FailoverEvent)
{
case FailoverEvent.Begin:
{
Console.WriteLine("FailoverEvent.Begin - Failover is starting");
Console.WriteLine("FailoverType = " + eventArgs.FailoverType);
break;
}
case FailoverEvent.End:
{
Console.WriteLine("FailoverEvent.End - Failover was successful");
break;
}
case FailoverEvent.Reauth:
{
Console.WriteLine("FailoverEvent.Reauth - User reauthenticated");
break;
}
case FailoverEvent.Error:
{
Console.WriteLine("FailoverEvent.Error - Failover was unsuccessful");

// Sleep for 3 sec and Retry
Thread.Sleep(3000);
return FailoverReturnCode.Retry;
}
case FailoverEvent.Abort:
{
Console.WriteLine("FailoverEvent.Abort - Failover was unsuccessful");
break;
}
default:
{
Console.WriteLine("Invalid FailoverEvent : " + eventArgs.FailoverEvent);
break;
}
}
return FailoverReturnCode.Success;
}
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsメンバー

- OracleFailoverEventArgs静的メソッド

- OracleFailoverEventArgsプロパティ

- OracleFailoverEventArgsパブリック・メソッド

- 「OracleConnectionクラス」

- Oracle Net Services管理者ガイド

OracleFailoverEventArgsメンバー

OracleFailoverEventArgsメンバーは次の表にリストされています。

OracleFailoverEventArgs静的メソッド

OracleFailoverEventArgs静的メソッドを、表11-1にリストします。

表11-1 OracleFailoverEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleFailoverEventArgsプロパティ

OracleFailoverEventArgsプロパティを、表11-2にリストします。

表11-2 OracleFailoverEventArgsプロパティ

名前

説明

FailoverType

クライアントが要求したフェイルオーバーのタイプを指定します

FailoverEvent

フェイルオーバーの状態を示します

OracleFailoverEventArgsパブリック・メソッド

OracleFailoverEventArgsパブリック・メソッドを、表11-3にリストします。

表11-3 OracleFailoverEventArgsパブリック・メソッド

名前

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- 「FailoverTypeの列挙」

OracleFailoverEventArgs静的メソッド

OracleFailoverEventArgs静的メソッドを、表11-1にリストします。

表11-4 OracleFailoverEventArgs静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

OracleFailoverEventArgsプロパティ

OracleFailoverEventArgsプロパティを、表11-5にリストします。

表11-5 OracleFailoverEventArgsプロパティ

名前

説明

FailoverType

クライアントが要求したフェイルオーバーのタイプを指定します

FailoverEvent

フェイルオーバーの状態を示します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

FailoverType

このプロパティはフェイルオーバーの状態を示します。

宣言

// C#
public FailoverType FailoverType {get;}

プロパティ値

FailoverTypeの列挙値

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

- 「FailoverTypeの列挙」

FailoverEvent

このプロパティはフェイルオーバーの状態を示します。

宣言

// C#
public FailoverEvent FailoverEvent {get;}

プロパティ値

FailoverEventの列挙値

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

- 「FailoverEventの列挙」

OracleFailoverEventArgsパブリック・メソッド

OracleFailoverEventArgsパブリック・メソッドを、表11-6にリストします。

表11-6 OracleFailoverEventArgsパブリック・メソッド

名前

説明

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

OracleFailoverEventHandlerデリゲート

OracleFailoverEventHandlerは、OracleConnection.Failoverイベントを処理するメソッドの署名を表します。

宣言

// C#
public delegate FailoverReturnCode OracleFailoverEventHandler(object sender,
OracleFailoverEventArgs eventArgs);

パラメータ

- sender
イベントのソース

- eventArgs
イベント・データが含まれるOracleFailoverEventArgsオブジェクト

戻り型

int

備考

フェイルオーバーの通知を受け取るため、次のようにコールバック関数を登録できます。

ConObj.Failover += new OracleFailoverEventHandler(OnFailover);

コールバック関数OnFailoverは次のように定義できます。

public FailoverReturnCode OnFailover(object sender, OracleFailoverEventArgs eventArgs)

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

コメント: .NETストアド・プロシージャではサポートされません

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleFailoverEventArgsクラス

- OracleFailoverEventArgsメンバー

- 「Failover」

FailoverEventの列挙

FailoverEventの列挙値は、フェイルオーバーの状態を指定するのに使用されます。

表11-7では、すべてのFailoverEventの列挙値と、それぞれの列挙値の説明をリストしています。

表11-7 FailoverEvent列挙値

メンバー名

説明

FailoverEvent.Begin

失われた接続がフェイルオーバーで検出されたかどうか、およびフェイルオーバーが開始しているかどうかを示します。

FailoverEvent.End

フェイルオーバーの正常な完了を示します。

FailoverEvent.Abort

フェイルオーバーが失敗し、再試行する選択肢がないことを示します。

FailoverEvent.Error

フェイルオーバーが失敗し、エラーを処理してフェイルオーバーを再試行するチャンスがアプリケーションに与えられたことを示します。アプリケーションにより、イベント通知用にFailoverReturnCode.Retryを戻すことでフェイルオーバーを再試行できます。

FailoverEvent.Reauth

ユーザー処理が再認証されたことを示します。これは、シングル・サーバー接続でクライアントに複数のユーザー・セッションがある状況に適用されます。初期フェイルオーバー時に、有効なユーザー・セッションのみがフェイルオーバーされます。アプリケーションでその他のセッションを使用するときにそれらのセッションはフェイルオーバーされます。これが、連続フェイルオーバー時にコールバックに渡される値です。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- FailoverEventの列挙

- 「OracleFailoverEventArgsクラス」

- 「FailoverEvent」

- Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド

- Oracle Net Servicesリファレンス・ガイド

FailoverReturnCodeの列挙

FailoverReturnCodeの列挙値はアプリケーションによってODP.NETプロバイダに渡され、フェイルオーバーにエラーが起きた場合に再試行を要求するか、またはフェイルオーバーが成功した場合に続行します。

表11-8では、すべてのFailoverReturnCodeの列挙値と、それぞれの列挙値の説明をリストしています。

表11-8 FailoverReturnCode列挙値

メンバー名

説明

FailoverReturnCode.Retry

FailoverEvent.Errorがアプリケーションに渡された場合に、フェイルオーバーの再試行をODP.NETに要求します

FailoverReturnCode.Success

アプリケーションでさらに多くの通知(ある場合)を受信できるように、ODP.NETに続行を要求します

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- FailoverEventの列挙

- 「OracleFailoverEventArgsクラス」

- 「FailoverEvent」

- Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド

- Oracle Net Servicesリファレンス・ガイド

FailoverTypeの列挙

FailoverTypeの列挙値は、呼び出されたフェイルオーバー・イベントのタイプを示すのに使用されます。

表11-9では、すべてのFailoverTypeの列挙値と、それぞれの列挙値の説明をリストしています。

表11-9 FailoverType列挙値

メンバー名

説明

FailoverType.Session

ユーザーがセッション・フェイルオーバーのみを要求したことを示します。

FailoverType.Select

ユーザーが選択およびセッション・フェイルオーバーを要求したことを示します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- FailoverEventの列挙

- 「OracleFailoverEventArgsクラス」

- 「FailoverType」

- Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド

- Oracle Net Servicesリファレンス・ガイド

12 アドバンスト・キューイングのサポート

この章では、次のOracle Data Provider for .NETクラスについて説明します。

- OracleAQAgentクラス

- OracleAQDequeueOptionsクラス

- OracleAQEnqueueOptionsクラス

- OracleAQMessageクラス

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventHandlerデリゲート

- OracleAQQueueクラス

- OracleAQDequeueModeの列挙

- OracleAQMessageDeliveryModeの列挙

- OracleAQMessageStateの列挙

- OracleAQMessageTypeの列挙

- OracleAQNavigationModeの列挙

- OracleAQNotificationGroupingTypeの列挙

- OracleAQNotificationTypeの列挙

- OracleAQVisibilityModeの列挙

OracleAQAgentクラス

OracleAQAgentクラスは、メッセージの送信者または受信者となるエージェントを表します。

クラスの継承

System.Object

OracleAQAgent

宣言

// C#
public sealed class OracleAQAgent

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

エージェントは、コンシューマ、別のキュー、別のキューのコンシューマのいずれかです。キューは、ローカルまたはリモートです。リモート・キューは、データベース・リンクを通じて指定します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentメンバー

- OracleAQAgentコンストラクタ

- OracleAQAgentプロパティ

OracleAQAgentメンバー

OracleAQAgentメンバーを、次の各表に示します。

OracleAQAgentコンストラクタ

OracleAQAgentコンストラクタを、表12-1にリストします。

表12-1 OracleAQAgentコンストラクタ

コンストラクタ

説明

OracleAQAgentコンストラクタ

OracleAQAgentクラスの新規インスタンスをインスタンス化します(オーバーロード)。

OracleAQAgentプロパティ

OracleAQAgentプロパティを、表12-2にリストします。

表12-2 OracleAQAgentプロパティ

プロパティ

説明

アドレス

エージェントのアドレスを指定します。

名前

エージェントの名前を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

OracleAQAgentコンストラクタ

OracleAQAgentコンストラクタは、OracleAQAgentクラスの新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleAQAgent (string)
このコンストラクタは、指定された名前を使用してOracleAQAgentクラスをインスタンス化します。

- OracleAQAgent (string, string)
このコンストラクタは、指定された名前とアドレスを使用してOracleAQAgentクラスをインスタンス化します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

- OracleAQAgentメンバー

OracleAQAgent (string)

このコンストラクタは、指定された名前を使用してOracleAQAgentクラスをインスタンス化します。

宣言

// C#
public OracleAQAgent(string name);

パラメータ

- name
エージェントの名前。

例外

ArgumentNullException - nameパラメータがnullです。

ArgumentException - nameパラメータが空です。

備考

エージェント名は、メッセージのプロデューサまたはコンシューマの名前を示します。Listenによって公開される機能においては、エージェント名は複数コンシューマ・キューでメッセージを待つコンシューマの名前に対応しています。メッセージにエージェント名を設定して、送信者の識別情報または目的のメッセージ受信者を示すこともできます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

- OracleAQAgentメンバー

OracleAQAgent (string, string)

このコンストラクタは、指定された名前とアドレスを使用してOracleAQAgentクラスをインスタンス化します。

宣言

// C#
public OracleAQAgent(string name, string address);

パラメータ

- name
エージェントの名前。

- address
アドレスの形式は[schema.]queue[@dblink]です。

例外

ArgumentNullException - addressパラメータがnullです。

ArgumentException - addressパラメータが空です。

備考

エージェント名は、メッセージのプロデューサまたはコンシューマの名前を示します。Listenによって公開される機能においては、エージェント名は複数コンシューマ・キューでメッセージを待つコンシューマの名前に対応しています。

このコンストラクタでは、nameパラメータをnullとして指定できます。その場合、エージェントはaddressのみを持ちます。

addressパラメータは、このエージェントが新規メッセージをリスニングするキューの名前を示します。addressは、ローカル・データベースまたはリモート・データベースのキューを表します。addressの妥当性は暗黙的にチェックされません。addressが間違っていた場合の例外は、Listenなどのデータベース操作の実行中にのみスローされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

- OracleAQAgentメンバー

OracleAQAgentプロパティ

OracleAQAgentプロパティを、表12-3にリストします。

表12-3 OracleAQAgentプロパティ

プロパティ

説明

アドレス

エージェントのアドレスを指定します。

名前

エージェントの名前を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

- OracleAQAgentメンバー

Address

このインスタンス・プロパティは、エージェントのアドレスを指定します。

宣言

// C#
public string Address {get; }

プロパティ値

エージェントのアドレスを指定するstring。

備考

このアドレスは、ローカル・データベースまたはリモート・データベースのキューを表します。デフォルト値はnullです。エージェントのアドレスは[schema.]queue[@dblink]という形式を取ります。文字列の長さは最大128文字です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

- OracleAQAgentメンバー

名前

このインスタンス・プロパティは、エージェントの名前を指定します。

宣言

// C#
public string Name {get; }

プロパティ値

string

備考

デフォルトはnullです。文字列の長さは最大30文字です。値がnull以外の場合、このエージェント名は複数コンシューマ・キューのコンシューマ名またはメッセージ・プロパティに指定された受信者に対応しています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQAgentクラス

- OracleAQAgentメンバー

OracleAQDequeueOptionsクラス

OracleAQDequeueOptionsオブジェクトは、OracleAQQueueオブジェクトからメッセージをデキューする際に使用できるオプションを表します。

クラスの継承

System.Object

OracleAQDequeueOptions

宣言

// C#
public sealed class OracleAQDequeueOptions : ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsメンバー

- OracleAQDequeueOptionsコンストラクタ

- OracleAQDequeueOptionsプロパティ

- OracleAQDequeueOptionsパブリック・メソッド

OracleAQDequeueOptionsメンバー

OracleAQDequeueOptionsメンバーを、次の各表に示します。

OracleAQDequeueOptionsコンストラクタ

OracleAQDequeueOptionsコンストラクタを、表12-4にリストします。

表12-4 OracleAQDequeueOptionsコンストラクタ

コンストラクタ

説明

OracleAQDequeueOptionsコンストラクタ

OracleAQDequeueOptionsクラスの新規インスタンスをインスタンス化します

OracleAQDequeueOptionsプロパティ

OracleAQDequeueOptionsプロパティを、表12-5にリストします。

表12-5 OracleAQDequeueOptionsプロパティ

プロパティ

説明

ConsumerName

メッセージをデキューするコンシューマ名を指定します

Correlation

デキューされるメッセージの相関識別子を指定します

DeliveryMode

デキューされるメッセージの予定配信モードを指定します

DequeueMode

デキュー操作に関連付けられたロック動作を指定します

MessageId

デキューされるメッセージのメッセージ識別子を指定します

NavigationMode

取り出されるメッセージの位置を指定します

ProviderSpecificType

デキューされたメッセージのペイロードをODP.NET固有のタイプとして提供するか、.NETタイプとして提供するかを指定します

Visibility

新規メッセージを現行トランザクションの一部としてデキューするかどうかを指定します

Wait

検索条件に一致するメッセージの待機時間(秒)を指定します

OracleAQDequeueOptionsパブリック・メソッド

OracleAQDequeueOptionsパブリック・メソッドを、表12-6にリストします。

表12-6 OracleAQDequeueOptionsパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleAQDequeueOptionsオブジェクトのコピーを作成します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

OracleAQDequeueOptionsコンストラクタ

OracleAQDequeueOptionsコンストラクタは、OracleAQDequeueOptionsクラスのインスタンスを作成し、すべてのプロパティをデフォルト値に設定します。

宣言

// C#
public OracleAQDequeueOptions();

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

OracleAQDequeueOptionsプロパティ

OracleAQDequeueOptionsプロパティを、表12-7にリストします。

表12-7 OracleAQDequeueOptionsプロパティ

プロパティ

説明

ConsumerName

メッセージをデキューするコンシューマ名を指定します

Correlation

デキューされるメッセージの相関識別子を指定します

DeliveryMode

デキューされるメッセージの予定配信モードを指定します

DequeueMode

デキュー操作に関連付けられたロック動作を指定します

MessageId

デキューされるメッセージのメッセージ識別子を指定します

NavigationMode

取り出されるメッセージの位置を指定します

ProviderSpecificType

デキューされたメッセージのペイロードをODP.NET固有のタイプとして提供するか、.NETタイプとして提供するかを指定します

Visibility

新規メッセージを現行トランザクションの一部としてデキューするかどうかを指定します

Wait

検索条件に一致するメッセージの待機時間(秒)を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

ConsumerName

このインスタンス・プロパティは、メッセージをデキューするコンシューマ名を指定します。

宣言

// C#
public string ConsumerName {get;set;}

プロパティ値

string

備考

ConsumerNameプロパティは、コンシューマ名に一致するメッセージにのみアクセスします。キューが複数コンシューマ用に設定されていない場合、このフィールドはnullに設定してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

Correlation

このインスタンス・プロパティは、デキューされるメッセージの相関識別子を指定します。

宣言

// C#
public string Correlation {get;set;}

プロパティ値

string

備考

このプロパティは、デキューされるメッセージの識別情報を指定します。パーセント記号(%)やアンダースコア(_)などの特殊なパターン一致文字を使用できます。複数のメッセージがパターンに一致する場合、デキューの順序は決まりません。

Correlationの最大長は128です。

MessageIdとCorrelationはまったく異なる識別子です。MessageIdは1つのメッセージに1対1で対応しますが、Correlationにはメッセージのグループを割り当てることができます。また、パターン一致はCorrelationでのみ可能です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

DeliveryMode

このインスタンス・プロパティは、デキューされるメッセージの予定配信モードを指定します。

宣言

// C#
public OracleAQMessageDeliveryMode DeliveryMode {get;set;}

プロパティ値

OracleAQMessageDeliveryModeの列挙値。

備考

このプロパティは、デキューされるメッセージのタイプを指定します。永続メッセージとバッファ・メッセージのいずれか、またはその両方をキューからデキューするように設定できます。有効な値は次のとおりです。

- OracleAQMessageDeliveryMode.Persistent

- OracleAQMessageDeliveryMode.Buffered

- OracleAQMessageDeliveryMode.PersistentOrBuffered

デフォルト値はOracleAQMessageDeliveryMode.Persistentです。

バッファ・メッセージングは、8.1以上のデータベース互換性レベルで作成されたすべてのキュー表でサポートされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

DequeueMode

このインスタンス・プロパティは、デキュー操作に関連付けられたロック動作を指定します。

宣言

// C#
public OracleAQDequeueMode DequeueMode {get;set;}

プロパティ値

OracleAQDequeueModeの列挙値。

例外

ArgumentOutOfRangeException - 指定したDequeueMode値が無効です。

備考

デフォルト値はOracleAQDequeueMode.Removeです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

MessageId

このインスタンス・プロパティは、デキューされるメッセージのメッセージ識別子を指定します。

宣言

// C#
public byte[] MessageId {get;set;}

プロパティ値

byte[ ]。

備考

デキュー操作が成功するのは、デキューされるメッセージのメッセージIDが指定したメッセージIDと一致する場合のみです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

NavigationMode

このインスタンス・プロパティは、取り出されるメッセージの位置を指定します。

宣言

// C#
public OracleAQNavigationMode NavigationMode {get;set;}

プロパティ値

OracleAQNavigationModeの列挙値。

例外

ArgumentOutOfRangeException - 指定したNavigationMode値が無効です。

備考

デフォルト値はOracleAQNavigationMode.NextMessageです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

ProviderSpecificType

このプロパティは、デキューされたメッセージのペイロードをODP.NET固有のタイプとして提供するか、.NETタイプとして提供するかを指定します。

宣言

// C#
public bool ProviderSpecificType {get;set;}

プロパティ値

bool。

備考

このプロパティのデフォルト値はfalseです。このプロパティがペイロード・タイプに与える影響については、OracleAQQueueクラスの「MessageType」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

- 「MessageType」

Visibility

このインスタンス・プロパティは、新規メッセージを現行トランザクションの一部としてデキューするかどうかを指定します。

宣言

// C#
public OracleAQVisibilityMode Visibility {get;set;}

プロパティ値

OracleAQVisibilityModeの列挙値。

例外

ArgumentOutOfRangeException - 指定したVisibility値が無効です。

備考

デフォルト値はOracleAQVisibilityMode.OnCommitです。このプロパティのデフォルト値を使用する場合、トランザクションを使用する必要があります。これにより、アプリケーションでメッセージが失われることがなくなり、メッセージはデキュー操作が正常に完了してから適切にキューから削除されます。デフォルトの可視性モードOracleAQVisibilityMode.OnCommitを使用する際にトランザクションを使用しない場合、メッセージはキューから削除されません。

別の可視性モードの値OracleAQVisibilityMode.Immediateを使用する場合、トランザクションの作成、コミットおよびロールバックは不要になります。ただし、デキュー操作中にエラーが発生した場合、メッセージが失われる可能性があります。

DequeueModeがOracleAQDequeueMode.Browseに設定されている場合、可視性パラメータは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

Wait

このインスタンス・プロパティは、検索条件に一致するメッセージの待機時間(秒)を指定します。

宣言

// C#
public int Wait {get;set;}

プロパティ値

任意の正のinteger値、0、-1のいずれか。

例外

ArgumentOutOfRangeException - 指定したWait値が無効です。

備考

デフォルト値は-1で、無限に待機することを意味します。有効な値は次のとおりです。

- 正の整数: 待機時間(秒)。

- -1: 永久に待機します。

- 0: 待機しません。

-1より小さい値を指定すると、ArgumentOutOfRangeExceptionが発生します。

同じグループのメッセージがデキューされる場合、このパラメータは無視されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

OracleAQDequeueOptionsパブリック・メソッド

OracleAQDequeueOptionsパブリック・メソッドを、表12-8にリストします。

表12-8 OracleAQDequeueOptionsパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleAQDequeueOptionsオブジェクトのコピーを作成します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

Clone

このメソッドは、OracleAQDequeueOptionsオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleAQDequeueOptionsオブジェクト。

実装

ICloneable。

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQDequeueOptionsクラス

- OracleAQDequeueOptionsメンバー

OracleAQEnqueueOptionsクラス

OracleAQEnqueueOptionsクラスは、OracleAQQueueにメッセージをエンキューする際に使用できるオプションを表します。

クラスの継承

System.Object

OracleAQEnqueueOptions

宣言

// C#
public sealed class OracleAQEnqueueOptions : ICloneable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsメンバー

- OracleAQEnqueueOptionsコンストラクタ

- OracleAQEnqueueOptionsプロパティ

- OracleAQEnqueueOptionsパブリック・メソッド

OracleAQEnqueueOptionsメンバー

OracleAQEnqueueOptionsメンバーを、次の各表に示します。

OracleAQEnqueueOptionsコンストラクタ

OracleAQEnqueueOptionsコンストラクタを、表12-9にリストします。

表12-9 OracleAQEnqueueOptionsコンストラクタ

コンストラクタ

説明

OracleAQEnqueueOptionsコンストラクタ

OracleAQEnqueueOptionsクラスの新規インスタンスをインスタンス化します。

OracleAQEnqueueOptionsプロパティ

OracleAQEnqueueOptionsプロパティを、表12-10にリストします。

表12-10 OracleAQEnqueueOptionsプロパティ

プロパティ

説明

DeliveryMode

エンキューされるメッセージの配信モードを指定します。

Visibility

新規メッセージを現行トランザクションの一部としてエンキューするかどうかを指定します。

OracleAQEnqueueOptionsパブリック・メソッド

OracleAQEnqueueOptionsパブリック・メソッドを、表12-11にリストします。

表12-11 OracleAQEnqueueOptionsパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleAQEnqueueOptionsオブジェクトのコピーを作成します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

OracleAQEnqueueOptionsコンストラクタ

このコンストラクタは、OracleAQEnqueueOptionsクラスのインスタンスをデフォルトのプロパティ値で作成します。

宣言

// C#
public OracleAQEnqueueOptions();

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

OracleAQEnqueueOptionsプロパティ

OracleAQEnqueueOptionsプロパティを、表12-12にリストします。

表12-12 OracleAQEnqueueOptionsプロパティ

プロパティ

説明

DeliveryMode

エンキューされるメッセージの配信モードを指定します。

Visibility

新規メッセージを現行トランザクションの一部としてエンキューするかどうかを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

DeliveryMode

このインスタンス・プロパティは、エンキューされるメッセージの配信モードを指定します。

宣言

// C#
public OracleAQMessageDeliveryMode DeliveryMode {get;set;}

例外

ArgumentOutOfRangeException - 指定したVisibility値が無効です。

備考

有効な値は次の列挙値のいずれかです。

- OracleAQMessageDeliveryMode.Persistent

- OracleAQMessageDeliveryMode.Buffered

デフォルトはOracleAQMessageDeliveryMode.Persistentです。

OracleAQMessageDeliveryMode.PersistentOrBufferedは、このプロパティには設定できません。

OracleAQMessageDeliveryMode.Bufferedは、Oracle Database 10gリリース2(10.2)以上でのみ指定できます。バッファ・メッセージングは、8.1以上のデータベース互換性レベルで作成されたすべてのキュー表でサポートされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

Visibility

このインスタンス・プロパティは、新規メッセージを現行トランザクションの一部としてエンキューするかどうかを指定します。

宣言

// C#
public OracleAQVisibilityMode Visibility {get;set;}

プロパティ値

OracleAQVisibilityModeの列挙値。

例外

ArgumentOutOfRangeException - 指定したVisibility値が無効です。

備考

デフォルト値はOracleAQVisibilityMode.OnCommitです。デフォルト値を使用する場合、トランザクションを使用する必要があります。デフォルトの可視性モードOracleAQVisibilityMode.OnCommitを使用する際にトランザクションを使用しない場合、メッセージはキューにエンキューされません。

別の可視性モードの値OracleAQVisibilityMode.Immediateを使用する場合、トランザクションを使用する必要がなくなります。エンキュー操作が失敗してもキューには影響しません。そのような場合、メッセージはキューにエンキューされません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

OracleAQEnqueueOptionsパブリック・メソッド

OracleAQEnqueueOptionsパブリック・メソッドを、表12-13にリストします。

表12-13 OracleAQEnqueueOptionsパブリック・メソッド

パブリック・メソッド

説明

Clone

OracleAQEnqueueOptionsオブジェクトのコピーを作成します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

Clone

このメソッドは、OracleAQEnqueueOptionsオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleAQEnqueueOptionsオブジェクト。

実装

ICloneable。

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQEnqueueOptionsクラス

- OracleAQEnqueueOptionsメンバー

OracleAQMessageクラス

OracleAQMessageオブジェクトは、エンキューおよびデキューされるメッセージを表します。

クラスの継承

System.Object

OracleAQMessage

宣言

// C#
public sealed class OracleAQMessage

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleAQMessageオブジェクトは、制御情報(メタデータ)とペイロード(データ)からなります。制御情報はOracleAQMessageオブジェクトの様々なプロパティによって公開され、Oracle Streamsアドバンスト・キューイングでメッセージの管理に使用されます。ペイロードはキューに格納される情報です。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageメンバー

- OracleAQMessageコンストラクタ

- OracleAQMessageプロパティ

OracleAQMessageメンバー

OracleAQMessageメンバーを、次の各表に示します。

OracleAQMessageコンストラクタ

OracleAQMessageコンストラクタを、表12-14にリストします。

表12-14 OracleAQMessageコンストラクタ

コンストラクタ

説明

OracleAQMessageコンストラクタ

OracleAQMessageクラスの新規インスタンスをインスタンス化します(オーバーロード)。

OracleAQMessageプロパティ

OracleAQMessageプロパティを、表12-15にリストします。

表12-15 OracleAQMessageプロパティ

プロパティ

説明

Correlation

メッセージの識別情報を指定します。

Delay

エンキューされたメッセージがデキュー可能になるまでの期間(秒)を指定します。

DeliveryMode

デキューされたメッセージの配信モードを指定します。

DequeueAttempts

メッセージのデキューを試みた回数を戻します。

EnqueueTime

メッセージがエンキューされた時間を指定します。

ExceptionQueue

メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前を指定します。

Expiration

エンキューされたメッセージがデキュー可能な期間(秒)を指定します。

MessageId

メッセージ識別子を戻します。

OriginalMessageId

このメッセージを生成した、最後のキュー内のメッセージの識別子を指定します。

Payload

メッセージのペイロードを指定します。

Priority

メッセージの優先順位を指定します。

Recipients

デフォルトのキュー・サブスクライバに優先する受信者のリストを指定します。

SenderId

メッセージの元の送信者を識別します。

State

デキュー時のメッセージの状態を指定します。

TransactionGroup

デキューされたメッセージのトランザクション・グループを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

OracleAQMessageコンストラクタ

OracleAQMessageコンストラクタは、OracleAQMessageクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleAQMessage()
このコンストラクタは、OracleAQMessageクラスをインスタンス化します。

- OracleAQMessage(Object)
このコンストラクタは、ペイロードとして指定されたオブジェクトを使用してOracleAQMessageクラスをインスタンス化します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

OracleAQMessage()

このコンストラクタは、OracleAQMessageクラスをインスタンス化します。

宣言

// C#
public OracleAQMessage();

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

OracleAQMessage(Object)

このコンストラクタは、payloadとして指定されたObjectを使用してOracleAQMessageクラスをインスタンス化します。

宣言

// C#
public OracleAQMessage(Object payload);

パラメータ

- payload
payloadを指定するObject。次のタイプのいずれかです。

- byte[ ]

- IOracleCustomType

- OracleBinary

- OracleXmlType

- String

- XmlReader

例外

ArgumentException - 指定したpayload値のタイプが無効です。

備考

ODP.NETのAQ実装は現在、LOB属性を使用したユーザー定義タイプをサポートしていません。また、ユーザー定義タイプのその他のバリエーション(VARRAYやネスト表など)もサポートしていませんが、これはOracle Streams AQがこれらを元々サポートしていないためです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

OracleAQMessageプロパティ

OracleAQMessageプロパティを、表12-16にリストします。

表12-16 OracleAQMessageプロパティ

プロパティ

説明

Correlation

メッセージの識別情報を指定します。

Delay

エンキューされたメッセージがデキュー可能になるまでの期間(秒)を指定します。

DeliveryMode

デキューされたメッセージの配信モードを指定します。

DequeueAttempts

メッセージのデキューを試みた回数を戻します。

EnqueueTime

メッセージがエンキューされた時間を指定します。

ExceptionQueue

メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前を指定します。

Expiration

エンキューされたメッセージがデキュー可能な期間(秒)を指定します。

MessageId

メッセージ識別子を戻します。

OriginalMessageId

このメッセージを生成した、最後のキュー内のメッセージの識別子を指定します。

Payload

メッセージのペイロードを指定します。

Priority

メッセージの優先順位を指定します。

Recipients

デフォルトのキュー・サブスクライバに優先する受信者のリストを指定します。

SenderId

メッセージの元の送信者を識別します。

State

デキュー時のメッセージの状態を指定します。

TransactionGroup

デキューされたメッセージのトランザクション・グループを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

Correlation

このインスタンス・プロパティは、メッセージの識別情報を指定します。

宣言

// C#
public string Correlation {get;set;}

プロパティ値

メッセージの識別情報を指定するstring。

備考

メッセージのプロデューサは、エンキュー時にこのプロパティを設定できます。コンシューマは、OracleAQDequeueOptionsオブジェクトのCorrelationプロパティを設定することで、この識別情報を使用して特定のメッセージをデキューできます。Correlationに基づいたメッセージのデキューの詳細は、OracleAQDequeueOptionsクラスの「Correlation」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

- 「Correlation」

Delay

このインスタンス・プロパティは、エンキューされたメッセージがデキュー可能になるまでの期間(秒)を指定します。

宣言

// C#
public int Delay {get;set;}

プロパティ値

エンキューされたメッセージがデキュー可能になるまでの秒数を示すinteger。

例外

ArgumentException - 指定した値が0未満です。

備考

このプロパティにより、エンキューされたメッセージがただちに消費されるのを遅らせることができます。このプロパティの有効な値は次のとおりです。

- 正の整数 - 遅延時間(秒)を示します。

- 0 - メッセージがただちにデキュー可能になることを示します。

デフォルト値は0です。Delayプロパティは、バッファ・メッセージングではサポートされていません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

DeliveryMode

このインスタンス・プロパティは、デキューされたメッセージの配信モードを指定します。

宣言

// C#
public OracleAQMessageDeliveryMode DeliveryMode {get;}

プロパティ値

OracleAQMessageDeliveryModeの列挙値(OracleAQMessageDeliveryMode.PersistentまたはOracleAQMessageDeliveryMode.Buffered)。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

DequeueAttempts

このインスタンス・プロパティは、メッセージのデキューを試みた回数を戻します。

宣言

// C#
public int DequeueAttempts {get;}

プロパティ値

デキューの試行回数を示すinteger。

備考

このプロパティがOracleAQMessageで使用可能になるのは、メッセージがキューからデキューされた後です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

EnqueueTime

このインスタンス・プロパティは、メッセージがエンキューされた時間を指定します。

宣言

// C#
public DateTime EnqueueTime {get;}

プロパティ値

DateTimeオブジェクト。

備考

このプロパティが使用可能になるのは、メッセージがデキューされた後です。このプロパティにより、デキューされたメッセージのエンキュー時間が得られます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

ExceptionQueue

このインスタンス・プロパティは、メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前を指定します。

宣言

// C#
public string ExceptionQueue {get;set;}

プロパティ値

メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前。デフォルト値はnullです。

備考

このプロパティは、メッセージが期限切れになったか、デキューに失敗した回数がキューのmax_retries値を超えた場合に、そのメッセージの移動先となるキューを指定します。

このプロパティが設定されていないか、指定した例外キュー名が存在しない場合は、キュー表に関連付けられているデフォルトの例外キューが使用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

Expiration

このインスタンス・プロパティは、エンキューされたメッセージがデキュー可能な期間(秒)を指定します。

宣言

// C#
public int Expiration {get;set;}

プロパティ値

エンキューされたメッセージがデキュー可能な秒数を指定するinteger。

例外

ArgumentException - 指定した値が-1未満です。

備考

指定した値は、Delayプロパティに指定した値からのオフセットです。

このプロパティの有効な値は次のとおりです。

- 正の整数 - 有効期間(秒)を示します。

- -1 - メッセージが期限切れにならないことを示します。

デフォルト値は-1です。期限切れになったメッセージは、READY状態からEXPIRED状態に移行します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

MessageId

このインスタンス・プロパティは、メッセージ識別子を戻します。

宣言

// C#
public byte[] MessageId {get;}

プロパティ値

メッセージ識別子を指定するbyte[]。

備考

このプロパティが使用可能になるのは、エンキュー操作またはデキュー操作の後です。デキューされたバッファ・メッセージのMessageId値はnullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

OriginalMessageId

このインスタンス・プロパティは、このメッセージを生成した、最後のキュー内のメッセージの識別子を指定します。

宣言

// C#
public byte[] OriginalMessageId {get;}

プロパティ値

元のメッセージ識別子を指定するbyte[]。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

Payload

このインスタンス・プロパティは、メッセージのペイロードを指定します。

宣言

// C#
public Object Payload {get;set;}

プロパティ値

メッセージのペイロードを指定するObject。

例外

ArgumentException - 指定したオブジェクトは使用可能なタイプの1つではありません。

備考

様々なペイロード・タイプの詳細は、OracleAQQueueクラスの「MessageType」を参照してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

- 「MessageType」

Priority

このインスタンス・プロパティは、メッセージの優先順位を指定します。

宣言

// C#
public int Priority {get;set;}

プロパティ値

メッセージの優先順位を指定するinteger。

備考

デフォルト値は0です。このプロパティを有効にするためには、メッセージのエンキュー前に設定しておく必要があります。

値が小さければ小さいほど、メッセージの優先順位は高くなります。負の値も使用できます。

エンキューされたメッセージの優先順位は、優先順位に基づいてデキューを行う際に役立ちます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

Recipients

このインスタンス・プロパティは、デフォルトのキュー・サブスクライバに優先する受信者のリストを指定します。

宣言

// C#
public OracleAQAgent[] Recipients {get; set}

プロパティ値

OracleAQAgent[]。

備考

この受信者リストは、複数コンシューマ・キューにエンキューされるメッセージに対してのみ有効です。デキュー時のメッセージについては、受信者のリストは戻されません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

SenderId

このインスタンス・プロパティは、メッセージの元の送信者を識別します。

宣言

// C#
public OracleAQAgent SenderId {get; set}

プロパティ値

OracleAQAgentオブジェクト。

備考

送信者の識別は、8.1以上のデータベース互換性レベルで作成されたすべてのキュー表でサポートされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

State

このインスタンス・プロパティは、デキュー時のメッセージの状態を指定します。

宣言

// C#
public OracleAQMessageState State {get;}

プロパティ値

OracleAQMessageStateの列挙値。

備考

このプロパティが使用可能になるのは、メッセージがデキューされた後です。

デキュー・オプションのCorrelationを指定してデキューしたバッファ・メッセージの状態は、常にOracleAQMessageState.Readyです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

TransactionGroup

このインスタンス・プロパティは、デキューされたメッセージのトランザクション・グループを指定します。

宣言

// C#
public string TransactionGroup {get;}

プロパティ値

トランザクション・グループを指定するstring。

備考

このプロパティが設定されるのは、DequeueArrayをコールした後です。このプロパティは、Oracle Database 10g以上のデータベースを使用している場合にのみサポートされます。

1つのキューに属するメッセージをグループ化すると、1人のユーザーが一度に消費することのみが可能なセットを形成できます。そのためには、メッセージのグループ化が可能なキュー表にキューを作成する必要があります。1つのグループに属するメッセージはすべて、同じトランザクションで作成されたものである必要があります。また、1つのトランザクションで作成されたメッセージはすべて、同じグループに属します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageクラス

- OracleAQMessageメンバー

OracleAQMessageAvailableEventArgsクラス

OracleAQMessageAvailableEventArgsクラスは、OracleAQQueue.MessageAvailableイベントのイベント・データを提供します。

クラスの継承

System.Object

System.EventArgs

Oracle.DataAccess.Client.OracleAQMessageAvailableEventArgs

宣言

// C#
public sealed class OracleAQMessageAvailableEventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

このクラスは継承できません。

すべての継承プロパティおよびメソッドの詳細は、Microsoftの.NETドキュメントに用意されているドキュメントをお読みください。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsメンバー

- OracleAQMessageAvailableEventArgsプロパティ

OracleAQMessageAvailableEventArgsメンバー

OracleAQMessageAvailableEventArgsメンバーを、次の各表に示します。

OracleAQMessageAvailableEventArgsプロパティ

OracleAQMessageAvailableEventArgsプロパティを、表12-17にリストします。

表12-17 OracleAQMessageAvailableEventArgsプロパティ

プロパティ

説明

AvailableMessages

この通知が発生したメッセージの数を指定します。

ConsumerName

デキュー可能なメッセージのコンシューマの名前を示します。

Correlation

デキュー可能なメッセージのコンシューマの名前を示します。

Delay

エンキューされたメッセージがデキュー可能になるまでの期間(秒)を指定します。

DeliveryMode

メッセージの配信モードを指定します。

EnqueueTime

メッセージがエンキューされた時間を指定します。

ExceptionQueue

メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前を指定します。

Expiration

エンキューされたメッセージが期限切れになるまでのデキュー可能な期間(秒)を指定します。

MessageId

メッセージ識別子の配列を戻します。

NotificationType

通知のタイプ(通常、グループ化、タイムアウトなど)を示します。

OriginalMessageId

このメッセージを生成した、最後のキュー内のメッセージのIDを指定します。

Priority

メッセージの優先順位を指定します。

QueueName

デキューされるメッセージを含むキューの名前を示します。

SenderId

メッセージの元の送信者を識別します。

State

メッセージの状態を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

OracleAQMessageAvailableEventArgsプロパティ

OracleAQMessageAvailableEventArgsプロパティを、表12-18にリストします。

表12-18 OracleAQMessageAvailableEventArgsプロパティ

プロパティ

説明

AvailableMessages

この通知が発生したメッセージの数を指定します。

ConsumerName

デキュー可能なメッセージのコンシューマの名前を示します。

Correlation

デキュー可能なメッセージのコンシューマの名前を示します。

Delay

エンキューされたメッセージがデキュー可能になるまでの期間(秒)を指定します。

DeliveryMode

メッセージの配信モードを指定します。

EnqueueTime

メッセージがエンキューされた時間を指定します。

ExceptionQueue

メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前を指定します。

Expiration

エンキューされたメッセージが期限切れになるまでのデキュー可能な期間(秒)を指定します。

MessageId

メッセージ識別子の配列を戻します。

NotificationType

通知のタイプ(通常、グループ化、タイムアウトなど)を示します。

OriginalMessageId

このメッセージを生成した、最後のキュー内のメッセージのIDを指定します。

Priority

メッセージの優先順位を指定します。

QueueName

デキューされるメッセージを含むキューの名前を示します。

SenderId

メッセージの元の送信者を識別します。

State

メッセージの状態を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

AvailableMessages

このインスタンス・プロパティは、この通知が発生したメッセージの数を指定します。

宣言

// C#
public int AvailableMessages{get;}

プロパティ値

この通知が発生したメッセージの数を示すinteger。

備考

通常の通知タイプの場合、プロパティ値は1です。通知タイプは、OracleAQQueue.Notificationプロパティを使用して指定できます。

NotificationTypeがOracleAQNotificationType.Timeoutの場合、このプロパティは意味を持ちません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

ConsumerName

このプロパティは、デキュー可能なメッセージのコンシューマの名前を示します。

宣言

// C#
public string ConsumerName {get;}

プロパティ値

コンシューマの名前を示すstring。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

Correlation

このインスタンス・プロパティは、メッセージの識別情報を指定します。

宣言

// C#
public string Correlation {get;}

プロパティ値

メッセージの識別情報を指定するstring。

備考

このプロパティは、通知が発生したメッセージの相関関係を指定します。コンシューマは、OracleAQDequeueOptionsオブジェクトの「Correlation」プロパティを設定することで、この識別情報を使用して特定のメッセージをデキューできます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

- 「Correlation」

Delay

このインスタンス・プロパティは、エンキューされたメッセージがデキュー可能になるまでの期間(秒)を指定します。

宣言

// C#
public int Delay {get;}

プロパティ値

エンキューされたメッセージがデキュー可能になるまでの期間(秒)を示すinteger。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

DeliveryMode

このインスタンス・プロパティは、メッセージの配信モードを指定します。

宣言

// C#
public OracleAQMessageDeliveryMode DeliveryMode {get;}

プロパティ値

OracleAQMessageDeliveryModeの列挙値。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

EnqueueTime

このインスタンス・プロパティは、メッセージがエンキューされた時間を指定します。

宣言

// C#
public DateTime EnqueueTime {get;}

プロパティ値

DateTimeオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

ExceptionQueue

このインスタンス・プロパティは、メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前を指定します。

宣言

// C#
public string ExceptionQueue {get;}

プロパティ値

メッセージを正常に処理できない場合に、そのメッセージの移動先となるキューの名前。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

Expiration

このインスタンス・プロパティは、エンキューされたメッセージが期限切れになるまでのデキュー可能な期間(秒)を指定します。

宣言

// C#
public int Expiration {get;}

プロパティ値

エンキューされたメッセージがデキュー可能な期間(秒)を指定するinteger。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

MessageId

このインスタンス・プロパティは、メッセージ識別子の配列を戻します。

宣言

// ADO.NET 2.0: C#
public byte[ ][ ] MessageId{get;}

プロパティ値

通知の一部として受信したメッセージ識別子を指定するbyte[ ][ ]。

備考

このプロパティは、通知が発生したメッセージのメッセージ識別子を指定します。

通常の通知に対するMessageId配列のサイズは1です。通知グループ化タイプがOracleAQNotificationGroupingType.Lastの場合、グループ化通知に対するMessageId配列のサイズは1です。NotificationTypeがOracleAQNotificationType.Timeoutの場合、このプロパティは意味を持ちません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

NotificationType

このプロパティは、通知のタイプ(通常、グループ化、タイムアウトなど)を示します。

宣言

// C#
public OracleAQNotificationType NotificationType {get;}

プロパティ値

OracleAQNotificationTypeの列挙値。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

OriginalMessageId

このプロパティは、このメッセージを生成した、最後のキュー内のメッセージのIDを指定します。

宣言

// C#
public byte[] OriginalMessageId {get;}

プロパティ値

元のメッセージIDを指定するbyte[]。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

Priority

このインスタンス・プロパティは、メッセージの優先順位を指定します。

宣言

// C#
public int Priority {get;}

プロパティ値

メッセージの優先順位を指定するinteger。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

QueueName

このプロパティは、デキューされるメッセージを含むキューの名前を示します。

宣言

// C#
public string QueueName {get;}

プロパティ値

string

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

SenderId

このプロパティは、メッセージの元の送信者を識別します。

宣言

// C#
public OracleAQAgent SenderId {get;}

プロパティ値

OracleAQAgentオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

State

このインスタンス・プロパティは、メッセージの状態を指定します。

宣言

// C#
public OracleAQMessageState State {get;}

プロパティ値

OracleAQMessageStateの列挙値。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQMessageAvailableEventArgsクラス

- OracleAQMessageAvailableEventArgsメンバー

OracleAQMessageAvailableEventHandlerデリゲート

OracleAQMessageAvailableEventHandlerデリゲートは、OracleAQQueue.MessageAvailableイベントを処理するメソッドの署名を表します。

宣言

// C#
public delegate void OracleAQMessageAvailableEventHandler (object
sender,OracleAQMessageAvailableEventArg eventArgs);

パラメータ

- sender
イベントのソース

- eventArgs
イベント・データが含まれるOracleAQMessageAvailableEventArgsオブジェクト。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「MessageAvailableイベント」

OracleAQQueueクラス

OracleAQQueueオブジェクトは、キューを表します。

クラスの継承

System.Object

OracleAQQueue

宣言

// C#
public class OracleAQQueue : IDisposable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

キューとはメッセージのリポジトリであり、ユーザー・キューと例外キューのいずれかです。ユーザー・キューは通常のメッセージ処理に使用されます。なんらかの理由でメッセージを取り出して処理することができない場合、そのメッセージはユーザー・キューから例外キューに移動されます。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueメンバー

- OracleAQQueueコンストラクタ

- OracleAQQueue静的メソッド

- OracleAQQueueプロパティ

- OracleAQQueueパブリック・メソッド

- OracleAQQueueイベント

OracleAQQueueメンバー

OracleAQQueueメンバーを、次の各表に示します。

OracleAQQueueコンストラクタ

OracleAQQueueコンストラクタを、表12-19にリストします。

表12-19 OracleAQQueueコンストラクタ

コンストラクタ

説明

OracleAQQueueコンストラクタ

OracleAQQueueクラスの新規インスタンスをインスタンス化します(オーバーロード)。

OracleAQQueue静的メソッド

OracleAQQueue静的メソッドを、表12-20にリストします。

表12-20 OracleAQQueue静的メソッド

静的メソッド

説明

Listen

OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします(オーバーロード)。

OracleAQQueueプロパティ

OracleAQQueueプロパティを、表12-21にリストします。

表12-21 OracleAQQueueプロパティ

プロパティ

説明

Connection

キューに関連付けられたOracleConnectionオブジェクトを指定します。

DequeueOptions

キューからメッセージをデキューする際に使用するデキュー・オプションを指定します。

EnqueueOptions

キューにメッセージをエンキューするために使用されるエンキュー・オプションを指定します。

MessageType

このキューに関連付けられたキュー表のタイプを指定します。

名前

キューの名前を戻します。

Notification

MessageAvailableイベントを使用して登録する通知の様々な通知オプションを指定します。

NotificationConsumers

キューの受信メッセージについて非同期に通知を受ける、複数コンシューマ・キューのコンシューマの配列を指定します。

UdtTypeName

MessageTypeがOracleAQMessageType.UDTの場合にキューおよび対応するキュー表のベースとなるタイプ名を指定します。

OracleAQQueueパブリック・メソッド

OracleAQQueueパブリック・メソッドを、表12-22にリストします。

表12-22 OracleAQQueueパブリック・メソッド

パブリック・メソッド

説明

Dequeue

キューからメッセージをデキューします(オーバーロード)。

DequeueArray

キューから複数のメッセージをデキューします(オーバーロード)。

Dispose

オブジェクトにより割り当てられたリソースまたはメモリーを解除します

Enqueue

キューにメッセージをエンキューします(オーバーロード)。

EnqueueArray

キューに複数のメッセージをエンキューします(オーバーロード)。

Listen

listenConsumersに代わってキューのメッセージをリスニングします(オーバーロード)。

OracleAQQueueイベント

OracleAQQueueイベントを、表12-23にリストします。

表12-23 OracleAQQueueイベント

イベント名

説明

MessageAvailable Event

NotificationConsumersがキュー内のメッセージを使用できるようになると通知します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

OracleAQQueueコンストラクタ

OracleAQQueueコンストラクタは、OracleAQQueueクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleAQQueue(string)
このコンストラクタは、キュー名を使用してキュー・オブジェクトを初期化します。

- OracleAQQueue(string, OracleConnection)
このコンストラクタは、キュー名と接続を使用してキュー・オブジェクトを初期化します。キュー・オブジェクトの作成時に接続がオープンしている必要はありません。

- OracleAQQueue(string, OracleConnection, OracleAQMessageType)
このコンストラクタは、キュー名、接続およびメッセージ・タイプの列挙を使用してキュー・オブジェクトを初期化します。

- OracleAQQueue(string, OracleConnection, OracleAQMessageType, string)
このコンストラクタは、キュー名、接続、メッセージ・タイプの列挙およびUDTタイプ名を使用してキュー・オブジェクトを初期化します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueue(string)

このコンストラクタは、キュー名を使用してキュー・オブジェクトを初期化します。

宣言

// C#
public OracleAQQueue(string name);

パラメータ

- name
データベースで指定されているキューの名前。

例外

ArgumentNullException - キュー名がnullです。

ArgumentException - キュー名が空です。

備考

OracleAQQueueオブジェクトの作成操作では、データベースにキューが存在するかどうかはチェックされません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueue(string, OracleConnection)

このコンストラクタは、キュー名と接続を使用してキュー・オブジェクトを初期化します。キュー・オブジェクトの作成時に接続がオープンしている必要はありません。

宣言

// C#
public OracleAQQueue(string name, OracleConnection con);

パラメータ

- name
データベースで指定されているキューの名前。

- con
キューに接続するOracleConnectionオブジェクト。

例外

ArgumentNullException - 接続がnullか、キュー名がnullです。

ArgumentException - キュー名が空です。

備考

接続にはConnectionプロパティを使用してアクセスできます。この接続は、EnqueueやDequeueなどの操作APIをコールする前にオープンしておく必要があります。

OracleAQQueueオブジェクトの作成時には、データベースにキューが存在するかどうかはチェックされません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueue(string, OracleConnection, OracleAQMessageType)

このコンストラクタは、キュー名、接続およびメッセージ・タイプの列挙を使用してキュー・オブジェクトを初期化します。キュー・オブジェクトの作成時に接続がオープンしている必要はありません。

宣言

// C#
public OracleAQQueue(string name, OracleConnection con, OracleAQMessageType
messageType);

パラメータ

- name
データベースで指定されているキューの名前。

- con
キューへの接続に使用されるOracleConnectionオブジェクト。

- messageType
このキューに対してエンキューまたはデキューされるメッセージのタイプを指定するOracleAQMessageTypeの列挙。

例外

ArgumentNullException - 接続がnullか、キュー名がnullです。

ArgumentException - キュー名が空か、指定したメッセージ・タイプが無効です。

備考

OracleAQQueueオブジェクトの作成時には、データベースにキューが存在するかどうかはチェックされません。

messageTypeがUDTの場合、キュー・オブジェクトを使用する前にUdtTypeNameプロパティを設定しておく必要があります。udtTypeNameを指定することで、もう1つのコンストラクタ・オーバーロードを使用してキューを作成する方法もあります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueue(string, OracleConnection, OracleAQMessageType, string)

このコンストラクタは、キュー名、接続、メッセージ・タイプの列挙およびUDTタイプ名を使用してキュー・オブジェクトを初期化します。キュー・オブジェクトの作成時に接続がオープンしている必要はありません。

宣言

// C#
public OracleAQQueue(string name, OracleConnection con, OracleAQMessageType
messageType, string udtTypeName);

パラメータ

- name
データベースで指定されているキューの名前。

- con
キューへの接続に使用されるOracleConnectionオブジェクト。

- messageType
このキューに対してエンキューまたはデキューされるメッセージのタイプを指定するOracleAQMessageTypeの列挙。

- udtTypeName
messageTypeがUDTの場合に使用されるデータベース・オブジェクト・タイプの名前。udtTypeNameパラメータは、キューのベースとなるタイプを表します。

例外

ArgumentNullException - 接続がnullか、キュー名がnullです。

ArgumentException - キュー名が空か、指定したmessageTypeが無効です。

備考

OracleAQQueueオブジェクトの作成時には、データベースにキューが存在するかどうかはチェックされません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueue静的メソッド

OracleAQQueue静的メソッドを、表12-24にリストします。

表12-24 OracleAQQueue静的メソッド

静的メソッド

説明

Listen

OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします(オーバーロード)。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

リスニング

Listenメソッドは、OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします。

オーバーロード・リスト

- Listen(OracleConnection, OracleAQAgent[ ])
この静的メソッドは、OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします。

- Listen(OracleConnection, OracleAQAgent[ ], int)
この静的メソッドは、OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします。このメソッドには待機時間も指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Listen(OracleConnection, OracleAQAgent[ ])

この静的メソッドは、OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします。

宣言

// C#
public static OracleAQAgent Listen(OracleConnection con, OracleAQAgent[]
listenConsumers);

パラメータ

- con
OracleConnectionインスタンス。

- listenConsumers
リスニングされるコンシューマの配列。単一コンシューマ・キューの場合は、OracleAQAgentオブジェクトの名前をnullまたは空にする必要があります。

戻り値

OracleAQAgentオブジェクト。

例外

ArgumentNullException - conまたはlistenConsumersパラメータがnullです。

InvalidOperationException - 接続がオープンされていません。

備考

Listenは、いずれかのキューでコンシューマがメッセージを使用できるようになるまで複数のキューを監視する必要がある場合に便利です。OracleAQAgentオブジェクトのNameプロパティはコンシューマの名前を表し、Addressプロパティはキューの名前を表します。

このコールは、リスト内のコンシューマがメッセージを消費できるようになるまでコール元のスレッドをブロックします。このコールは、デキュー可能になったメッセージのコンシューマとキューを指定するOracleAQAgentオブジェクトを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Listen(OracleConnection, OracleAQAgent[ ], int)

この静的メソッドは、OracleAQAgentオブジェクトの配列に指定された1つ以上のコンシューマについて、1つ以上のキューでメッセージをリスニングします。OracleAQAgentオブジェクトのNameプロパティはコンシューマの名前を表し、OracleAQAgentオブジェクトのAddressプロパティはキューの名前を表します。

タイムアウトした場合、このメソッドはnullを戻します。

宣言

// C#
public static OracleAQAgent Listen(OracleConnection con, OracleAQAgent[]
listenConsumers, int waitTime);

パラメータ

- con
OracleConnectionインスタンス。

- listenConsumers
リスニングされるコンシューマの配列。単一コンシューマ・キューの場合は、OracleAQAgentオブジェクトの名前をnullまたは空にする必要があります。

- waitTime
待機時間(秒)。

戻り値

OracleAQAgentオブジェクト。

例外

ArgumentNullException - conまたはlistenConsumersパラメータがnullです。

InvalidOperationException - 接続がオープンされていません。

ArgumentException - waitTimeが-1未満です。

備考

Listenは、いずれかのキューでコンシューマがメッセージを使用できるようになるまで複数のキューを監視する必要がある場合に便利です。OracleAQAgentオブジェクトのNameプロパティはコンシューマの名前を表し、OracleAQAgentオブジェクトのAddressプロパティはキューの名前を表します。

waitTimeが-1の場合、待機時間は無限です。

このコールは、リスト内のコンシューマがメッセージを消費できるようになるまでコール元のスレッドをブロックします。このコールは、デキュー可能になったメッセージのコンシューマとキューを指定するOracleAQAgentオブジェクトを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueueプロパティ

OracleAQQueueプロパティを、表12-25にリストします。

表12-25 OracleAQQueueプロパティ

プロパティ

説明

Connection

キューに関連付けられたOracleConnectionオブジェクトを指定します。

DequeueOptions

キューからメッセージをデキューする際に使用するデキュー・オプションを指定します。

EnqueueOptions

キューにメッセージをエンキューするために使用されるエンキュー・オプションを指定します。

MessageType

このキューに関連付けられたキュー表のタイプを指定します。

名前

キューの名前を戻します。

Notification

MessageAvailableイベントを使用して登録する通知の様々な通知オプションを指定します。

NotificationConsumers

キューの受信メッセージについて非同期に通知を受ける、複数コンシューマ・キューのコンシューマの配列を指定します。

UdtTypeName

MessageTypeがOracleAQMessageType.UDTの場合にキューおよび対応するキュー表のベースとなるタイプ名を指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Connection

このプロパティは、キューに関連付けられたOracleConnectionオブジェクトを指定します。

宣言

// C#
public OracleConnection Connection {get; set;}

プロパティ値

キューに関連付けられた接続を示すOracleConnectionオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

この接続は、EnqueueやDequeueなどのメソッドをコールする前にオープンしておく必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

DequeueOptions

このインスタンス・プロパティは、キューからメッセージをデキューする際に使用するデキュー・オプションを指定します。

宣言

// C#
public OracleAQDequeueOptions DequeueOptions {get; set}

プロパティ値

OracleAQDequeueOptionsオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値は、デフォルトのプロパティ値を指定したOracleAQDequeueOptionsオブジェクトです。このプロパティをnullに設定すると、すべてのデキュー・オプションがデフォルト値にリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

EnqueueOptions

このインスタンス・プロパティは、キューにメッセージをエンキューするために使用されるエンキュー・オプションを指定します。

宣言

// C#
public OracleAQEnqueueOptions EnqueueOptions {get; set}

プロパティ値

OracleAQEnqueueOptionsオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

デフォルト値は、デフォルトのプロパティ値を指定したOracleAQEnqueueOptionsオブジェクトです。このプロパティをnullに設定すると、すべてのエンキュー・オプションがデフォルト値にリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

MessageType

このインスタンス・プロパティは、このキューに関連付けられたキュー表のタイプを指定します。

宣言

// C#
public OracleAQMessageType MessageType {get; set;}

プロパティ値

OracleAQMessageTypeの列挙値。

例外

ArgumentOutOfRangeException - 指定したタイプ値が無効です。

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

MessageTypeプロパティは、キューに対してエンキューまたはデキューされるメッセージ・ペイロードのタイプも決定します。MessageTypeに応じて様々なペイロードをエンキューできます。

表12-26に、様々なメッセージ・タイプで使用できるペイロード・タイプを示します。

表12-26 メッセージのタイプとペイロード

OracleAQQueue.MessageType

エンキュー可能なOracleAQMessage.Payloadタイプ

OracleAQMessageType.Raw

OracleBinary、byte[]

OracleAQMessageType.Xml

OracleXmlType、XmlReader、String(整形式のXML。整形式でない場合は例外が発生)

OracleAQMessageType.UDT

UDTカスタム・オブジェクト

表12-27に、デキューされたメッセージのペイロード・タイプを示します。

表12-27 デキューされたメッセージのペイロード・タイプ

OracleAQQueue.MessageType

DequeueOptions.ProviderSpecificType

デキューされたメッセージのOracleAQMessage.Payload

OracleAQMessageType.Xml

true

OracleXmlType

OracleAQMessageType.Xml

false

XmlReader

OracleAQMessageType.Raw

true

OracleBinary

OracleAQMessageType.Raw

false

Byte[]

OracleAQMessageType.UDT

N/A

UDTカスタム・オブジェクト

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

名前

このインスタンス・プロパティは、キューの名前を戻します。

宣言

// C#
public string Name {get;}

プロパティ値

キューの名前を示すstring。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

通知

このインスタンス・プロパティは、MessageAvailableイベントを使用して登録する通知の様々な通知オプションを指定します。

宣言

// C#
public OracleNotificationRequest Notification {get;}

プロパティ値

OracleNotificationRequestオブジェクトを指定します。このオブジェクトのプロパティを変更すると、通知動作を変更できます。

備考

このプロパティを使用すると、様々な通知オプションを変更できます。通知オプションは、MessageAvailableイベントへの登録の前に変更する必要があります。このプロパティの変更が再度可能になるのは、MessageAvailableイベントへの登録を解除した後です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

NotificationConsumers

このインスタンス・プロパティは、キューで受信したメッセージについて非同期に通知を受ける、複数コンシューマ・キューのコンシューマの配列を指定します。

宣言

// C#
public string[] NotificationConsumers {get; set;}

プロパティ値

通知配信の対象となるコンシューマ名文字列の配列を指定します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - MessageAvailable登録が有効です。

備考

コンシューマ名は大文字で指定する必要があります。この機能は、大文字の名前のキューのみに対応しています。

コンシューマのリストはMessageAvailableイベントで使用されます。イベントに登録する前にリストを設定しておく必要があります。このプロパティは、MessageAvailableイベントへの登録後は変更できません。変更が再度可能になるのは、MessageAvailableイベントへの登録を解除した後です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

UdtTypeName

このインスタンス・プロパティは、MessageTypeがOracleAQMessageType.UDTの場合にキューおよび対応するキュー表のベースとなるタイプ名を指定します。

宣言

// C#
public string UdtTypeName {get; set;}

プロパティ値

MessageTypeがOracleAQMessageType.UDTの場合のOracleユーザー定義タイプ名を指定します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

UdtTypeNameプロパティは、ペイロードのユーザー定義タイプ名に対応しています。ペイロードがユーザー定義タイプの場合、このプロパティを必ず指定する必要があります。他のペイロード・タイプについては、設定は不要です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueueパブリック・メソッド

OracleAQQueueパブリック・メソッドを、表12-28にリストします。

表12-28 OracleAQQueueパブリック・メソッド

パブリック・メソッド

説明

Dequeue

キューからメッセージをデキューします(オーバーロード)。

DequeueArray

キューから複数のメッセージをデキューします(オーバーロード)。

Dispose

オブジェクトにより割り当てられたリソースまたはメモリーを解除します

Enqueue

キューにメッセージをエンキューします(オーバーロード)。

EnqueueArray

キューに複数のメッセージをエンキューします(オーバーロード)。

Listen

listenConsumersに代わってキューのメッセージをリスニングします(オーバーロード)。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

デキュー

Dequeueメソッドは、キューからメッセージをデキューします。

オーバーロード・リスト

- Dequeue()
このインスタンス・メソッドは、インスタンスのDequeueOptionsを使用してキューからメッセージをデキューします。

- Dequeue(OracleAQDequeueOptions)
このインスタンス・メソッドは、指定されたデキュー・オプションを使用してキューからメッセージをデキューします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Dequeue()

このインスタンス・メソッドは、インスタンスのDequeueOptionsを使用してキューからメッセージをデキューするために使用します。

宣言

// C#
public OracleAQMessage Dequeue();

戻り値

デキューされたメッセージを表すOracleAQMessageインスタンス。

例外

InvalidOperationException - 接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

OracleException: タイムアウトした場合、「ORA-25228: queue_nameからメッセージをデキュー中に、タイムアウトまたはフェッチ終了になりました。」というメッセージとともに例外がスローされます。DequeueOptions.Waitが-1以外の値に設定されていると、タイムアウトが発生することがあります。

備考

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

デキューされたバッファ・メッセージのMessageId値は常にnullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Dequeue(OracleAQDequeueOptions)

このインスタンス・メソッドは、指定されたデキュー・オプションを使用してキューからメッセージをデキューします。

宣言

// C#
public OracleAQMessage Dequeue(OracleAQDequeueOptions dequeueOptions);

パラメータ

- dequeueOptions
OracleAQDequeueOptionsオブジェクト。

戻り値

デキューされたメッセージを表すOracleAQMessageインスタンス。

例外

InvalidOperationException - 接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

OracleException: タイムアウトした場合、「ORA-25228: queue_nameからメッセージをデキュー中に、タイムアウトまたはフェッチ終了になりました。」というメッセージとともに例外がスローされます。DequeueOptions.Waitが-1以外の値に設定されていると、タイムアウトが発生することがあります。

備考

指定したdequeueOptionsオブジェクトがnullの場合は、デキュー・オプションのデフォルト値が使用されます。この操作では、キュー・オブジェクトのDequeueOptionsプロパティは無視されます。

このメソッドをコールしても、キューのDequeueOptionsプロパティは変更されません。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

デキューされたバッファ・メッセージのMessageId値は常にnullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

DequeueArray

DequeueArrayメソッドは、キューから複数のメッセージをデキューします。

オーバーロード・リスト

- DequeueArray(int)
このインスタンス・メソッドは、インスタンスのDequeueOptionsを使用してキューから複数のメッセージをデキューします。

- DequeueArray(int, OracleAQDequeueOptions)
このインスタンス・メソッドは、指定されたデキュー・オプションを使用してキューから複数のメッセージをデキューします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

DequeueArray(int)

このインスタンス・メソッドは、インスタンスのDequeueOptionsを使用してキューから複数のメッセージをデキューします。

宣言

// C#
public OracleAQMessage[] DequeueArray(int dequeueCount);

パラメータ

- dequeueCount
デキューするメッセージの数を指定するinteger。

戻り値

デキューされたメッセージを表すOracleAQMessageインスタンスの配列。

例外

ArgumentOutOfRangeException - dequeueCountが0以下です。

InvalidOperationException - 接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

OracleException: タイムアウトした場合、「ORA-25228: queue_nameからメッセージをデキュー中に、タイムアウトまたはフェッチ終了になりました。」というメッセージとともに例外がスローされます。DequeueOptions.Waitが-1以外の値に設定されていると、タイムアウトが発生することがあります。

備考

このメソッドは、Oracle Database 10g以上のリリースでサポートされます。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

戻される配列のサイズは、dequeueCountより小さいことがあります。キューに存在するメッセージの実際の数によって異なります。

データベースのバージョンがOracle Database 11gリリース2 (11.2.0.4)以前の場合、DequeueArrayを使用して取得される永続OracleAQMessageオブジェクトのMessageIdプロパティは、常にnullです。

デキューされたバッファ・メッセージのMessageId値は、データベースのバージョンに関係なく、常にnullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

DequeueArray(int, OracleAQDequeueOptions)

このインスタンス・メソッドは、指定されたデキュー・オプションを使用してキューから複数のメッセージをデキューします。

宣言

// C#
public OracleAQMessage[] DequeueArray(int dequeueCount, OracleAQDequeueOptions dequeueOptions);

パラメータ

- dequeueCount
デキューするメッセージの数を指定するinteger。

- dequeueOptions
OracleAQDequeueOptionsオブジェクト。

戻り値

デキューされたメッセージを表すOracleAQMessageインスタンスの配列。

例外

ArgumentOutOfRangeException - dequeueCountが0以下です。

InvalidOperationException - 接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

OracleException: タイムアウトした場合、「ORA-25228: queue_nameからメッセージをデキュー中に、タイムアウトまたはフェッチ終了になりました。」というメッセージとともに例外がスローされます。DequeueOptions.Waitが-1以外の値に設定されていると、タイムアウトが発生することがあります。

備考

このメソッドは、Oracle Database 10gリリース1(10.1)以上のリリースでサポートされます。このメソッドをコールしても、キューのDequeueOptionsプロパティは変更されません。

指定したdequeueOptionsオブジェクトがnullの場合は、デキュー・オプションのデフォルト値が使用されます。この操作では、キュー・オブジェクトのDequeueOptionsプロパティは無視されます。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

戻される配列のサイズは、dequeueCountより小さいことがあります。キューに存在するメッセージの実際の数によって異なります。

データベースのバージョンがOracle Database 11gリリース2 (11.2.0.4)以前の場合、DequeueArrayを使用して取得される永続OracleAQMessageオブジェクトのMessageIdプロパティは、常にnullです。

デキューされたバッファ・メッセージのMessageId値は、データベースのバージョンに関係なく、常にnullです。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Dispose

このメソッドでは、オブジェクトにより割り当てられたリソースまたはメモリーを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

エンキュー

Enqueueインスタンス・メソッドは、キューにメッセージをエンキューします。

オーバーロード・リスト

- Enqueue(OracleAQMessage)
このインスタンス・メソッドは、インスタンスのEnqueueOptionsを使用してキューにメッセージをエンキューします。

- Enqueue(OracleAQMessage, OracleAQEnqueueOptions)
このインスタンス・メソッドは、指定されたエンキュー・オプションを使用してキューにメッセージをエンキューします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Enqueue(OracleAQMessage)

このインスタンス・メソッドは、インスタンスのEnqueueOptionsを使用してキューにメッセージをエンキューします。

宣言

// C#
public void Enqueue(OracleAQMessage message);

パラメータ

- message
OracleAQMessageオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - 接続がオープンされていません。

ArgumentNullException - メッセージ・パラメータがnullです。

ArgumentException - メッセージ・ペイロードはOracleXmlTypeで、OracleXmlTypeの作成に使用される接続はキューの接続とは異なります。

備考

Enqueueのコールが完了すると、エンキューされたメッセージのMessageIdに値が移入されます。エンキューされたバッファ・メッセージは、常にnullのMessageId値を持ちます。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Enqueue(OracleAQMessage, OracleAQEnqueueOptions)

このインスタンス・メソッドは、指定されたエンキュー・オプションを使用してキューにメッセージをエンキューします。

宣言

// C#
public void Enqueue(OracleAQMessage message, OracleAQEnqueueOptions enqueueOptions);

パラメータ

- message
OracleAQMessageオブジェクト。

- enqueueOptions
OracleAQEnqueueOptionsオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - 接続がオープンされていません。

ArgumentNullException - メッセージ・パラメータがnullです。

ArgumentException - メッセージ・ペイロードはOracleXmlTypeで、OracleXmlTypeの作成に使用される接続はキューの接続とは異なります。

備考

指定したenqueueOptionsオブジェクトがnullの場合は、エンキュー・オプションのデフォルト値が使用されます。この操作では、キュー・オブジェクトのEnqueueOptionsプロパティは無視されます。

Enqueueのコールが完了すると、エンキューされたメッセージのMessageIdに値が移入されます。エンキューされたバッファ・メッセージは、常にnullのMessageId値を持ちます。このメソッドをコールしても、キューのEnqueueOptionsプロパティは変更されません。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

EnqueueArray

EnqueueArrayインスタンス・メソッドは、キューに複数のメッセージをエンキューします。

オーバーロード・リスト

- EnqueueArray(OracleAQMessage[ ])
このインスタンス・メソッドは、インスタンスのEnqueueOptionsを使用してキューに複数のメッセージをエンキューします。

- EnqueueArray(OracleAQMessage[ ], OracleAQEnqueueOptions)
このインスタンス・メソッドは、指定されたエンキュー・オプションを使用してキューに複数のメッセージをエンキューします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

EnqueueArray(OracleAQMessage[ ])

このインスタンス・メソッドは、インスタンスのEnqueueOptionsを使用してキューに複数のメッセージをエンキューします。

宣言

// C#
public int EnqueueArray(OracleAQMessage[] messages);

パラメータ

- messages
OracleAQMessageオブジェクトの配列。

戻り値

実際にエンキューされたメッセージの数を表すinteger。

例外

ArgumentNullException - メッセージ・パラメータがnullです。

ArgumentException - 少なくとも1つのOracleAQMessage[]要素がnullであるか、少なくとも1つのOracleAQMessage[]要素にOracleXmlTypeのペイロードがあります。このペイロードは、キューの接続とは異なる接続を使用して作成されます。

InvalidOperationException - OracleAQMessage配列が空か、接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このメソッドはOracle Database 10g以上のリリースでサポートされます。Enqueueのコールが完了すると、エンキューされたメッセージのMessageIdプロパティに値が移入されます。エンキューされたバッファ・メッセージは、常にnullのMessageId値を持ちます。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

EnqueueArray(OracleAQMessage[ ], OracleAQEnqueueOptions)

このインスタンス・メソッドは、指定されたエンキュー・オプションを使用してキューに複数のメッセージをエンキューします。

宣言

// C#
public int EnqueueArray(OracleAQMessage[] messages, OracleAQEnqueueOptions
enqueueOptions);

パラメータ

- messages
OracleAQMessageオブジェクトの配列。

- enqueueOptions
OracleAQEnqueueOptionsオブジェクト。

戻り値

実際にエンキューされたメッセージの数を表すinteger。

例外

ArgumentNullException - メッセージ・パラメータがnullです。

ArgumentException - 少なくとも1つのOracleAQMessage[]要素がnullであるか、少なくとも1つのOracleAQMessage[]要素にOracleXmlTypeのペイロードがあります。このペイロードは、キューの接続とは異なる接続を使用して作成されます。

InvalidOperationException - OracleAQMessage配列が空か、接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このメソッドはOracle Database 10g以上のリリースでサポートされます。Enqueueのコールが完了すると、エンキューされたメッセージのMessageIdプロパティに値が移入されます。エンキューされたバッファ・メッセージは、常にnullのMessageId値を持ちます。このメソッドをコールしても、キューのEnqueueOptionsプロパティは変更されません。

指定したenqueueOptionsオブジェクトがnullの場合は、エンキュー・オプションのデフォルト値が使用されます。この操作では、キュー・オブジェクトのEnqueueOptionsプロパティは無視されます。

このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

リスニング

Listenメソッドは、listenConsumersに代わってキューのメッセージをリスニングします。

オーバーロード・リスト

- Listen(string[])
このメソッドは、listenConsumersに代わってキューのメッセージをリスニングします。

- Listen (string[], int)
このメソッドは、指定された時間にわたり、listenConsumersに代わってメッセージをリスニングします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Listen(string[])

このメソッドは、listenConsumersに代わってキューのメッセージをリスニングします。

宣言

// C#
public string Listen(string[] listenConsumers);

パラメータ

- listenConsumers
このキューでリスニングするコンシューマの配列。単一コンシューマ・キューの場合は、このパラメータをnullにする必要があります。

戻り値

string

例外

InvalidOperationException - 接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このコールは、listenConsumers配列内のコンシューマがメッセージを消費できるようになるまでコール元のスレッドをブロックします。このコールは、消費可能になったメッセージのコンシューマ名を表すstringを戻します。

Listenは、listenConsumersに指定された名前のコンシューマがキュー内のメッセージを使用できるようになるまで待つ必要がある場合に便利です。

例

次の例は、Listenメソッドの使用方法を示すものです。この例の最初の部分では、データベース・ユーザーSCOTTの必要なデータベース設定を実行しています。この例の2番目の部分は、メッセージがエンキューされるまでのスレッドのリスニング方法および待機方法を示しています。

-- Part I: Database setup required for this demo

------------------------------------------------------------------
-- SQL to grant appropriate privilege to database user, SCOTT
------------------------------------------------------------------
SQL> ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY Pwd4Sct;
User altered.
GRANT ALL ON DBMS_AQADM TO scott;

------------------------------------------------------------------
-- PLSQL to create queue-table and queue and start queue for SCOTT
------------------------------------------------------------------
BEGIN
DBMS_AQADM.CREATE_QUEUE_TABLE(
queue_table=>'scott.test_q_tab',
queue_payload_type=>'RAW',
multiple_consumers=>FALSE);

DBMS_AQADM.CREATE_QUEUE(
queue_name=>'scott.test_q',
queue_table=>'scott.test_q_tab');

DBMS_AQADM.START_QUEUE(queue_name=>'scott.test_q');
END;
/

------------------------------------------------------------------
-- PLSQL to stop queue and drop queue & queue-table from SCOTT
------------------------------------------------------------------
BEGIN
DBMS_AQADM.STOP_QUEUE('scott.test_q');

DBMS_AQADM.DROP_QUEUE(
queue_name => 'scott.test_q',
auto_commit => TRUE);

DBMS_AQADM.DROP_QUEUE_TABLE(
queue_table => 'scott.test_q_tab',
force => FALSE,
auto_commit => TRUE);
END;
/
-- End of Part I, database setup.

//Part II: Demonstrates using the Listen method
//C#
using System;
using System.Text;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Threading;

namespace ODPSample
{
/// <summary>
/// Demonstrates how a thread can listen and wait until a message is enqueued.
/// Once a message is enqueued, the listening thread returns from the
/// blocked Listen() method invocation and dequeues the message.
/// </summary>
class EnqueueDequeue
{
static bool s_bListenReturned = false;

static void Main(string[] args)
{
// Create connection
string constr = "user id=scott;password=Pwd4Sct;data source=oracle";
OracleConnection con = new OracleConnection(constr);

// Create queue
OracleAQQueue queue = new OracleAQQueue("scott.test_q", con);

try
{
// Open connection
con.Open();

// Set message type for the queue
queue.MessageType = OracleAQMessageType.Raw;

// Spawning a thread which will listen for a message
ThreadStart ts = new ThreadStart(TestListen);
Thread t = new Thread(ts);
t.Start();

System.Threading.Thread.Sleep(2000);

// Begin transaction for enqueue
OracleTransaction txn = con.BeginTransaction();

// Prepare message and RAW payload
OracleAQMessage enqMsg = new OracleAQMessage();
byte[] bytePayload = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
enqMsg.Payload = bytePayload;

// Prepare to Enqueue
queue.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;

Console.WriteLine("[Main Thread]   Enqueuing a message...");
Console.WriteLine("[Main Thread]   Enqueued Message Payload      : "
+ ByteArrayToString(enqMsg.Payload as byte[]));
Console.WriteLine();

// Enqueue message
queue.Enqueue(enqMsg);

// Enqueue transaction commit
txn.Commit();

// Loop till Listen returns
while (!s_bListenReturned)
System.Threading.Thread.Sleep(1000);
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
finally
{
// Close/Dispose objects
queue.Dispose();
con.Close();
con.Dispose();
}
}

static void TestListen()
{
// Create connection
string constr = "user id=scott;password=Pwd4Sct;data source=oracle";
OracleConnection conListen = new OracleConnection(constr);

// Create queue
OracleAQQueue queueListen = new OracleAQQueue("scott.test_q", conListen);

try
{
// Open the connection for Listen thread.
// Connection blocked on Listen thread can not be used for other DB
// operations
conListen.Open();

// Set message type for the queue
queueListen.MessageType = OracleAQMessageType.Raw;

// Listen
queueListen.Listen(null);

Console.WriteLine("[Listen Thread] Listen returned... Dequeuing...");

// Begin txn for Dequeue
OracleTransaction txn = conListen.BeginTransaction();

// Prepare to Dequeue
queueListen.DequeueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
queueListen.DequeueOptions.Wait = 10;

// Dequeue message
OracleAQMessage deqMsg = queueListen.Dequeue();
Console.WriteLine("[Listen Thread] Dequeued Message Payload      : "
+ ByteArrayToString(deqMsg.Payload as byte[]));

// Dequeue txn commit
txn.Commit();

// Allow the main thread to exit
s_bListenReturned = true;
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
finally
{
// Close/Dispose objects
queueListen.Dispose();
conListen.Close();
conListen.Dispose();
}
}

// Function to convert byte[] to string
static private string ByteArrayToString(byte[] byteArray)
{
StringBuilder sb = new StringBuilder();
for (int n = 0; n < byteArray.Length; n++)
{
sb.Append((int.Parse(byteArray[n].ToString())).ToString("X"));
}
return sb.ToString();
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

Listen (string[], int)

このメソッドは、指定された時間にわたり、listenConsumersに代わってメッセージをリスニングします。

宣言

// C#
public string Listen(string[] listenConsumers, int waitTime);

パラメータ

- listenConsumers
このキューでリスニングするコンシューマの配列。

- waitTime
待機時間(秒)。

戻り値

string

例外

InvalidOperationException - 接続がオープンされていません。

ArgumentException - waitTimeが-1未満です。

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

Listenは、listenConsumersに指定された名前のコンシューマがキュー内のメッセージを使用できるようになるまで待つ必要がある場合に便利です。

このコールは、listenConsumers配列内のコンシューマがメッセージを消費できるようになるまでコール元のスレッドをブロックします。このコールは、消費可能になったメッセージのコンシューマ名を表すstringを戻します。タイムアウトが発生した場合、このメソッドはnullを戻します。

単一コンシューマ・キューの場合は、listenConsumersパラメータをnullにする必要があります。そのような場合は空の文字列が戻されます。

waitTimeが-1の場合、待機時間は無限です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQQueueイベント

OracleAQQueueイベントを、表12-29にリストします。

表12-29 OracleAQQueueイベント

イベント名

説明

MessageAvailable Event

NotificationConsumersがキュー内のメッセージを使用できるようになると通知します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

MessageAvailable Event

このイベントは、NotificationConsumersがキュー内のメッセージを使用できるようになると通知されます。

宣言

// C#
public event OracleAQMessageAvailableEventHandler MessageAvailable;

イベント・データ

このイベント・ハンドラは、OracleAQMessageAvailableEventArgsオブジェクトを受信します。

例外

InvalidOperationException - 接続がオープンされていません。

備考

非同期通知は、8.1以上のデータベース互換性レベルで作成されたすべてのキュー表でサポートされます。

メッセージの可用性に関する通知を受信するために、クライアントはOracleAQMessageAvailableEventHandlerデリゲートを作成してこのイベントをリスニングする必要があります。デリゲートをこのイベントに追加するのは、必ずNotificationConsumersおよびNotificationプロパティを設定した後にしてください。

通知の登録が行われるのは、最初のデリゲートがイベントに追加された後です。最後のデリゲートがイベントから削除されると、通知の登録は解除されます。OracleAQQueueオブジェクトに設定された通知は、オブジェクトが破棄されると自動的に取り消されます。

Oracle Data Provider for .NETは、通知をリスニングするためのポートをオープンします。HAイベント、ロード・バランシング、データベース変更通知の各機能も同じポートを共有します。このポートは、アプリケーション構成ファイルまたはWeb構成ファイルにデータベース通知ポートを設定することで、一元的に構成できます。次のサンプル・コードでは、ポート番号1200を指定しています。

<configuration>
<oracle.dataaccess.client>
<settings>
<add name="DbNotificationPort" value="1200"/>
</settings>
</oracle.dataaccess.client>
</configuration>

構成ファイルが存在しないか、データベース通知ポートが指定されていない場合、ODP.NETは有効なポート番号をランダムに使用します。構成ファイルにデータベース通知ポートの値として-1を指定した場合も、ランダムなポート番号が要求されます。

ODP.NETと同じアプリケーション・ドメイン内で実行される通知リスナーは、指定のポート番号を使用してデータベースからの通知をリスニングします。通知リスナーが作成されるのは、アプリケーションがOracleAQQueue.MessageAvailableイベントに登録されたときです。1つの通知リスナーがすべての通知タイプをリスニングできます。通知リスナーは、アプリケーション・ドメインごとに1つだけ作成されます。

例

次の例は、アプリケーション通知を示しています。この例の最初の部分では、データベース・ユーザーSCOTTの必要なデータベース設定を実行しています。この例の2番目の部分は、キューのメッセージが使用可能になったときのアプリケーションへの通知方法を示しています。

-- Part I: Database setup required for this demo

------------------------------------------------------------------
-- SQL to grant appropriate privilege to database user, SCOTT
------------------------------------------------------------------
SQL> ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY Pwd4Sct;
User altered.
SQL> GRANT ALL ON DBMS_AQADM TO scott;

------------------------------------------------------------------
-- PLSQL to create queue-table and queue and start queue for SCOTT
------------------------------------------------------------------
BEGIN
DBMS_AQADM.CREATE_QUEUE_TABLE(
queue_table=>'scott.test_q_tab',
queue_payload_type=>'RAW',
multiple_consumers=>FALSE);

DBMS_AQADM.CREATE_QUEUE(
queue_name=>'scott.test_q',
queue_table=>'scott.test_q_tab');

DBMS_AQADM.START_QUEUE(queue_name=>'scott.test_q');
END;
/

------------------------------------------------------------------
-- PLSQL to stop queue and drop queue & queue-table from SCOTT
------------------------------------------------------------------
BEGIN
DBMS_AQADM.STOP_QUEUE('scott.test_q');

DBMS_AQADM.DROP_QUEUE(
queue_name => 'scott.test_q',
auto_commit => TRUE);

DBMS_AQADM.DROP_QUEUE_TABLE(
queue_table => 'scott.test_q_tab',
force => FALSE,
auto_commit => TRUE);
END;
/
-- End of Part I, database setup.

//Part II: Demonstrates application notification
//C#
using System;
using System.Text;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace ODPSample
{
/// <summary>
/// Demonstrates how the application can be notified when a message is
/// available in a queue.
/// </summary>
class Notification
{
static bool isNotified = false;

static void Main(string[] args)
{
// Create connection
string constr = "user id=scott;password=Pwd4Sct;data source=oracle";
OracleConnection con = new OracleConnection(constr);

// Create queue
OracleAQQueue queue = new OracleAQQueue("scott.test_q", con);

try
{
// Open connection
con.Open();

// Set message type for the queue
queue.MessageType = OracleAQMessageType.Raw;

// Add the event handler to handle the notification. The
// MsgReceived method will be invoked when a message is enqueued
queue.MessageAvailable +=
new OracleAQMessageAvailableEventHandler(Notification.MsgReceived);

Console.WriteLine("Notification registered...");

// Begin txn for enqueue
OracleTransaction txn = con.BeginTransaction();

Console.WriteLine("Now enqueuing message...");

// Prepare message and RAW payload
OracleAQMessage enqMsg = new OracleAQMessage();
byte[] bytePayload = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
enqMsg.Payload = bytePayload;

// Prepare to Enqueue
queue.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;

// Enqueue message
queue.Enqueue(enqMsg);

Console.WriteLine("Enqueued Message Payload      : "
+ ByteArrayToString(enqMsg.Payload as byte[]));
Console.WriteLine("MessageId of Enqueued Message : "
+ ByteArrayToString(enqMsg.MessageId));
Console.WriteLine();

// Enqueue txn commit
txn.Commit();

// Loop while waiting for notification
while (isNotified == false)
{
System.Threading.Thread.Sleep(2000);
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
finally
{
// Close/Dispose objects
queue.Dispose();
con.Close();
con.Dispose();
}
}

static void MsgReceived(object src, OracleAQMessageAvailableEventArgs arg)
{
try
{
Console.WriteLine("Notification Received...");
Console.WriteLine("QueueName : {0}", arg.QueueName);
Console.WriteLine("Notification Type : {0}", arg.NotificationType);

//following type-cast to "byte[]" is required only for .NET 1.x
byte[] notifiedMsgId = (byte[]) arg.MessageId[0];
Console.WriteLine("MessageId of Notified Message : "
+ ByteArrayToString(notifiedMsgId));
isNotified = true;
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}

// Function to convert byte[] to string
static private string ByteArrayToString(byte[] byteArray)
{
StringBuilder sb = new StringBuilder();
for (int n = 0; n < byteArray.Length; n++)
{
sb.Append((int.Parse(byteArray[n].ToString())).ToString("X"));
}
return sb.ToString();
}
}
}

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー

OracleAQDequeueModeの列挙

表12-30は、すべてのOracleAQDequeueModeの列挙値と、それぞれの列挙値の説明をリストします。

表12-30 OracleAQDequeueModeメンバー

メンバー名

説明

Browse

メッセージに対するロックを取得せずにメッセージを読み取ります。これはSELECT文に相当します。

Locked

メッセージを読み取り、メッセージに対する書込みロックを取得します。ロックは、トランザクションの間、存続します。これはSELECT FOR UPDATE文に相当します。

Remove

メッセージを読み取り、更新または削除します。これがデフォルトです。

メッセージは、保存に関するプロパティに基づいて、キュー表に保存されます

RemoveNoData

メッセージの受信を確認しますが、実際のメッセージの内容は配信しません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleAQDequeueOptionsクラス」

- 「DequeueMode」

OracleAQMessageDeliveryModeの列挙

OracleAQMessageDeliveryModeの列挙型は、メッセージの配信モードを指定します。

表12-31は、すべてのOracleAQMessageDeliveryModeの列挙値と、それぞれの列挙値の説明をリストします。

表12-31 OracleAQMessageDeliveryModeメンバー

メンバー名

説明

Buffered

バッファ・メッセージを示します。

エンキューおよびデキューのバッファ・メッセージング操作はIMMEDIATE可視性モードで行う必要があります。つまり、これらの操作は別のトランザクションの一部にはできません。バッファ・メッセージをエンキューする際にdelayは指定できません。

デキューするアプリケーションは、デキューの対象として、永続メッセージのみ、バッファ・メッセージのみ、両方のタイプのいずれかを選択できます。

バッファ・メッセージを問い合せるにはAQ$Queue_Table_Nameビューを使用します。バッファ・メッセージはIN-MEMORYとSPILLEDのいずれかの状態で表示されます。

バッファ・メッセージングは、Oracle Database 10gリリース2(10.2)以上のリリースでサポートされます。バッファ・メッセージングでは受信者リストがサポートされます。

バッファ・メッセージングは、8.1以上のデータベース互換性レベルで作成されたすべてのキュー表でサポートされます。Oracle Database 11gリリース1(11.1)では、トランザクション・グループ化キューと配列エンキューはバッファ・メッセージに対してサポートされません。配列エンキューの方法を使用してバッファ・メッセージをエンキューすることは可能ですが、配列サイズを1に設定する必要があります。配列デキューはバッファ・メッセージングに対してサポートされませんが、配列サイズを1に設定すれば配列デキューの方法を使用できます。

バッファ・メッセージングは永続メッセージングより高速です。Oracle Streams AQの永続メッセージングの信頼性とトランザクション・サポートを必要としないアプリケーションには、バッファ・メッセージングを使用してください。

Persistent

永続メッセージを示します。

永続メッセージングは、信頼性とトランザクション・サポートを保証します。バッファ・メッセージングより低速です。

PersistentOrBuffered

永続メッセージまたはバッファ・メッセージを示します。

メッセージがPersistentかBufferedかに関係なくコンシューマがメッセージをデキューする場合は、これをDequeue()とともに使用します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleAQDequeueOptionsクラス」

- 「DeliveryMode」

OracleAQMessageStateの列挙

OracleAQMessageStateの列挙型は、デキュー時のメッセージの状態を示します。

表12-32は、すべてのOracleAQMessageStateの列挙値と、それぞれの列挙値の説明をリストします。

表12-32 OracleAQMessageStateメンバー

メンバー名

説明

Expired

メッセージが例外キューに移動されたことを示します。

Processed

メッセージが処理され、保存されたことを示します。

Ready

メッセージを処理する準備ができたことを示します。

Waiting

メッセージの遅延時間に達していないことを示します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleAQMessageクラス」

- 「State」

OracleAQMessageTypeの列挙

OracleAQMessageTypeの列挙型は、メッセージのペイロード・タイプを指定します。

表12-33は、すべてのOracleAQMessageTypeの列挙値と、それぞれの列挙値の説明をリストします。

表12-33 OracleAQMessageTypeメンバー

メンバー名

説明

Raw

RAWメッセージ・タイプを示します。

メッセージをエンキューするには、ペイロードのデータ型がOracleBinaryとbyte[]のいずれかである必要があります。

UDT

Oracle UDTメッセージ・タイプを示します。

ODP.NETのAQ実装は現在、LOB属性を使用したユーザー定義タイプをサポートしていません。また、ユーザー定義タイプのその他のバリエーション(VARRAYやネスト表など)もサポートしていませんが、これはOracle Streams AQがこれらを元々サポートしていないためです。

XML

XMLメッセージ・タイプを示します。

メッセージをエンキューするには、ペイロードのデータ型がOracleXmlType、XmlReader、Stringのいずれかである必要があります。データ型がStringの場合は、整形式のXMLである必要があります(整形式でない場合は、メッセージのエンキュー時に例外が発生します)。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleAQQueueクラス」

- 「OracleAQQueueコンストラクタ」

- 「MessageType」

OracleAQNavigationModeの列挙

表12-34は、すべてのOracleAQNavigationModeの列挙値と、それぞれの列挙値の説明をリストします。

表12-34 OracleAQNavigationModeメンバー

メンバー名

説明

FirstMessage

検索条件に一致した最初の使用可能なメッセージを取り出します。その結果、位置がキューの先頭にリセットされます。

FirstMessageMultiGroup

DequeueArrayへのコールにより、キューの開始位置がリセットされ、利用可能で検索基準に一致するメッセージがデキューされることを示します。メッセージはdequeueCount制限に達するまでデキューされます。デキューされたメッセージは、異なるトランザクション・グループに属する場合があります。

異なるトランザクション・グループのメッセージ同士を区別するには、OracleAQMessage.TransactionGroupプロパティを使用します。同じトランザクション・グループのメッセージのOracleAQMessage.TransactionGroup プロパティ値は、すべて同じ値になります。

NextMessage

検索条件に一致した次の使用可能なメッセージを取り出します。前のメッセージがメッセージ・グループに属する場合は、検索条件に一致し、かつそのメッセージ・グループに属する、次の使用可能なメッセージが取り出されます。

NextMessageMultiGroup

DequeueArrayへのコールにより、利用可能で検索基準に一致する次のメッセージ・セットがデキューされることを示します。メッセージはdequeueCount制限に達するまでデキューされます。デキューされたメッセージは、異なるトランザクション・グループに属する場合があります。

異なるトランザクション・グループのメッセージ同士を区別するには、OracleAQMessage.TransactionGroupプロパティを使用します。同じトランザクション・グループのメッセージのOracleAQMessage.TransactionGroup プロパティ値は、すべて同じ値になります。

NextTransaction

現行のトランザクション・グループにメッセージが残っていればスキップし、次のトランザクション・グループの最初のメッセージを取り出します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleAQDequeueOptionsクラス」

- 「NavigationMode」

OracleAQNotificationGroupingTypeの列挙

OracleAQNotificationGroupingTypeの列挙型は、通知グループ化タイプを指定します。

表12-35は、すべてのOracleAQNotificationGroupingTypeの列挙値と、それぞれの列挙値の説明をリストします。

表12-35 OracleAQNotificationGroupingTypeメンバー

メンバー名

説明

Last

通知グループ内の最後のメッセージの詳細のみが提供されることを示します。

Summary

通知グループ内のすべてのメッセージのSummaryが提供されることを示します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleNotificationRequestクラス」

OracleAQNotificationTypeの列挙

OracleAQNotificationTypeの列挙型は、受信した通知の通知タイプを指定します。

表12-36は、すべてのOracleAQNotificationTypeの列挙値と、それぞれの列挙値の説明をリストします。

表12-36 OracleAQNotificationTypeメンバー

メンバー名

説明

Group

受信した通知がグループ化通知であることを示します。

Regular

受信した通知が通常の通知であることを示します。

Timeout

受信した通知がタイムアウトにより発生したことを示します。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

OracleAQVisibilityModeの列挙

表12-37は、すべてのOracleAQVisibilityModeの列挙値と、それぞれの列挙値の説明をリストします。

表12-37 OracleAQVisibilityModeメンバー

メンバー名

説明

Immediate

エンキュー操作またはデキュー操作が現行トランザクションの一部ではないことを示します。操作がそれ自体でトランザクションを形成します。

OnCommit

エンキュー操作またはデキュー操作が現行トランザクションの一部であることを示します。これがデフォルトです。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

13 Oracle Data Provider for .NETタイプのクラス

この章では、Oracle Data Provider for .NETによって提供されているラージ・オブジェクトおよびREF CURSORオブジェクトについて説明します。

この章の内容は次のとおりです。

- ODP.NETタイプ(ODP.NET LOBオブジェクト)は、次のオブジェクト・クラスで構成されます。

- OracleBFileクラス

- OracleBlobクラス

- OracleClobクラス

- OracleRefCursorクラス

すべてのODP.NET LOBオブジェクト・パラメータにおいて、オフセットはすべて0ベースです。

OracleBFileクラス

OracleBFileは、BFILEデータへの参照が含まれるオブジェクトです。このオブジェクトは、BFILEに対して操作を実行するためのメソッドを提供します。

注意:
OracleBFileは、Oracle8.x以降に対して実行されるアプリケーションでサポートされています。

クラスの継承

System.Object

System.MarshalByRefObject

System.IO.Stream

Oracle.DataAccess.Types. OracleBFile

宣言

// C#
public sealed class OracleBFile : Stream, ICloneable, INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleBFileは、Oracle8.x以降に対して実行されるアプリケーションでサポートされています。

例

// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.

CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';

*/

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleBFileSample
{
static void Main()
{
// Create MYDIR directory object as indicated previously and create a file
// MyFile.txt with the text ABCDABC under C:\TEMP directory.
// Note that the byte representation of the ABCDABC is 65666768656667

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBFile bFile = new OracleBFile(con, "MYDIR", "MyFile.txt");

// Open the OracleBFile
bFile.OpenFile();

// Read 7 bytes into readBuffer, starting at buffer offset 0
byte[] readBuffer = new byte[7];
int bytesRead = bFile.Read(readBuffer, 0, 7);

// Prints "bytesRead  = 7"
Console.WriteLine("bytesRead  = " + bytesRead);

// Prints "readBuffer = 65666768656667"
Console.Write("readBuffer = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

// Search for the 2nd occurrence of a byte pattern {66,67}
// starting from byte offset 1 in the OracleBFile
byte[] pattern = new byte[2] {66, 67};
long posFound = bFile.Search(pattern, 1, 2);

// Prints "posFound   = 6"
Console.WriteLine("posFound   = " + posFound);

// Close the OracleBFile
bFile.CloseFile();

bFile.Close();
bFile.Dispose();

con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileメンバー

- OracleBFileコンストラクタ

- OracleBFile静的フィールド

- OracleBFile静的メソッド

- OracleBFileインスタンス・プロパティ

- OracleBFileインスタンス・メソッド

OracleBFileメンバー

OracleBFileメンバーは次の表にリスト表示されています。

OracleBFileコンストラクタ

OracleBFileコンストラクタを、表13-1にリストします。

表13-1 OracleBFileコンストラクタ

コンストラクタ

説明

OracleBFileコンストラクタ

OracleBFileクラスのインスタンスを作成します(オーバーロード)

OracleBFile静的フィールド

OracleBFile静的フィールドを、表13-2にリストします。

表13-2 OracleBFile静的フィールド

フィールド

説明

MaxSize

静的フィールドはBFILEが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します。

Null

OracleBFileインスタンスの値に割り当てることができるNULL値を表します

OracleBFile静的メソッド

OracleBFile静的メソッドを、表13-3にリストします。

表13-3 OracleBFile静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleBFileインスタンス・プロパティ

OracleBFileインスタンス・プロパティを、表13-4にリストします。

表13-4 OracleBFileインスタンス・プロパティ

プロパティ

説明

CanRead

LOBストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作が実行可能かどうかを示します

CanWrite

LOBオブジェクトが書込みをサポートしているかどうかを示します

Connection

BFILEからの読取りに使用する接続を示します

DirectoryName

BFILEのディレクトリの別名を示します

FileExists

指定されたBFILEが存在するかどうかを示します

FileName

BFILEの名前を示します

IsEmpty

BFILEが空かどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsOpen

BFILEがこのインスタンスによってオープンされているかどうかを示します

Length

BFILEデータのサイズをバイト数で示します

Position

LOBストリームの現行の読取り位置を示します

Value

データをBFILEの最初のバイトから開始するバイト配列として戻します

OracleBFileインスタンス・メソッド

OracleBFileインスタンス・メソッドを、表13-5にリストします。

表13-5 OracleBFileインスタンス・メソッド

メソッド

説明

BeginRead

System.IO.Streamから継承します

BeginWrite

サポート対象外

Clone

OracleBFileオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、ストリームに関連するすべてのリソースを解除します

CloseFile

現行のBFILEインスタンスが参照するBFILEをクローズします

Compare

2つのOracleBFileが参照するデータを比較します

CreateObjRef

System.MarshalByRefObjectからの継承

CopyTo

指定どおりにデータをコピーします(オーバーロード)

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndRead

System.IO.Streamから継承します

EndWrite

サポート対象外

Equals

System.Objectからの継承(オーバーロード)

Flush

サポート対象外

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

IsEqual

LOB参照を比較します

OpenFile

FileNameおよびDirectoryNameによって指定されたBFILEをオープンします

Read

OracleBFileインスタンスから指定バイト数を読み取り、bufferに移入します

ReadByte

System.IO.Streamから継承します

Search

OracleBFileの現行インスタンスのバイナリ・パターンを検索します

Seek

現行のLOBストリームに位置を設定します

SetLength

サポート対象外

ToString

System.Objectからの継承

Write

サポート対象外

WriteByte

サポート対象外

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileメンバー

OracleBFileコンストラクタ

OracleBFileコンストラクタでは、OracleBFileクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleBFile(OracleConnection)
このコンストラクタでは、OracleBFileクラスのインスタンスをOracleConnectionオブジェクトとともに作成します。

- OracleBFile(OracleConnection, string, string)
このコンストラクタでは、OracleConnectionオブジェクト付きOracleBFileクラスのインスタンス、BFILEの位置およびBFILEの名前を作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBFile(OracleConnection)

このコンストラクタでは、OracleBFileクラスのインスタンスをOracleConnectionオブジェクトとともに作成します。

宣言

// C#
public OracleBFile(OracleConnection con);

パラメータ

- con
OracleConnectionオブジェクト

例外

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBFile(OracleConnection, string, string)

このコンストラクタでは、OracleConnectionオブジェクト付きOracleBFileクラスのインスタンス、BFILEの位置およびBFILEの名前を作成します。

宣言

// C#
public OracleBFile(OracleConnection con, string directoryName, string
fileName);

パラメータ

- con
OracleConnectionオブジェクト

- directoryName
CREATE DIRECTORY SQL文によって作成されたディレクトリの別名

- fileName
外部LOBの名前

例外

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

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

OracleBFileインスタンスを使用してBFILE列をSQL INSERT文の入力パラメータとして初期化するには、directoryNameおよびfileNameを正しく設定する必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBFile静的フィールド

OracleBFile静的フィールドを、表13-6にリストします。

表13-6 OracleBFile静的フィールド

フィールド

説明

MaxSize

静的フィールドはBFILEが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します。

Null

OracleBFileインスタンスの値に割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

MaxSize

この静的フィールドはBFILEが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します。

宣言

// C#
public static readonly Int64 MaxSize = 4294967295;

備考

このフィールドは操作が許容最大長を超えているかどうかをチェックするコードに便利です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Null

この静的フィールドは、OracleBFileインスタンスの値に割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleBFile Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBFile静的メソッド

OracleBFile静的メソッドを、表13-7にリストします。

表13-7 OracleBFile静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBFileインスタンス・プロパティ

OracleBFileインスタンス・プロパティを、表13-8にリストします。

表13-8 OracleBFileインスタンス・プロパティ

プロパティ

説明

CanRead

LOBストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作が実行可能かどうかを示します

CanWrite

LOBオブジェクトが書込みをサポートしているかどうかを示します

Connection

BFILEからの読取りに使用する接続を示します

DirectoryName

BFILEのディレクトリの別名を示します

FileExists

指定されたBFILEが存在するかどうかを示します

FileName

BFILEの名前を示します

IsEmpty

BFILEが空かどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsOpen

BFILEがこのインスタンスによってオープンされているかどうかを示します

Length

BFILEデータのサイズをバイト数で示します

Position

LOBストリームの現行の読取り位置を示します

Value

データをBFILEの最初のバイトから開始するバイト配列として戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CanRead

Streamをオーバーライドします。

このインスタンス・プロパティではLOBストリームが読取り可能かどうかを示します。

宣言

// C#
public override bool CanRead{get;}

プロパティ値

LOBストリームが読取り可能の場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CanSeek

Streamをオーバーライドします。

このインスタンス・プロパティでは、順方向および逆方向シーク操作が実行可能かどうかを示します。

宣言

// C#
public override bool CanSeek{get;}

プロパティ値

順方向および逆方向シーク操作が実行可能の場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CanWrite

Streamをオーバーライドします。

このインスタンス・プロパティでは、LOBオブジェクトが書込みをサポートしているかどうかを示します。

宣言

// C#
public override bool CanWrite{get;}

プロパティ値

BFILEは読取り専用

備考

BFILEは読取り専用であるため、ブール値は常にfalseです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Connection

このインスタンス・プロパティでは、BFILEからの読取りに使用する接続を示します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

OracleConnectionのオブジェクト

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

DirectoryName

このインスタンス・プロパティでは、BFILEのディレクトリの別名を示します。

宣言

// C#
public string DirectoryName {get;set;}

プロパティ値

string

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - BFILEがオープンされているときに変更されたDirectoryNameの値。

備考

DirectoryNameの最大長は30バイトです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

FileExists

このインスタンス・プロパティでは、DirectoryNameおよびFileNameによって指定されたBFILEが存在するかどうかを示します。

宣言

// C#
public bool FileExists {get;}

プロパティ値

bool

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

接続、ファイル名およびディレクトリ名が指定されていない場合は、このプロパティはデフォルトでfalseに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

FileName

このインスタンス・プロパティでは、BFILEの名前を示します。

宣言

// C#
public string FileName {get;set}

プロパティ値

BFILE名を含むstring

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - BFILEがオープンされているときに変更されたDirectoryNameの値。

備考

FileNameの最大長は255バイトです。

BFILEオブジェクトがオープンされているときにFileNameプロパティを変更すると例外が発生します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

IsEmpty

このインスタンス・プロパティでは、BFILEが空かどうかを示します。

宣言

// C#
public bool IsEmpty {get;}

プロパティ値

bool

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

IsOpen

このインスタンス・プロパティでは、BFILEがこのインスタンスによってオープンされているかどうかを示します。

宣言

// C#
public bool IsOpen {get;}

プロパティ値

bool

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Length

Streamをオーバーライドします。

このインスタンス・プロパティでは、BFILEデータのサイズをバイト数で示します。

宣言

// C#
public override Int64 Length {get;}

プロパティ値

Int64

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Position

Streamをオーバーライドします。

このインスタンスではLOBストリームの現行の読取り位置を示します。

宣言

// C#
public override Int64 Position{get; set;}

プロパティ値

読取り位置を示すInt64値

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - 値は0未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Value

このインスタンス・プロパティでは、データをBFILEの最初のバイトを起点とするバイト配列として戻します。

宣言

// C#
public byte[] Value{get;}

プロパティ値

バイト配列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

データ長はバイト配列の最大長によって制限されています。Positionプロパティの現行値は使用または変更されません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBFileインスタンス・メソッド

OracleBFileインスタンス・メソッドを、表13-9にリストします。

表13-9 OracleBFileインスタンス・メソッド

メソッド

説明

BeginRead

System.IO.Streamから継承します

BeginWrite

サポート対象外

Clone

OracleBFileオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、ストリームに関連するすべてのリソースを解除します

CloseFile

現行のBFILEインスタンスが参照するBFILEをクローズします

Compare

2つのOracleBFileが参照するデータを比較します

CreateObjRef

System.MarshalByRefObjectからの継承

CopyTo

指定どおりにデータをコピーします(オーバーロード)

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndRead

System.IO.Streamから継承します

EndWrite

サポート対象外

Equals

System.Objectからの継承(オーバーロード)

Flush

サポート対象外

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

IsEqual

LOB参照を比較します

OpenFile

FileNameおよびDirectoryNameによって指定されたBFILEをオープンします

Read

OracleBFileインスタンスから指定バイト数を読み取り、bufferに移入します

ReadByte

System.IO.Streamから継承します

Search

OracleBFileの現行インスタンスのバイナリ・パターンを検索します

Seek

現行のLOBストリームに位置を設定します

SetLength

サポート対象外

ToString

System.Objectからの継承

Write

サポート対象外

WriteByte

サポート対象外

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Clone

このインスタンス・メソッドではOracleBFileオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleBFileオブジェクト

実装

ICloneable

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

例

// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.

CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';

*/

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class CloneSample
{
static void Main()
{
// Create MYDIR directory object as indicated previously and create a file
// MyFile.txt with the text ABCDABC under C:\TEMP directory.
// Note that the byte representation of the ABCDABC is 65666768656667

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBFile bFile1 = new OracleBFile(con, "MYDIR", "MyFile.txt");

// Prints "bFile1.Position = 0"
Console.WriteLine("bFile1.Position = " + bFile1.Position);

// Set the Position before calling Clone()
bFile1.Position = 1;

// Clone the OracleBFile
OracleBFile bFile2 = (OracleBFile) bFile1.Clone();

// Prints "bFile2.Position = 1"
Console.WriteLine("bFile2.Position = " + bFile2.Position);

bFile1.Close();
bFile1.Dispose();

bFile2.Close();
bFile2.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Close

Streamをオーバーライドします。

このインスタンス・メソッドは現行のストリームをクローズし、それに関連する任意のリソースを解放します。

宣言

// C#
public override void Close();

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CloseFile

このインスタンス・メソッドでは、現行のBFILEインスタンスが参照するBFILEをクローズします。

宣言

// C#
public void CloseFile();

備考

BFILEが存在しているがオープンされていない場合は、エラーは戻されません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Compare

このインスタンス・メソッドでは、2つのOracleBFileが参照するデータを比較します。

宣言

// C#
public int Compare(Int64 src_offset, OracleBFile obj, Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
現行インスタンスのオフセット

- obj
指定されたOracleBFileオブジェクト

- dst_offset
OracleBFileオブジェクトのオフセット

- amount
比較するバイト数

戻り値

次の数を戻します。

- ゼロ未満:現行のインスタンスのBFILEデータが指定されたBFILEデータの値より小さい場合

- ゼロ:どちらのBFILEにも同じデータが格納されている場合

- ゼロ超過:現行のインスタンスのBFILEデータが指定されたBFILEデータの値より大きい場合

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountが0より小さい場合。

備考

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

BFILEは、操作前にOpenFileを使用してオープンされている必要があります。

例

// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.

CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';

*/

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class CompareSample
{
static void Main()
{
// Create MYDIR directory object as indicated previously and create a file
// MyFile.txt with the text ABCDABC under C:\TEMP directory.
// Note that the byte representation of the ABCDABC is 65666768656667

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBFile bFile1 = new OracleBFile(con, "MYDIR", "MyFile.txt");
OracleBFile bFile2 = new OracleBFile(con, "MYDIR", "MyFile.txt");

// Open the OracleBFiles
bFile1.OpenFile();
bFile2.OpenFile();

// Compare 2 bytes from the 1st byte of bFile1 and
// the 5th byte of bFile2 onwards
int result = bFile1.Compare(1, bFile2, 5, 2);

// Prints "result = 0" (Indicates the data is identical)
Console.WriteLine("result = " + result);

// Close the OracleBFiles
bFile1.CloseFile();
bFile2.CloseFile();

bFile1.Close();
bFile1.Dispose();

bFile2.Close();
bFile2.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo

CopyToでは、現行のインスタンスから指定されたオブジェクトにデータをコピーします。

オーバーロード・リスト:

- CopyTo(OracleBlob)
このインスタンス・メソッドでは、現行のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

- CopyTo(OracleBlob, Int64)
このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから指定されたOracleBlobオブジェクトに、指定されたオフセット先とともにコピーします。

- CopyTo(Int64, OracleBlob, Int64, Int64)
このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから、指定されたソース・オフセット、オフセット先および文字数とともに指定されたOracleBlobオブジェクトにコピーします。

- CopyTo(OracleClob)
このインスタンス・メソッドでは、現行のOracleBFileインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。

- CopyTo(OracleClob, Int64)
このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから指定されたOracleClobオブジェクトに指定されたオフセット先とともにコピーします。

- CopyTo(Int64, OracleClob, Int64, Int64)
このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから指定されたOracleClobオブジェクトに指定されたソース・オフセット、オフセット先および文字数とともにコピーします。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo(OracleBlob)

このインスタンス・メソッドでは、現行のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

宣言

// C#
public Int64 CopyTo(OracleBlob obj);

パラメータ

- obj
データのコピー先のOracleBlobオブジェクト

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo(OracleBlob, Int64)

このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから指定されたOracleBlobオブジェクトに、指定されたオフセット先とともにコピーします。

宣言

// C#
public Int64 CopyTo(OracleBlob obj, Int64 dst_offset);

パラメータ

- obj
データのコピー先のOracleBlobオブジェクト

- dst_offset
OracleBlobオブジェクトをコピーするオフセット(バイト)

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentOutOfRangeException - dst_offsetは0未満です。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

dst_offsetがOracleBlobデータの終点を超えている場合は、dst_offsetに到達するまでOracleBlobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo(Int64, OracleBlob, Int64, Int64)

このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから、指定されたソース・オフセット、オフセット先および文字数とともに指定されたOracleBlobオブジェクトにコピーします。

宣言

// C#
public Int64 CopyTo(Int64 src_offset,OracleBlob obj,Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
データの読取り元の現行インスタンス内のオフセット(バイト)

- obj
データのコピー先のOracleBlobオブジェクト

- dst_offset
OracleBlobオブジェクトのコピー先のオフセット(バイト)

- amount
コピーするデータ容量

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountが0より小さい場合。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

dst_offsetがOracleBlobデータの終点を超えている場合は、dst_offsetに到達するまでOracleBlobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo(OracleClob)

このインスタンス・メソッドでは、現行のOracleBFileインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。

宣言

// C#
public Int64 CopyTo(OracleClob obj);

パラメータ

- obj
データのコピー先のOracleClobオブジェクト

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo(OracleClob, Int64)

このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから指定されたOracleClobオブジェクトに指定されたオフセット先とともにコピーします。

宣言

// C#
public Int64 CopyTo(OracleClob obj, Int64 dst_offset);

パラメータ

- obj
データのコピー先のOracleClobオブジェクト

- dst_offset
OracleClobオブジェクトをコピーするオフセット(文字)

戻り値

コピーした数

例外

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentOutOfRangeException - dst_offsetは0未満です。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

dst_offsetがOracleClobデータの終点を超えている場合は、dst_offsetに到達するまでOracleClobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

CopyTo(Int64, OracleClob, Int64, Int64)

このインスタンス・メソッドでは、データを現行のOracleBFileインスタンスから指定されたOracleClobオブジェクトに指定されたソース・オフセット、オフセット先および文字数とともにコピーします。

宣言

// C#
public Int64 CopyTo(Int64 src_offset,OracleClob obj,Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
データの読取り元の現行インスタンス内のオフセット(文字)

- obj
データのコピー先のOracleClobオブジェクト

- dst_offset
OracleClobオブジェクトをコピーするオフセット(文字)

- amount
コピーするデータ容量

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountが0より小さい場合。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

dst_offsetが現行のOracleClobデータの終点を超えている場合は、dst_offsetに到達するまでOracleClobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Dispose

このインスタンス・メソッドでは、このオブジェクトによって割り当てられたリソースを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

引き続き一部のプロパティにアクセスすることはできますが、その値は信頼できません。リソースが解除されているため、メソッドを呼び出すと例外となる可能性があります。オブジェクトは、処理後は再度使用できません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

IsEqual

このインスタンスではLOB参照を比較します。

宣言

// C#
public bool IsEqual(OracleBFile obj);

パラメータ

- obj
指定されたOracleBFileオブジェクト

戻り値

現行のOracleBFileおよび指定されたOracleBFileオブジェクトが同じ外部LOBを参照する場合は、trueを戻します。それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

2つの異なるOracleBFileインスタンスが同じ外部LOBを参照できるため、2つのOracleBFileオブジェクトが==またはEquals()に対してfalseを戻しても、このメソッドではtrueを戻すことができます。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OpenFile

このインスタンス・メソッドでは、FileNameおよびDirectoryNameによって指定されたBFILEをオープンします。

宣言

// C#
public void OpenFile();

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

Compare()、CopyTo()、Read()およびSearch()などの多くの操作の場合は、操作前にOpenFileを使用してBFILEをオープンしておく必要があります。

オープンしたBFILEでのOpenFileの呼出しはできません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Read

Streamをオーバーライドします。

このインスタンス・メソッドでは、OracleBFileインスタンスから指定バイト数を読み取り、bufferを移入します。

宣言

// C#
public override int Read(byte[ ] buffer, int offset, int count);

パラメータ

- buffer
移入されるバイト配列バッファ

- offset
移入されるバイト配列バッファのオフセット

- count
読取りバイト数

戻り値

この戻り値は、BFILE、つまり外部LOBから読み取られるバイト数を示します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - offsetまたはcountパラメータが0未満、offsetがbuffer.Length以上、またはoffsetとcountの合計がbuffer.Lengthより大きい場合のいずれか。

備考

LOBデータの読取りは、Positionプロパティにより指定された位置から開始されます。

例

// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.

CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';

*/

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class ReadSample
{
static void Main()
{
// Create MYDIR directory object as indicated previously and create a file
// MyFile.txt with the text ABCDABC under C:\TEMP directory.
// Note that the byte representation of the ABCDABC is 65666768656667

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBFile bFile = new OracleBFile(con, "MYDIR", "MyFile.txt");

// Open the OracleBFile
bFile.OpenFile();

// Read 7 bytes into readBuffer, starting at buffer offset 0
byte[] readBuffer = new byte[7];
int bytesRead = bFile.Read(readBuffer, 0, 7);

// Prints "bytesRead  = 7"
Console.WriteLine("bytesRead  = " + bytesRead);

// Prints "readBuffer = 65666768656667"
Console.Write("readBuffer = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

// Close the OracleBFile
bFile.CloseFile();

bFile.Close();
bFile.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Search

このインスタンス・メソッドでは、OracleBFileの現行のインスタンスのバイナリ・パターンを検索します。

宣言

// C#
public int Search(byte[ ] val, Int64 offset, Int64 nth);

パラメータ

- val
検索対象のバイナリ・パターン

- offset
OracleBFileの検索が開始される0ベース・オフセット(バイト)

- nth
オフセットが戻される特定の一致の状態(1ベース)

戻り値

一致のnth回目の出現に対して、一致パターン(バイト表示)の起点の絶対offsetを戻します。それ以外の場合は、0が戻されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - offsetが0未満の場合、nthが0以下の場合、val.Lengthが16383より大きい場合、nthがOracleBFile.MaxSize以上の場合またはoffsetがOracleBFile.MaxSize以上の場合のいずれか。

備考

検索パターンの制限は16383バイトです。

例

// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.

CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';

*/

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class SearchSample
{
static void Main()
{
// Create MYDIR directory object as indicated previously and create a file
// MyFile.txt with the text ABCDABC under C:\TEMP directory.
// Note that the byte representation of the ABCDABC is 65666768656667

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBFile bFile = new OracleBFile(con, "MYDIR", "MyFile.txt");

// Open the OracleBFile
bFile.OpenFile();

// Search for the 2nd occurrence of a byte pattern {66,67}
// starting from byte offset 1 in the OracleBFile
byte[] pattern = new byte[2] {66, 67};
long posFound = bFile.Search(pattern, 1, 2);

// Prints "posFound = 6"
Console.WriteLine("posFound = " + posFound);

// Close the OracleBFile
bFile.CloseFile();

bFile.Close();
bFile.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

Seek

Streamをオーバーライドします。

このインスタンス・メソッドでは現行のLOBストリームに位置を設定します。

宣言

// C#
public override Int64 Seek(Int64 offset, SeekOrigin origin);

パラメータ

- offset
起点に相対的なバイト・オフセット

- origin
新規位置を取得する場合に使用する参照ポイントを示すタイプSystem.IO.SeekOriginの値

戻り値

位置を示すInt64が戻されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

offsetが負の場合は、新規位置がoffsetによって指定されたバイト数だけ、originで指定した位置より前にあります。

offsetがゼロの場合は、originで指定した位置が新規位置となります。

offsetが正の場合は、新規位置はoffsetによって指定されたバイト数だけ、originで指定した位置より後にあります。

SeekOrigin.Beginはストリームの開始を指定します。

SeekOrigin.Currentはストリーム内の現行位置を指定します。

SeekOrigin.Endはストリームの終点を指定します。

例

// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.

CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';

*/

// C#

using System;
using System.IO;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class SeekSample
{
static void Main()
{
// Create MYDIR directory object as indicated previously and create a file
// MyFile.txt with the text ABCDABC under C:\TEMP directory.
// Note that the byte representation of the ABCDABC is 65666768656667

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBFile bFile = new OracleBFile(con, "MYDIR", "MyFile.txt");

// Open the OracleBFile
bFile.OpenFile();

// Set the Position to 2 with respect to SeekOrigin.Begin
long newPosition = bFile.Seek(2, SeekOrigin.Begin);

// Prints "newPosition     = 2"
Console.WriteLine("newPosition     = " + newPosition);

// Prints "bFile.Position  = 2"
Console.WriteLine("bFile.Position  = " + bFile.Position);

// Read 2 bytes into readBuffer, starting at buffer offset 1
byte[] readBuffer = new byte[4];
int bytesRead = bFile.Read(readBuffer, 1, 2);

// Prints "bytesRead       = 2"
Console.WriteLine("bytesRead       = " + bytesRead);

// Prints "readBuffer      = 067680"
Console.Write("readBuffer      = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

// Close the OracleBFile
bFile.CloseFile();

bFile.Close();
bFile.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBFileクラス

- OracleBFileメンバー

OracleBlobクラス

OracleBlobオブジェクトは、BLOBデータへの参照が含まれるオブジェクトです。このオブジェクトは、BLOBに対して操作を実行するためのメソッドを提供します。

クラスの継承

System.Object

System.MarshalByRefObject

System.IO.Stream

Oracle.DataAccess.Types.OracleBlob

宣言

// C#
public sealed class OracleBlob : Stream, ICloneable, INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleBlobSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob = new OracleBlob(con);

// Write 4 bytes from writeBuffer, starting at buffer offset 0
byte[] writeBuffer = new byte[4] {1, 2, 3, 4};
blob.Write(writeBuffer, 0, 4);

// Append first 2 bytes from writeBuffer {1, 2} to the oracleBlob
blob.Append(writeBuffer, 0, 2);

// Prints "blob.Length  = 6"
Console.WriteLine("blob.Length  = " + blob.Length);

// Reset the Position for the Read
blob.Position = 0;

// Read 6 bytes into readBuffer, starting at buffer offset 0
byte[] readBuffer = new byte[6];
int bytesRead = blob.Read(readBuffer, 0, 6);

// Prints "bytesRead    = 6"
Console.WriteLine("bytesRead    = " + bytesRead);

// Prints "readBuffer   = 123412"
Console.Write("readBuffer   = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

// Search for the 2nd occurrence of a byte pattern '12'
// starting from byte offset 0 in the OracleBlob
byte[] pattern = new byte[2] {1, 2};
long posFound = blob.Search(pattern, 0, 2);

// Prints "posFound     = 5"
Console.WriteLine("posFound     = " + posFound);

// Erase 4 bytes of data starting at byte offset 1
// Sets bytes to zero
blob.Erase(1, 4);

byte[] erasedBuffer = blob.Value;

//Prints "erasedBuffer = 100002"
Console.Write("erasedBuffer = ");
for(int index = 0; index < erasedBuffer.Length; index++)
{
Console.Write(erasedBuffer[index]);
}
Console.WriteLine();

blob.Close();
blob.Dispose();

con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobメンバー

- OracleBlobコンストラクタ

- OracleBlob静的フィールド

- OracleBlob静的メソッド

- OracleBlobインスタンス・プロパティ

- OracleBlobインスタンス・メソッド

OracleBlobメンバー

OracleBlobメンバーは次の表にリスト表示されています。

OracleBlobコンストラクタ

OracleBlobコンストラクタを、表13-10にリストします。

表13-10 OracleBlobコンストラクタ

コンストラクタ

説明

OracleBlobコンストラクタ

OracleBlobクラスのインスタンスを作成します(オーバーロード)

OracleBlob静的フィールド

OracleBlob静的フィールドを、表13-11にリストします。

表13-11 OracleBlob静的フィールド

フィールド

説明

MaxSize

BLOBが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します

Null

OracleBlobインスタンスの値に割り当てることができるNULL値を表します

OracleBlob静的メソッド

OracleBlob静的メソッドを、表13-12にリストします。

表13-12 OracleBlob静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleBlobインスタンス・プロパティ

OracleBlobインスタンス・プロパティを、表13-13にリストします。

表13-13 OracleBlobインスタンス・プロパティ

プロパティ

説明

CanRead

LOBストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作を実行するかどうかを示します

CanWrite

LOBオブジェクトが書込みをサポートしているかどうかを示します

Connection

BLOBデータの取得および書込みに使用するOracleConnectionを示します

IsEmpty

BLOBが空かどうかを示します

IsInChunkWriteMode

BLOBがオープンされているために索引更新が遅延するかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsTemporary

現行インスタンスが一時BLOBにバインドされているかどうかを示します

Length

BLOBデータのサイズを示します

OptimumChunkSize

パフォーマンスを向上させるため、読取りおよび書込み操作で使用する必要のある、最適なデータ・バッファ長(またはその倍数)を示します。

Position

LOBストリームの現行の読取りまたは書込み位置を示します

Value

データをBLOBの最初のバイトから開始するバイト配列として戻します

OracleBlobインスタンス・メソッド

OracleBlobインスタンス・メソッドを、表13-14にリストします。

表13-14 OracleBlobインスタンス・メソッド

メソッド

説明

Append

指定されたデータを現行のOracleBlobインスタンスに追加します(オーバーロード)

BeginChunkWrite

BLOBをオープンします

BeginRead

System.IO.Streamから継承します

BeginWrite

System.IO.Streamから継承します

Clone

OracleBlobオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、それに関連するリソースを解除します

Compare

現行インスタンスが参照するデータと指定されたオブジェクトのデータを比較します

CopyTo

現行のOracleBlobインスタンスからOracleBlobオブジェクトにコピーします(オーバーロード)

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndChunkWrite

現行のOracleBlobインスタンスが参照するBLOBをクローズします

EndRead

System.IO.Streamから継承します

EndWrite

System.IO.Streamから継承します

Equals

System.Objectからの継承(オーバーロード)

Erase

データを消去します(オーバーロード)

Flush

サポート対象外

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializedLifetimeService

System.MarshalByRefObjectからの継承

IsEqual

2つのOracleBlobが参照するLOBデータを比較します

Read

ODP.NET LOBタイプのインスタンスから指定バイト数を読み取り、bufferに移入します

ReadByte

System.IO.Streamから継承します

Search

OracleBlobの現行インスタンスのバイナリ・パターンを検索します

Seek

現行のLOBストリームに位置を設定します

SetLength

BLOB値を指定した長さに切り捨てます

ToString

System.Objectからの継承

Write

指定されたバッファをOracleBlobに書き込みます

WriteByte

System.IO.Streamから継承します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobメンバー

OracleBlobコンストラクタ

OracleBlobコンストラクタを、表13-10にリストします。

オーバーロード・リスト:

- OracleBlob(OracleConnection)
このコンストラクタでは、一時BLOBにバインドされたOracleBlobクラスのインスタンスをOracleConnectionオブジェクトとともに作成します。

- OracleBlob(OracleConnection, bool)
このコンストラクタでは、一時BLOBにバインドされたOracleBlobクラスのインスタンスを、OracleConnectionオブジェクトおよびキャッシング用のブール値とともに作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleBlob(OracleConnection)

このコンストラクタでは、一時BLOBにバインドされたOracleBlobクラスのインスタンスをOracleConnectionオブジェクトとともに作成します。

宣言

// C#
public OracleBlob(OracleConnection con);

パラメータ

- con
OracleConnectionオブジェクト

例外

InvalidOperationException - OracleConnectionはオープンされていません。

備考

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

一時BLOBでは、指定された接続を使用してBLOBデータを格納します。このコンストラクタでは、キャッシングをオンにしません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleBlob(OracleConnection, bool)

このコンストラクタでは、一時BLOBにバインドされたOracleBlobクラスのインスタンスを、OracleConnectionオブジェクトおよびキャッシング用のブール値とともに作成します。

宣言

// C#
public OracleBlob(OracleConnection con, bool bCaching);

パラメータ

- con
OracleConnectionオブジェクト

- bCaching
サーバー側のキャッシングを有効または無効にするフラグ

例外

InvalidOperationException - OracleConnectionはオープンされていません。

備考

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

一時BLOBでは、指定された接続を使用してBLOBデータを格納します。bCaching入力パラメータによってサーバー側のキャッシングが使用されるかどうかが判別されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleBlob静的フィールド

OracleBlob静的フィールドを、表13-15にリストします。

表13-15 OracleBlob静的フィールド

フィールド

説明

MaxSize

BLOBが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します

Null

OracleBlobインスタンスの値に割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

MaxSize

MaxSizeフィールドでは、BLOBが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します。

宣言

// C#
public static readonly Int64 MaxSize = 4294967295;

備考

このフィールドは操作が許容最大長を超えているかどうかをチェックするコードに便利です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Null

この静的フィールドは、OracleBlobインスタンスの値に割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleBlob Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleBlob静的メソッド

OracleBlob静的メソッドを、表13-16にリストします。

表13-16 OracleBlob静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleBlobインスタンス・プロパティ

OracleBlobインスタンス・プロパティを、表13-17にリストします。

表13-17 OracleBlobインスタンス・プロパティ

プロパティ

説明

CanRead

LOBストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作を実行するかどうかを示します

CanWrite

LOBオブジェクトが書込みをサポートしているかどうかを示します

Connection

BLOBデータの取得および書込みに使用するOracleConnectionを示します

IsEmpty

BLOBが空かどうかを示します

IsInChunkWriteMode

BLOBがオープンされているために索引更新が遅延するかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsTemporary

現行インスタンスが一時BLOBにバインドされているかどうかを示します

Length

BLOBデータのサイズを示します

OptimumChunkSize

パフォーマンスを向上させるため、読取りおよび書込み操作で使用する必要のある、最適なデータ・バッファ長(またはその倍数)を示します。

Position

LOBストリームの現行の読取りまたは書込み位置を示します

Value

データをBLOBの最初のバイトから開始するバイト配列として戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CanRead

Streamをオーバーライドします。

このインスタンス・プロパティではLOBストリームが読取り可能かどうかを示します。

宣言

// C#
public override bool CanRead{get;}

プロパティ値

LOBストリームが読取り可能の場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CanSeek

Streamをオーバーライドします。

このインスタンス・プロパティでは、順方向および逆方向シーク操作が実行可能かどうかを示します。

宣言

// C#
public override bool CanSeek{get;}

プロパティ値

順方向および逆方向シーク操作が実行可能の場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CanWrite

Streamをオーバーライドします。

このインスタンス・プロパティでは、LOBオブジェクトが書込みをサポートしているかどうかを示します。

宣言

// C#
public override bool CanWrite{get;}

プロパティ値

LOBストリームが書き込み可能の場合は、trueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Connection

このインスタンス・プロパティでは、BLOBデータの取得および書込みに使用するOracleConnectionを示します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

OracleConnectionのオブジェクト

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

IsEmpty

このインスタンス・プロパティでは、BLOBが空かどうかを示します。

宣言

// C#
public bool IsEmpty {get;}

プロパティ値

BLOBが空かどうかを示すbool

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

IsInChunkWriteMode

このインスタンス・プロパティでは、BLOBがオープンされているために索引更新が遅延するかどうかを示します。

宣言

// C#
public bool IsInChunkWriteMode{get;}

プロパティ値

BLOBがオープンされている場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

IsTemporary

このインスタンス・プロパティでは、現行インスタンスが一時BLOBにバインドされているかどうかを示します。

宣言

// C#
public bool IsTemporary {get;}

プロパティ値

bool

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Length

Streamをオーバーライドします。

このインスタンス・プロパティでは、BLOBデータのサイズをバイト数で示します。

宣言

// C#
public override Int64 Length {get;}

プロパティ値

BLOBデータのサイズを示すバイト数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OptimumChunkSize

このインスタンス・プロパティは、パフォーマンスを向上させるため、読取りおよび書込み操作で使用する必要のある、最適なデータ・バッファ長(またはその倍数)を示します。

宣言

// C#
public int OptimumChunkSize{get;}

プロパティ値

取得または送信する最小バイトを表す数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Position

Streamをオーバーライドします。

このインスタンスでは、LOBストリームの現行の読取りまたは書込み位置を示します。

宣言

// C#
public override Int64 Position{get; set;}

プロパティ値

読取りまたは書込み位置を示すInt64

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - Positionは0未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Value

このインスタンス・プロパティでは、BLOBの最初のバイトの起点データをバイト配列として戻します。

宣言

// C#
public Byte[] Value{get;}

プロパティ値

バイト配列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - Valueは0未満です。

備考

Positionの値はこのプロパティで使用または変更されません。このプロパティで戻すことができる最大バイト配列は2GBです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleBlobインスタンス・メソッド

OracleBlobインスタンス・メソッドを、表13-18にリストします。

表13-18 OracleBlobインスタンス・メソッド

メソッド

説明

Append

指定されたデータを現行のOracleBlobインスタンスに追加します(オーバーロード)

BeginChunkWrite

BLOBをオープンします

BeginRead

System.IO.Streamから継承します

BeginWrite

System.IO.Streamから継承します

Clone

OracleBlobオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、それに関連するリソースを解除します

Compare

現行インスタンスが参照するデータと指定されたオブジェクトのデータを比較します

CopyTo

現行のOracleBlobインスタンスからOracleBlobオブジェクトにコピーします(オーバーロード)

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndChunkWrite

現行のOracleBlobインスタンスが参照するBLOBをクローズします

EndRead

System.IO.Streamから継承します

EndWrite

System.IO.Streamから継承します

Equals

System.Objectからの継承(オーバーロード)

Erase

データを消去します(オーバーロード)

Flush

サポート対象外

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializedLifetimeService

System.MarshalByRefObjectからの継承

IsEqual

2つのOracleBlobが参照するLOBデータを比較します

Read

ODP.NET LOBタイプのインスタンスから指定バイト数を読み取り、bufferに移入します

ReadByte

System.IO.Streamから継承します

Search

OracleBlobの現行インスタンスのバイナリ・パターンを検索します

Seek

現行のLOBストリームに位置を設定します

SetLength

BLOB値を指定した長さに切り捨てます

ToString

System.Objectからの継承

Write

指定されたバッファをOracleBlobに書き込みます

WriteByte

System.IO.Streamから継承します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Append

Appendでは、指定されたデータを現行のOracleBlobインスタンスの最後に追加します。

オーバーロード・リスト:

- Append(OracleBlob)
このインスタンス・メソッドでは、指定されたOracleBlobオブジェクトが参照するBLOBデータを現行のOracleBlobインスタンスに追加します。

- Append(byte[ ], int, int)
このインスタンス・メソッドでは、指定されたバイト配列バッファのデータを現行のOracleBlobインスタンスの最後に追加します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Append(OracleBlob)

このインスタンス・メソッドでは、指定されたOracleBlobオブジェクトが参照するBLOBデータを現行のOracleBlobインスタンスに追加します。

宣言

// C#
public void Append(OracleBlob obj);

パラメータ

- obj
OracleBlobのオブジェクト

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - パラメータにオブジェクト以外の接続があるか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

備考

キャラクタ・セット変換は行われません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Append(byte[ ], int, int)

このインスタンス・メソッドでは、指定されたバイト配列バッファのデータを現行のOracleBlobインスタンスの最後に追加します。

宣言

// C#
public void Append(byte[] buffer, int offset, int count);

パラメータ

- buffer
バイトの配列

- offset
データ読取り元バッファのゼロ・ベースのバイト・オフセット

- count
追加するバイト数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class AppendSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob = new OracleBlob(con);

// Append 2 bytes {4, 5} to the OracleBlob
byte[] buffer = new byte[3] {4, 5, 6};
blob.Append(buffer, 0, 2);

byte[] appendBuffer = blob.Value;

// Prints "appendBuffer = 45"
Console.Write("appendBuffer = ");
for(int index = 0; index < appendBuffer.Length; index++)
{
Console.Write(appendBuffer[index]);
}
Console.WriteLine();

blob.Close();
blob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

BeginChunkWrite

このインスタンス・メソッドではBLOBをオープンします。

宣言

// C#
public void BeginChunkWrite();

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

BeginChunkWriteはBLOBデータ処理前に呼び出す必要はありません。これはパフォーマンス上の理由で提供されています。

このメソッドを呼び出した後は、書き込み操作を行っても列上のドメインまたは機能ベースの索引は更新されません。索引を更新できるのは、EndChunkWriteを呼び出した後に1回のみです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Clone

このインスタンス・メソッドではOracleBlobオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleBlobオブジェクト

実装

ICloneable

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class CloneSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob1 = new OracleBlob(con);

// Prints "blob1.Position = 0"
Console.WriteLine("blob1.Position = " + blob1.Position);

// Set the Position before calling Clone()
blob1.Position = 1;

// Clone the OracleBlob
OracleBlob blob2 = (OracleBlob)blob1.Clone();

// Prints "blob2.Position = 1"
Console.WriteLine("blob2.Position = " + blob2.Position);

blob1.Close();
blob1.Dispose();

blob2.Close();
blob2.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Close

Streamをオーバーライドします。

このインスタンス・メソッドは現行のストリームをクローズし、それに関連する任意のリソースを解放します。

宣言

// C#
public override void Close();

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Compare

このインスタンス・メソッドでは、現行のインスタンスが参照するデータと指定されたオブジェクトのデータを比較します。

宣言

// C#
public int Compare(Int64 src_offset, OracleBlob obj, Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
現行インスタンスの比較開始ポイント(バイト)

- obj
指定されたOracleBlobオブジェクト

- dst_offset
指定されたOracleBlobの比較開始ポイント(バイト)

- amount
比較するバイト数

戻り値

次の値を戻します。

- ゼロ未満:現行のインスタンスが参照するデータが、指定されたインスタンスのデータより小さい場合

- ゼロ:どちらのオブジェクトも同じデータを参照する場合

- ゼロ超過:現行のインスタンスが参照するデータが、指定されたインスタンスのデータより大きい場合

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - パラメータにオブジェクト以外の接続があるか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountパラメータが0より小さい場合。

備考

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CopyTo

CopyToでは、現行のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

オーバーロード・リスト:

- CopyTo(OracleBlob)
このインスタンス・メソッドでは、現行のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

- CopyTo(OracleBlob, Int64)
このインスタンス・メソッドでは、データを現行のOracleBlobインスタンスから指定されたOracleBlobオブジェクトに、指定されたオフセット先とともにコピーします。

- CopyTo(Int64, OracleBlob, Int64, Int64)
このインスタンス・メソッドでは、データを現行のOracleBlobインスタンスから指定されたOracleBlobオブジェクトに、指定されたソース・オフセット、オフセット先および文字数とともにコピーします。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CopyTo(OracleBlob)

このインスタンス・メソッドでは、現行のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

宣言

// C#
public Int64 CopyTo(OracleBlob obj);

パラメータ

- obj
データのコピー先のOracleBlobオブジェクト

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CopyTo(OracleBlob, Int64)

このインスタンス・メソッドでは、データを現行のOracleBlobインスタンスから指定されたOracleBlobオブジェクトに、指定されたオフセット先とともにコピーします。

宣言

// C#
public Int64 CopyTo(OracleBlob obj, Int64 dst_offset);

パラメータ

- obj
データのコピー先のOracleBlobオブジェクト

- dst_offset
OracleBlobオブジェクトをコピーするオフセット(バイト)

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentOutOfRangeException - dst_offsetは0未満です。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

dst_offsetがOracleBlobデータの終点を超えている場合は、dst_offsetに到達するまでOracleBlobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

CopyTo(Int64, OracleBlob, Int64, Int64)

このインスタンス・メソッドでは、データを現行のOracleBlobインスタンスから指定されたOracleBlobオブジェクトに、指定されたソース・オフセット、オフセット先および文字数とともにコピーします。

宣言

// C#
public Int64 CopyTo(Int64 src_offset,OracleBlob obj,Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
データの読取り元の現行インスタンス内のオフセット(バイト)

- obj
データのコピー先のOracleBlobオブジェクト

- dst_offset
OracleBlobオブジェクトをコピーするオフセット(バイト)

- amount
コピーするデータ容量

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - パラメータにオブジェクト以外の接続があるか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountパラメータが0より小さい場合。

備考

dst_offsetがOracleBlobデータの終点を超えている場合は、dst_offsetに到達するまでOracleBlobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class CopyToSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob1 = new OracleBlob(con);
OracleBlob blob2 = new OracleBlob(con);

// Write 4 bytes, starting at buffer offset 0
byte[] buffer = new byte[4] {1, 2, 3, 4};
blob1.Write(buffer, 0, 4);

// Copy 2 bytes from byte 0 of blob1 to byte 1 of blob2
blob1.CopyTo(0, blob2, 1, 2);

byte[] copyBuffer = blob2.Value;

//Prints "Value = 012"
Console.Write("Value = ");
for(int index = 0; index < copyBuffer.Length; index++)
{
Console.Write(copyBuffer[index]);
}
Console.WriteLine();

blob1.Close();
blob1.Dispose();

blob2.Close();
blob2.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Dispose

このインスタンス・メソッドでは、このオブジェクトによって割り当てられたリソースを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

Dispose()を呼び出すと、OracleBlobのオブジェクトは初期化前の状態になります。

引き続き一部のプロパティにアクセスすることはできますが、その値は信頼できません。リソースが解除されているため、メソッドを呼び出すと例外となる可能性があります。オブジェクトは、処理後は再度使用できません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

EndChunkWrite

このインスタンス・メソッドでは、現行のOracleBlobインスタンスが参照するBLOBをクローズします。

宣言

// C#
public void EndChunkWrite();

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

BeginChunkWriteメソッドによって遅延する書込み操作がある場合は、ただちに索引更新が行われます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Erase

Eraseでは、データの一部またはすべてを消去します。

オーバーロード・リスト:

- Erase()
このインスタンス・メソッドでは、すべてのデータを消去します。

- Erase(Int64, Int64)
このインスタンス・メソッドでは、指定されたデータ部分を消去します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Erase()

このインスタンス・メソッドでは、すべてのデータを消去します。

宣言

// C#
public Int64 Erase();

戻り値

消去したバイト数

備考

Erase()では、すべてのデータをゼロ・バイト・フィルタと置き換えます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Erase(Int64, Int64)

このインスタンス・メソッドでは、指定されたデータ部分を消去します。

宣言

// C#
public Int64 Erase(Int64 offset, Int64 amount);

パラメータ

- offset
消去元のオフセット

- amount
消去する数(バイト)

戻り値

消去したバイト数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - offsetまたはamountパラメータは0未満です。

備考

指定されたデータのamountをゼロ・バイト・フィルタで置き換えます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

IsEqual

このインスタンス・メソッドでは、2つのOracleBlobが参照するLOBデータを比較します。

宣言

// C#
public bool IsEqual(OracleBlob obj);

パラメータ

- obj
OracleBlobオブジェクト

戻り値

現行のOracleBlobおよび指定されたOracleBlobオブジェクトが同じLOBを参照する場合は、trueを戻します。それ以外の場合はfalseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

2つの異なるOracleBlobインスタンスが同じLOBを参照できるため、2つのOracleBlobオブジェクトが==またはEquals()に対してfalseを戻す場合でも、このメソッドではtrueを戻すことができます。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Read

Streamをオーバーライドします。

このインスタンス・メソッドでは、ODP.NET LOBインスタンスから指定バイト数を読み取り、bufferに移入します。

宣言

// C#
public override int Read(byte[ ] buffer, int offset, int count);

パラメータ

- buffer
移入されるバイト配列バッファ

- offset
バッファに移入される開始オフセット(バイト)

- count
読取りバイト数

戻り値

戻り値はLOBから読み取られるバイト数を示します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetまたはcountパラメータが0未満の場合

- offsetがbuffer.Length以上である場合

- offsetおよびcountの合計がbuffer.Lengthより大きい場合

備考

LOBデータの読取りは、Positionプロパティにより指定された位置から開始されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class ReadSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob = new OracleBlob(con);

// Write 3 bytes, starting at buffer offset 1
byte[] writeBuffer = new byte[4] {1, 2, 3, 4};
blob.Write(writeBuffer, 1, 3);

// Reset the Position for Read
blob.Position = 1;

// Read 2 bytes into buffer starting at buffer offset 1
byte[] readBuffer = new byte[4];
int bytesRead = blob.Read(readBuffer, 1, 2);

// Prints "bytesRead  = 2"
Console.WriteLine("bytesRead  = " + bytesRead);

// Prints "readBuffer = 0340"
Console.Write("readBuffer = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

blob.Close();
blob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Search

このインスタンス・メソッドでは、OracleBlobの現行インスタンスのバイナリ・パターンを検索します。

宣言

// C#
public Int64 Search(byte[] val, int64 offset, int64 nth);

パラメータ

- val
検索対象のバイナリ・パターン

- offset
OracleBlobの検索が開始される0ベース・オフセット(バイト)

- nth
絶対オフセット(バイト)が戻される特定の一致状況の発生(1ベース)

戻り値

一致のnth回目の出現に対して、一致パターン(バイト表示)の起点の絶対offsetを戻します。それ以外の場合は、0が戻されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetが0未満の場合

- nthが0以下の場合

- val.Lengthが16383より大きい場合

- nthがOracleBlob.MaxSize以上の場合

- offsetがOracleBlob.MaxSize以上の場合

備考

検索パターンの制限は16383バイトです。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class SearchSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob = new OracleBlob(con);

// Write 7 bytes, starting at buffer offset 0
byte[] buffer = new byte[7] {1, 2, 3, 4, 1, 2, 3};
blob.Write(buffer, 0, 7);

// Search for the 2nd occurrence of a byte pattern '23'
// starting at offset 1 in the OracleBlob
byte[] pattern = new byte[2] {2 ,3};
long posFound = blob.Search(pattern, 1, 2);

// Prints "posFound = 6"
Console.WriteLine("posFound = " + posFound);

blob.Close();
blob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Seek

Streamをオーバーライドします。

このインスタンス・メソッドでは現行のLOBストリームに位置を設定します。

宣言

// C#
public override Int64 Seek(Int64 offset, SeekOrigin origin);

パラメータ

- offset
起点に相対的なバイト・オフセット

- origin
新規位置を取得する場合に使用する参照ポイントを示すタイプSystem.IO.SeekOriginの値

戻り値

位置に対してInt64を戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

offsetが負の場合は、新規位置がoffsetによって指定されたバイト数だけ、originで指定した位置より前にあります。

offsetがゼロの場合は、originで指定した位置が新規位置となります。

offsetが正の場合は、新規位置はoffsetによって指定されたバイト数だけ、originで指定した位置より後にあります。

SeekOrigin.Beginはストリームの開始を指定します。

SeekOrigin.Currentはストリーム内の現行位置を指定します。

SeekOrigin.Endはストリームの終点を指定します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

SetLength

Streamをオーバーライドします。

このインスタンス・メソッドでは、BLOB値を指定された長さ(バイト表示)に切り捨てます。

宣言

// C#
public override void SetLength(Int64 newlen);

パラメータ

- newlen
現行ストリームに必要な長さ(バイト)

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - newlenは0未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

Write

Streamをオーバーライドします。

このインスタンス・メソッドでは、指定されたバッファをOracleBlobに書き込みます。

宣言

// C#
public override void Write(byte[ ] buffer, int offset, int count);

パラメータ

- buffer
データを指定するバイト配列buffer

- offset
bufferの読取りが開始される0ベース・オフセット(バイト)

- count
OracleBlobに書き込まれるデータ量(バイト)

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetまたはcountが0未満の場合

- offsetがbuffer.Length以上である場合

- offsetおよびcountの合計がbuffer.Lengthより大きい場合

備考

OracleBlobのoffset先はPositionプロパティで指定できます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class WriteSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleBlob blob = new OracleBlob(con);

// Set the Position for the Write
blob.Position = 0;

// Begin ChunkWrite to improve performance
// Index updates occur only once after EndChunkWrite
blob.BeginChunkWrite();

// Write to the OracleBlob in 5 chunks of 2 bytes each
byte[] b = new byte[2] {1, 2};
for(int index = 0; index < 5; index++)
{
blob.Write(b, 0, b.Length);
}
blob.EndChunkWrite();

byte[] chunkBuffer = blob.Value;

// Prints "chunkBuffer = 1212121212"
Console.Write("chunkBuffer = ");
for(int index = 0; index < chunkBuffer.Length; index++)
{
Console.Write(chunkBuffer[index]);
}
Console.WriteLine();

blob.Close();
blob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBlobクラス

- OracleBlobメンバー

OracleClobクラス

OracleClobは、CLOBデータへの参照が含まれるオブジェクトです。このオブジェクトは、CLOBに対して操作を実行するためのメソッドを提供します。

注意:
OracleClobオブジェクトでは、.NET Frameworkバイト配列を使用したCLOBデータの取得または書込み時に、クライアント側のキャラクタ・セットが使用されます。

クラスの継承

System.Object

System.MarshalByRefObject

System.IO.Stream

Oracle.DataAccess.Types.OracleClob

宣言

// C#
public sealed class OracleClob : Stream, ICloneable, INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleClobSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob = new OracleClob(con);

// Write 4 chars from writeBuffer, starting at buffer offset 0
char[] writeBuffer = new char[4] {'a', 'b', 'c', 'd'};
clob.Write(writeBuffer, 0, 4);

// Append first 2 chars from writeBuffer {'a', 'b'} to the oracleClob
clob.Append(writeBuffer, 0, 2);

// Prints "clob.Length  = 12"
Console.WriteLine("clob.Length  = " + clob.Length);

// Reset the Position for the Read
clob.Position = 0;

// Read 6 chars into readBuffer, starting at buffer offset 0
char[] readBuffer = new char[6];
int charsRead = clob.Read(readBuffer, 0, 6);

// Prints "charsRead    = 6"
Console.WriteLine("charsRead    = " + charsRead);

// Prints "readBuffer   = abcdab"
Console.Write("readBuffer   = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

// Search for the 2nd occurrence of a char pattern 'ab'
// starting from char offset 0 in the OracleClob
char[] pattern = new char[2] {'a', 'b'};
long posFound = clob.Search(pattern, 0, 2);

// Prints "posFound     = 5"
Console.WriteLine("posFound     = " + posFound);

// Erase 4 chars of data starting at char offset 1
// Sets chars to ''
clob.Erase(1, 4);

//Prints "clob.Value   = a    b"
Console.WriteLine("clob.Value   = " + clob.Value);

clob.Close();
clob.Dispose();

con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobメンバー

- OracleClobコンストラクタ

- OracleClob静的フィールド

- OracleClob静的メソッド

- OracleClobインスタンス・プロパティ

- OracleClobインスタンス・メソッド

OracleClobメンバー

OracleClobメンバーは次の表にリスト表示されています。

OracleClobコンストラクタ

OracleClobコンストラクタを、表13-19にリストします。

表13-19 OracleClobコンストラクタ

コンストラクタ

説明

OracleClobコンストラクタ

一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します(オーバーロード)

OracleClob静的フィールド

OracleClob静的フィールドを、表13-20にリストします。

表13-20 OracleClob静的フィールド

フィールド

説明

MaxSize

CLOBが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します

Null

OracleClobインスタンスの値に割り当てることができるNULL値を表します

OracleClob静的メソッド

OracleClob静的メソッドを、表13-21にリストします。

表13-21 OracleClob静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleClobインスタンス・プロパティ

OracleClobインスタンス・プロパティを、表13-22にリストします。

表13-22 OracleClobインスタンス・プロパティ

プロパティ

説明

CanRead

LOBストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作が実行可能かどうかを示します

CanWrite

LOBストリームが書込み可能かどうかを示します

Connection

CLOBデータの取得および書込みに使用するOracleConnectionを示します

IsEmpty

CLOBが空かどうかを示します

IsInChunkWriteMode

CLOBがオープンされているかどうかを示します

IsNCLOB

OracleClobオブジェクトがNCLOBを表すかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsTemporary

現行インスタンスが一時CLOBにバインドされているかどうかを示します

Length

CLOBデータのサイズをバイト数で示します

OptimumChunkSize

読取りまたは書込み操作中にデータベースから取得または送信する最小バイト数を示します

Position

LOBストリームの現行の読取りまたは書込み位置をバイト表示で示します

Value

データをCLOBまたはNCLOBの最初の文字を起点とする文字列として戻します

OracleClobインスタンス・メソッド

OracleClobインスタンス・メソッドを、表13-23にリストします。

表13-23 OracleClobインスタンス・メソッド

メソッド

説明

Append

現行のOracleClobインスタンスにデータを追加します(オーバーロード)

BeginChunkWrite

CLOBをオープンします

BeginRead

System.IO.Streamから継承します

BeginWrite

System.IO.Streamから継承します

Clone

OracleClobオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、関連するすべてのリソースを解除します

Compare

現行インスタンスが参照するデータと指定されたオブジェクトのデータを比較します

CopyTo

OracleClobにデータをコピーします(オーバーロード)

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndChunkWrite

現行のOracleClobインスタンスが参照するCLOBをクローズします

EndRead

System.IO.Streamから継承します

EndWrite

System.IO.Streamから継承します

Equals

System.Objectからの継承(オーバーロード)

Erase

指定されたデータamountを消去します(オーバーロード)

Flush

サポート対象外

GetHashCode

現行インスタンスのハッシュ・コードを戻します

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

IsEqual

2つのOracleClobが参照するLOBデータを比較します

Read

現行インスタンスから読み取ります(オーバーロード)

ReadByte

System.IO.Streamから継承します

Search

OracleClobの現行インスタンスの文字パターンを検索します(オーバーロード)

Seek

現行のLOBストリームに位置を設定します

SetLength

CLOB値を切り捨てます

ToString

System.Objectからの継承

Write

指定されたbufferをOracleClobに書き込みます(オーバーロード)

WriteByte

System.IO.Streamから継承します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

OracleClobコンストラクタ

OracleClobコンストラクタでは、一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します。

オーバーロード・リスト:

- OracleClob(OracleConnection)
このコンストラクタでは、一時CLOBにバインドされたOracleClobクラスのインスタンスをOracleConnectionオブジェクトとともに作成します。

- OracleClob(OracleConnection, bool, bool)
このコンストラクタでは、一時CLOBにバインドされたOracleClobクラスのインスタンスを、OracleConnectionオブジェクト、キャッシング用のブール値およびNCLOB用ブール値とともに作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleClob(OracleConnection)

このコンストラクタでは、一時CLOBにバインドされたOracleClobクラスのインスタンスをOracleConnectionオブジェクトとともに作成します。

宣言

// C#
public OracleClob(OracleConnection con);

パラメータ

- con
OracleConnectionオブジェクト

例外

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

接続は、アプリケーションによって明示的にオープンされる必要があります。OracleClobでは、接続を暗黙的にオープンしません。一時CLOBでは、指定された接続を使用してCLOBデータを格納します。デフォルトではキャッシングは有効化されていません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleClob(OracleConnection, bool, bool)

このコンストラクタでは、一時CLOBにバインドされたOracleClobクラスのインスタンスを、OracleConnectionオブジェクト、キャッシング用のブール値およびNCLOB用ブール値とともに作成します。

宣言

// C#
public OracleClob(OracleConnection con, bool bCaching, bool bNCLOB);

パラメータ

- con
OracleConnectionオブジェクト接続

- bCaching
サーバー側のキャッシングが有効化されているかどうかを示すフラグ

- bNCLOB
インスタンスがNCLOBの場合はtrueに、CLOBの場合はfalseに設定されるフラグ

例外

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

接続は、アプリケーションによって明示的にオープンされる必要があります。OracleClobでは、接続を暗黙的にオープンしません。一時CLOBまたはNCLOBでは、指定された接続を使用してCLOBデータを格納します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleClob静的フィールド

OracleClob静的フィールドを、表13-24にリストします。

表13-24 OracleClob静的フィールド

フィールド

説明

MaxSize

CLOBが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します

Null

OracleClobインスタンスの値に割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

MaxSize

MaxSizeフィールドでは、CLOBが保持できる最大バイト数、4,294,967,295(2^32 - 1)バイトを保持します。

宣言

// C#
public static readonly Int64 MaxSize = 4294967295;

備考

このフィールドは、ユーザー操作が許容最大長(バイト表示)を超えているかどうかをチェックするコードに便利です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Null

この静的フィールドは、OracleClobインスタンスの値に割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleClob Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleClob静的メソッド

OracleClob静的メソッドを、表13-25にリストします。

表13-25 OracleClob静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleClobインスタンス・プロパティ

OracleClobインスタンス・プロパティを、表13-26にリストします。

表13-26 OracleClobインスタンス・プロパティ

プロパティ

説明

CanRead

LOBストリームが読取り可能かどうかを示します

CanSeek

順方向および逆方向検索操作が実行可能かどうかを示します

CanWrite

LOBストリームが書込み可能かどうかを示します

Connection

CLOBデータの取得および書込みに使用するOracleConnectionを示します

IsEmpty

CLOBが空かどうかを示します

IsInChunkWriteMode

CLOBがオープンされているかどうかを示します

IsNCLOB

OracleClobオブジェクトがNCLOBを表すかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsTemporary

現行インスタンスが一時CLOBにバインドされているかどうかを示します

Length

CLOBデータのサイズをバイト数で示します

OptimumChunkSize

読取りまたは書込み操作中にデータベースから取得または送信する最小バイト数を示します

Position

LOBストリームの現行の読取りまたは書込み位置をバイト表示で示します

Value

データをCLOBまたはNCLOBの最初の文字を起点とする文字列として戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CanRead

Streamをオーバーライドします。

このインスタンス・プロパティではLOBストリームが読取り可能かどうかを示します。

宣言

// C#
public override bool CanRead{get;}

プロパティ値

LOBストリームが読取り可能の場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CanSeek

Streamをオーバーライドします。

このインスタンス・プロパティでは、順方向および逆方向シーク操作が実行可能かどうかを示します。

宣言

// C#
public override bool CanSeek{get;}

プロパティ値

順方向および逆方向シーク操作が実行可能の場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CanWrite

Streamをオーバーライドします。

このインスタンス・プロパティでは、LOBオブジェクトが書込みをサポートしているかどうかを示します。

宣言

// C#
public override bool CanWrite{get;}

プロパティ値

LOBストリームが書き込み可能の場合は、trueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Connection

このインスタンス・プロパティでは、CLOBデータの取得および書込みに使用するOracleConnectionを示します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

OracleConnection

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

IsEmpty

このインスタンス・プロパティでは、CLOBが空かどうかを示します。

宣言

// C#
public bool IsEmpty {get;}

プロパティ値

bool

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

IsInChunkWriteMode

このインスタンス・プロパティでは、索引更新を遅延させるためにCLOBがオープンされているかどうかを示します。

宣言

// C#
public bool IsInChunkWriteMode{get;}

プロパティ値

CLOBがオープンされている場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

IsNCLOB

このインスタンス・プロパティでは、OracleClobオブジェクトがNCLOBを表すかどうかを示します。

宣言

// C#
public bool IsNCLOB {get;}

プロパティ値

bool

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

IsTemporary

このインスタンス・プロパティでは、現行のインスタンスが一時CLOBにバインドされているかどうかを示します。

宣言

// C#
public bool IsTemporary {get;}

プロパティ値

bool

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Length

Streamをオーバーライドします。

このインスタンス・プロパティでは、CLOBデータのサイズをバイト数で示します。

宣言

// C#
public override Int64 Length {get;}

プロパティ値

CLOBのサイズをバイト数で示すInt64

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OptimumChunkSize

このインスタンス・プロパティでは、読取りまたは書込み操作中にデータベースから取得または送信する最小バイト数を示します。

宣言

// C#
public int OptimumChunkSize{get;}

プロパティ値

取得または送信する最小バイトを表す数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Position

Streamをオーバーライドします。

このインスタンスでは、LOBストリームの現行の読取りまたは書込み位置をバイト数で示します。

宣言

// C#
public override Int64 Position{get; set;}

プロパティ値

読取りまたは書込み位置を示すInt64

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - Positionは0未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Value

このプロパティ・インスタンスでは、CLOBまたはNCLOBの最初の文字を起点とするデータを文字列として戻します。

宣言

// C#
public string Value{get;}

プロパティ値

文字列

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - Valueは0未満です。

備考

このプロパティの使用により、Positionの値が使用または変更されることはありません。

このプロパティが戻すことができる文字列の最大長は2GBです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleClobインスタンス・メソッド

OracleClobインスタンス・メソッドを、表13-27にリストします。

表13-27 OracleClobインスタンス・メソッド

メソッド

説明

Append

現行のOracleClobインスタンスにデータを追加します(オーバーロード)

BeginChunkWrite

CLOBをオープンします

BeginRead

System.IO.Streamから継承します

BeginWrite

System.IO.Streamから継承します

Clone

OracleClobオブジェクトのコピーを作成します

Close

現行のストリームをクローズし、関連するすべてのリソースを解除します

Compare

現行インスタンスが参照するデータと指定されたオブジェクトのデータを比較します

CopyTo

OracleClobにデータをコピーします(オーバーロード)

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose

このオブジェクトによって割り当てられたリソースを解除します

EndChunkWrite

現行のOracleClobインスタンスが参照するCLOBをクローズします

EndRead

System.IO.Streamから継承します

EndWrite

System.IO.Streamから継承します

Equals

System.Objectからの継承(オーバーロード)

Erase

指定されたデータamountを消去します(オーバーロード)

Flush

サポート対象外

GetHashCode

現行インスタンスのハッシュ・コードを戻します

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

IsEqual

2つのOracleClobが参照するLOBデータを比較します

Read

現行インスタンスから読み取ります(オーバーロード)

ReadByte

System.IO.Streamから継承します

Search

OracleClobの現行インスタンスの文字パターンを検索します(オーバーロード)

Seek

現行のLOBストリームに位置を設定します

SetLength

CLOB値を切り捨てます

ToString

System.Objectからの継承

Write

指定されたbufferをOracleClobに書き込みます(オーバーロード)

WriteByte

System.IO.Streamから継承します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Append

このインスタンス・メソッドでは、現行のOracleClobインスタンスにデータを追加します。

オーバーロード・リスト:

- Append(OracleClob)
このインスタンス・メソッドでは、指定されたOracleClobオブジェクトが参照するCLOBデータを現行のOracleClobインスタンスに追加します。

- Append(byte[ ], int, int)
このインスタンス・メソッドでは、指定されたバイト配列バッファのオフセット(バイト単位)から始まる、指定されたバイト配列バッファのデータをCLOBの最後に追加します。

- Append(char [ ], int, int)
このインスタンス・メソッドでは、指定された文字バッファのオフセット(文字表示)で始まるデータを、指定された文字配列バッファから現行のOracleClobインスタンスの最後に追加します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Append(OracleClob)

このインスタンス・メソッドでは、指定されたOracleClobオブジェクトが参照するCLOBデータを現行のOracleClobインスタンスに追加します。

宣言

// C#
public void Append(OracleClob obj);

パラメータ

- obj
OracleClobオブジェクト

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - パラメータにオブジェクト以外の接続があるか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

備考

キャラクタ・セット変換は行われません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Append(byte[ ], int, int)

このインスタンス・メソッドでは、指定されたバイト配列バッファのオフセット(バイト単位)から始まる、指定されたバイト配列バッファのデータをCLOBの最後に追加します。

宣言

// C#
public int Append(byte[] buffer, int offset, int count);

パラメータ

- buffer
Unicode文字列を表すバイト配列

- offset
データ読取り元バッファのゼロ・ベースのバイト・オフセット

- count
追加するバイト数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - offsetまたはcountパラメータのいずれかが偶数でない場合。

備考

それぞれ2バイトで1 Unicode文字となるため、CLOBおよびNCLOBに対するoffsetとcountの両方が偶数である必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Append(char [ ], int, int)

このインスタンス・メソッドでは、指定された文字バッファのオフセット(文字表示)で始まるデータを、指定された文字配列バッファから現行のOracleClobインスタンスの最後に追加します。

宣言

// C#
public void Append(char[] buffer, int offset, int count);

パラメータ

- buffer
文字の配列

- offset
データ読取り元バッファのゼロ・ベース・オフセット(文字)

- count
追加する文字数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class AppendSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob = new OracleClob(con);

// Append 2 chars {'d', 'e'} to the OracleClob
char[] buffer = new char[3] {'d', 'e', 'f'};
clob.Append(buffer, 0, 2);

// Prints "clob.Value = de"
Console.WriteLine("clob.Value = " + clob.Value);

clob.Close();
clob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

BeginChunkWrite

このインスタンス・メソッドでは、CLOBをオープンします。

宣言

// C#
public void BeginChunkWrite();

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

BeginChunkWriteをCLOBデータの処理前に呼び出す必要はありません。これはパフォーマンス上の理由で提供されています。

このメソッドを呼び出した後は、書き込み操作を行っても列上のドメインまたは機能ベースの索引は更新されません。索引を更新できるのは、EndChunkWriteを呼び出した後に1回のみです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Clone

このインスタンス・メソッドでは、OracleClobオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleClobオブジェクト

実装

ICloneable

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class CloneSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob1 = new OracleClob(con);

// Prints "clob1.Position = 0"
Console.WriteLine("clob1.Position = " + clob1.Position);

// Set the Position before calling Clone()
clob1.Position = 1;

// Clone the OracleClob
OracleClob clob2 = (OracleClob)clob1.Clone();

// Prints "clob2.Position = 1"
Console.WriteLine("clob2.Position = " + clob2.Position);

clob1.Close();
clob1.Dispose();

clob2.Close();
clob2.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Close

Streamをオーバーライドします。

このインスタンス・メソッドでは、現行ストリームをクローズし、それに関連する任意のリソースを解除します。

宣言

// C#
public override void Close();

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Compare

このインスタンス・メソッドでは、現行のインスタンスが参照するデータと指定されたオブジェクトのデータを比較します。

宣言

// C#
public int Compare(Int64 src_offset, OracleClob obj, Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
現行インスタンスの比較開始ポイント(文字)

- obj
指定されたOracleClobオブジェクト

- dst_offset
指定されたOracleClobの比較開始ポイント(文字)

- amount
比較する文字数

戻り値

メソッドが戻す値は次のとおりです。

- ゼロ未満: 現行のインスタンスが参照するデータが、指定されたインスタンスのデータより小さい場合

- ゼロ: どちらのオブジェクトも同じデータを参照する場合

- ゼロ超過: 現行のインスタンスが参照するデータが、指定されたインスタンスのデータより大きい場合

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - パラメータにオブジェクト以外の接続があるか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountパラメータのいずれかが0より小さい場合。

備考

比較対象の2つのOracleClobオブジェクトのキャラクタ・セットは、有効な比較に対して同じである必要があります。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CopyTo

CopyToでは、現行のインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。

オーバーロード・リスト:

- CopyTo(OracleClob)
このインスタンス・メソッドでは、現行のインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。

- CopyTo(OracleClob, Int64)
このインスタンス・メソッドでは、データを現行のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定されたオフセット先とともにコピーします。

- CopyTo(Int64, OracleClob, Int64, Int64)
このインスタンス・メソッドでは、データを現行のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定されたソース・オフセット、オフセット先および文字数とともにコピーします。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CopyTo(OracleClob)

このインスタンス・メソッドでは、現行のインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。

宣言

// C#
public Int64 CopyTo(OracleClob obj);

パラメータ

- obj
データのコピー先のOracleClobオブジェクト

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CopyTo(OracleClob, Int64)

このインスタンス・メソッドでは、データを現行のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定されたオフセット先とともにコピーします。

宣言

// C#
public Int64 CopyTo(OracleClob obj, Int64 dst_offset);

パラメータ

- obj
データのコピー先のOracleClobオブジェクト

- dst_offset
OracleClobオブジェクトをコピーするオフセット(文字)

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

ArgumentOutOfRangeException - dst_offsetは0未満です。

InvalidOperationException - この例外は次のいずれかの条件が存在する場合に表示されます。

- OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされた場合

- LOBオブジェクト・パラメータにオブジェクト以外の接続がある場合

備考

dst_offsetがOracleClobデータの終点を超えている場合は、dst_offsetに到達するまでOracleClobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

CopyTo(Int64, OracleClob, Int64, Int64)

このインスタンス・メソッドでは、データを現行のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定されたソース・オフセット、オフセット先および文字数とともにコピーします。

宣言

// C#
public Int64 CopyTo(Int64 src_offset,OracleClob obj,Int64 dst_offset,
Int64 amount);

パラメータ

- src_offset
データの読取り元の現行インスタンス内のオフセット(文字)

- obj
データのコピー先のOracleClobオブジェクト

- dst_offset
OracleClobオブジェクトをコピーするオフセット(文字)

- amount
コピーするデータ容量

戻り値

戻り値はコピーされた数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - パラメータにオブジェクト以外の接続があるか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

ArgumentOutOfRangeException - src_offset、dst_offsetまたはamountパラメータが0より小さい場合。

備考

dst_offsetがOracleClobデータの終点を超えている場合は、dst_offsetに到達するまでOracleClobに空白が書き込まれます。

オフセットは0ベースです。この操作で文字変換は実行されません。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class CopyToSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob1 = new OracleClob(con);
OracleClob clob2 = new OracleClob(con);

// Write 4 chars, starting at buffer offset 0
char[] buffer = new char[4] {'a', 'b', 'c', 'd'};
clob1.Write(buffer, 0, 4);

// Copy 2 chars from char 0 of clob1 to char 1 of clob2
clob1.CopyTo(0, clob2, 1, 2);

//Prints "clob2.Value =  ab"
Console.WriteLine("clob2.Value = " + clob2.Value);

clob1.Close();
clob1.Dispose();

clob2.Close();
clob2.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Dispose

このインスタンス・メソッドでは、このオブジェクトによって割り当てられたリソースを解除します。

宣言

public void Dispose();

実装

IDisposable

備考

オブジェクトは、処理後は再度使用できません。一部のプロパティには継続してアクセスできますが、その値は適切ではありません。リソースが解放されているため、メソッドのコールにより例外が発生することがあります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

EndChunkWrite

このインスタンス・メソッドでは、現行のOracleClobインスタンスが参照するCLOBをクローズします。

宣言

// C#
public void EndChunkWrite();

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

BeginChunkWriteメソッドによって書込み操作が遅延する場合は、ただちに索引更新が行われます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Erase

Eraseでは、データの一部またはすべてを消去します。

オーバーロード・リスト:

- Erase()
このインスタンス・メソッドでは、すべてのデータを消去します。

- Erase(Int64, Int64)
このインスタンス・メソッドでは、指定されたoffsetで始まる指定されたデータamount(文字表示)をゼロ・バイト充填文字(文字表示)で置き換えます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Erase()

このインスタンス・メソッドでは、すべてのデータを消去します。

宣言

// C#
public Int64 Erase();

戻り値

消去済文字数

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Erase(Int64, Int64)

このインスタンス・メソッドでは、指定されたoffsetで始まる指定されたデータamount(文字表示)をゼロ・バイト充填文字(文字表示)で置き換えます。

宣言

// C#
public Int64 Erase(Int64 offset, Int64 amount);

パラメータ

- offset
オフセット

- amount
データ数

戻り値

消去済実績文字数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - offsetまたはamountパラメータは0未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドにより、現行インスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表すint

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

IsEqual

このインスタンス・メソッドでは、2つのOracleClobが参照するLOBデータを比較します。

宣言

// C#
public bool IsEqual(OracleClob obj);

パラメータ

- obj
OracleClobオブジェクト

戻り値

現行のOracleClobおよび指定されたOracleClobが同じLOBを参照する場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

2つの異なるOracleClobインスタンスが同じLOBを参照できるため、2つのOracleClobオブジェクトが==またはEquals()に対してfalseを戻す場合でも、このメソッドではtrueを戻すことができます。

指定されたオブジェクトと現行のインスタンスには、同じ接続を使用する必要があります。つまり、同じOracleConnectionオブジェクトを使用します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Read

Readでは、現行インスタンスから指定数を読み取り、配列バッファに移入します。

オーバーロード・リスト:

- Read(byte[ ], int, int)
このインスタンス・メソッドでは、現行のインスタンスから指定バイト数を読み取り、バイト配列bufferに移入します。

- Read(char[ ], int, int)
このインスタンス・メソッドでは、現行のインスタンスから指定バイト数を読み取り、文字配列バッファに移入します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Read(byte[ ], int, int)

Streamをオーバーライドします。

このインスタンス・メソッドでは、現行のインスタンスから指定バイト数を読み取り、バイト配列bufferに移入します。

宣言

// C#
public override int Read(byte [ ] buffer, int offset, int count);

パラメータ

- buffer
移入されるバイト配列バッファ

- offset
バッファに移入されるオフセット(バイト)

- count
読み取られるバイト数

戻り値

CLOBから読み取られるバイト数

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

それぞれ2バイトで1 Unicode文字となるため、CLOBおよびNCLOBに対するoffsetとcountの両方が偶数である必要があります。

LOBデータの読取りは、Positionプロパティにより指定された位置から開始されます。その位置は偶数である必要があります。

OracleClobでは、ストリームが終点に達していない場合でも、要求より少ないバイト数を自由に戻すことができます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Read(char[ ], int, int)

このインスタンス・メソッドでは、現行のインスタンスから指定バイト数を読み取り、文字配列バッファに移入します。

宣言

// C#
public int Read(char[ ] buffer, int offset, int count);

パラメータ

- buffer
移入される文字配列バッファ

- offset
バッファに移入されるオフセット(文字)

- count
読み取られる文字数

戻り値

戻り値はCLOBから読み取られる文字数を示します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetまたはcountが0未満の場合

- offsetがbuffer.Length以上である場合

- offsetおよびcountの合計がbuffer.Lengthより大きい場合

備考

すべてのCLOBおよびNCLOBデータをUnicodeとして処理します。

LOBデータの読取りは、Positionプロパティにより指定された位置から開始されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class ReadSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob = new OracleClob(con);

// Write 3 chars, starting at buffer offset 1
char[] writeBuffer = new char[4] {'a', 'b', 'c', 'd'};
clob.Write(writeBuffer, 1, 3);

// Reset the Position (in bytes) for Read
clob.Position = 2;

// Read 2 chars into buffer starting at buffer offset 1
char[] readBuffer = new char[4];
int charsRead = clob.Read(readBuffer, 1, 2);

// Prints "charsRead  = 2"
Console.WriteLine("charsRead  = " + charsRead);

// Prints "readBuffer =  cd "
Console.Write("readBuffer = ");
for(int index = 0; index <  readBuffer.Length; index++)
{
Console.Write(readBuffer[index]);
}
Console.WriteLine();

clob.Close();
clob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Search

Searchでは、OracleClobの現行のインスタンスの文字パターンを検索します。

オーバーロード・リスト:

- Search(byte[ ], Int64, Int64)
このインスタンス・メソッドでは、OracleClobの現行インスタンスでバイト配列で表される文字パターンを検索します。

- Search(char[ ], Int64, Int64)
このインスタンス・メソッドでは、OracleClobの現行インスタンスの文字パターンを検索します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Search(byte[ ], Int64, Int64)

このインスタンス・メソッドでは、OracleClobの現行インスタンスでバイト配列で表される文字パターンを検索します。

宣言

// C#
public int Search(byte[ ] val, Int64 offset, Int64 nth);

パラメータ

- val
Unicodeバイト配列

- offset
OracleClobの検索の起点の0ベース・オフセット(文字)

- nth
絶対オフセット(文字)が戻される特定の一致の出現(1ベース)

戻り値

一致のnth回目の出現に対して、一致パターン(バイト表示)の起点の絶対offsetを戻します。それ以外の場合は、0が戻されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetが0未満の場合

- nthが0以下の場合

- nthがOracleClob.MaxSize以上の場合

- offsetがOracleClob.MaxSize以上の場合

備考

byte[ ]は検索前にUnicodeに変換されます。

検索パターンの制限は16383バイトです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Search(char[ ], Int64, Int64)

このインスタンス・メソッドでは、OracleClobの現行インスタンスの文字パターンを検索します。

宣言

// C#
public Int64 Search(char [ ] val, Int64 offset, Int64 nth);

パラメータ

- val
検索対象のUnicode文字列

- offset
OracleClobの検索の起点の0ベース・オフセット(文字)

- nth
絶対オフセット(文字)が戻される特定の一致の出現(1ベース)

戻り値

一致のnth回目の出現に対して、一致パターン(文字表示)の起点の絶対offsetを戻します。それ以外の場合は、0が戻されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetが0未満の場合

- nthが0以下の場合

- val.Lengthの2倍が16383より大きい場合

- nthがOracleClob.MaxSize以上の場合

- offsetがOracleClob.MaxSize以上の場合

備考

検索パターンの制限は16383バイトです。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class SearchSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob = new OracleClob(con);

// Write 7 chars, starting at buffer offset 0
char[] buffer = new char[7] {'a', 'b', 'c', 'd', 'a', 'b', 'c'};
clob.Write(buffer, 0, 7);

// Search for the 2nd occurrence of a char pattern 'bc'
// starting at offset 1 in the OracleBlob
char[] pattern = new char[2] {'b', 'c'};
long posFound = clob.Search(pattern, 1, 2);

// Prints "posFound = 6"
Console.WriteLine("posFound = " + posFound);

clob.Close();
clob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Seek

Streamをオーバーライドします。

このインスタンス・メソッドでは現行のLOBストリームに位置を設定します。

宣言

// C#
public override Int64 Seek(Int64 offset, SeekOrigin origin);

パラメータ

- offset
起点に相対的なバイト・オフセット

- origin
新規位置を取得する場合に使用する参照ポイントを示すタイプSystem.IO.SeekOriginの値

戻り値

位置を示すInt64が戻されます。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

備考

offsetが負の場合は、新規位置がoffsetによって指定された文字数だけoriginで指定した位置より前になります。

offsetがゼロの場合は、originで指定した位置が新規位置となります。

offsetが正の場合は、新規位置はoffsetによって指定された文字数だけoriginで指定した位置より後になります。

SeekOrigin.Beginはストリームの開始を指定します。

SeekOrigin.Currentはストリーム内の現行位置を指定します。

SeekOrigin.Endはストリームの終点を指定します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

SetLength

Streamをオーバーライドします。

このインスタンス・メソッドでは、CLOB値を指定された長さ(文字表示)に切り捨てます。

宣言

// C#
public override void SetLength(Int64 newlen);

パラメータ

- newlen
現行ストリームに必要な長さ(文字)

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - newlenパラメータは0より大きい場合。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Write

このインスタンス・メソッドでは、指定された配列バッファからOracleClobにデータを書き込みます。

オーバーロード・リスト:

- Write(byte[ ], int, int)
このインスタンス・メソッドでは、指定されたバイト配列バッファからOracleClobにデータを書き込みます。

- Write(char[ ], int, int)
このインスタンス・メソッドでは、指定された文字配列バッファからOracleClobにデータを書き込みます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Write(byte[ ], int, int)

Streamをオーバーライドします。

このインスタンス・メソッドでは、指定されたバイト配列バッファからOracleClobにデータを書き込みます。

宣言

// C#
public override void Write(byte[ ] buffer, int offset, int count);

パラメータ

- buffer
Unicode文字列を表すバイト配列バッファ

- offset
bufferの読取り元のオフセット(バイト)

- count
OracleClobに書き込みされるバッファのデータ数(バイト)

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetまたはcountが0未満の場合

- offsetがbuffer.Length以上である場合

- offsetおよびcountの合計がbuffer.Lengthより大きい場合

- offset、countまたはPositionが偶数の場合

備考

それぞれ2バイトで1 Unicode文字となるため、CLOBおよびNCLOBに対するoffsetとcountの両方が偶数である必要があります。

LOBデータの読取りは、Positionプロパティにより指定された位置から開始されます。Positionプロパティは偶数である必要があります。

必要に応じて、クライアント・キャラクタ・セットからデータベース・キャラクタ・セットに適切なデータ変換が行われます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

Write(char[ ], int, int)

このインスタンス・メソッドでは、指定された文字配列バッファからOracleClobにデータを書き込みます。

宣言

// C#
public void Write(char[ ] buffer, int offset, int count);

パラメータ

- buffer
OracleClobに書き込まれた文字配列バッファ

- offset
bufferの読取り元のオフセット(文字)

- count
OracleClobに書き込まれるバッファ数(文字)

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。

ArgumentOutOfRangeException - この例外は次のいずれかの条件が存在する場合に表示されます。

- offsetまたはcountが0未満の場合

- offsetがbuffer.Length以上である場合

- offsetおよびcountの合計がbuffer.Lengthより大きい場合

- Positionが偶数でない場合

備考

すべてのCLOBおよびNCLOBデータをUnicodeとして処理します。

LOBデータの読取りは、Positionプロパティにより指定された位置から開始されます。

必要に応じて、クライアント・キャラクタ・セットからデータベース・キャラクタ・セットに適切なデータ変換が行われます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class WriteSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleClob clob = new OracleClob(con);

// Set the Position for the Write;
clob.Position = 0;

// Begin ChunkWrite to improve performance
// Index updates occur only once after EndChunkWrite
clob.BeginChunkWrite();

// Write to the OracleClob in 5 chunks of 2 chars each
char[] c = new char[2] {'a', 'b'};
for (int index = 0; index < 5; index++)
{
clob.Write(c, 0, c.Length);
}
clob.EndChunkWrite();

// Prints "clob.Value = ababababab"
Console.WriteLine("clob.Value = " + clob.Value);

clob.Close();
clob.Dispose();

con.Close();
con.Dispose();
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleClobクラス

- OracleClobメンバー

OracleRefCursorクラス

OracleRefCursorオブジェクトは、Oracle REF CURSORを表します。

クラスの継承

System.Object

System.MarshalRefByObject

Oracle.DataAccess.Types.OracleRefCursor

宣言

// C#
public sealed class OracleRefCursor : MarshalByRefObject, IDisposable, INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

オープン・サーバー・カーソルの数を最小限にするには、OracleRefReaderオブジェクトを明示的に処理する必要があります。

例

// Database Setup
/*
connect scott/tiger@oracle
CREATE OR REPLACE FUNCTION MyFunc(refcur_out OUT SYS_REFCURSOR)
RETURN SYS_REFCURSOR IS refcur_ret SYS_REFCURSOR;
BEGIN
OPEN refcur_ret FOR SELECT * FROM EMP;
OPEN refcur_out FOR SELECT * FROM DEPT;
RETURN refcur_ret;
END MyFunc;
/
*/

// C#

using System;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleRefCursorSample
{
static void Main()
{
// Example demonstrates how to use REF CURSORs returned from
// PL/SQL Stored Procedures or Functions
// Create the PL/SQL Function MyFunc as defined previously

string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

// Create an OracleCommand
OracleCommand cmd = new OracleCommand("MyFunc", con);
cmd.CommandType = CommandType.StoredProcedure;

// Bind the parameters
// p1 is the RETURN REF CURSOR bound to SELECT * FROM EMP;
OracleParameter p1 =
cmd.Parameters.Add("refcur_ret", OracleDbType.RefCursor);
p1.Direction = ParameterDirection.ReturnValue;

// p2 is the OUT REF CURSOR bound to SELECT * FROM DEPT
OracleParameter p2 =
cmd.Parameters.Add("refcur_out", OracleDbType.RefCursor);
p2.Direction = ParameterDirection.Output;

// Execute the command
cmd.ExecuteNonQuery();

// Construct an OracleDataReader from the REF CURSOR
OracleDataReader reader1 = ((OracleRefCursor)p1.Value).GetDataReader();

// Prints "reader1.GetName(0) = EMPNO"
Console.WriteLine("reader1.GetName(0) = " + reader1.GetName(0));

// Construct an OracleDataReader from the REF CURSOR
OracleDataReader reader2 = ((OracleRefCursor)p2.Value).GetDataReader();

// Prints "reader2.GetName(0) = DEPTNO"
Console.WriteLine("reader2.GetName(0) = " + reader2.GetName(0));

reader1.Close();
reader1.Dispose();

reader2.Close();
reader2.Dispose();

p1.Dispose();
p2.Dispose();

cmd.Dispose();

con.Close();
con.Dispose();
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorメンバー

- OracleRefCursor静的メソッド

- OracleRefCursorプロパティ

- OracleRefCursorインスタンス・メソッド

OracleRefCursorメンバー

次の表に、OracleRefCursorメンバーを示します。

OracleRefCursor静的メソッド

OracleRefCursor静的メソッドを、表13-28にリストします。

表13-28 OracleRefCursor静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleRefCursorプロパティ

OracleRefCursorプロパティを、表13-29にリストします。

表13-29 OracleRefCursorプロパティ

プロパティ

説明

Connection

REF CURSORデータのフェッチに使用されるOracleConnectionへの参照

FetchSize

OracleDataReader内部キャッシュが結果セット・データを格納するのために必要なサイズを指定します

RowSize

OracleRefcursor内部キャッシュがデータの1行を格納するのに必要なメモリー量を指定します

OracleRefCursorインスタンス・メソッド

OracleRefCursorインスタンス・メソッドを、表13-30にリストします。

表13-30 OracleRefCursorインスタンス・メソッド

メソッド

説明

Dispose

OracleRefCursorオブジェクトによって割り当てられたリソースを処理します

Equals

System.Objectからの継承(オーバーロード)

GetDataReader

REF CURSORのOracleDataReaderオブジェクトを戻します

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

OracleRefCursor静的メソッド

OracleRefCursor静的メソッドを、表13-31にリストします。

表13-31 OracleRefCursor静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

OracleRefCursorプロパティ

OracleRefCursorプロパティを、表13-32にリストします。

表13-32 OracleRefCursorプロパティ

プロパティ

説明

Connection

REF CURSORデータのフェッチに使用されるOracleConnectionへの参照

FetchSize

OracleDataReader内部キャッシュが結果セット・データを格納するのために必要なサイズを指定します

RowSize

OracleRefcursor内部キャッシュがデータの1行を格納するのに必要なメモリー量を指定します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

Connection

このプロパティは、REF CURSORデータのフェッチに使用されるOracleConnectionを参照します。

宣言

// C#
public OracleConnection Connection {get;}

プロパティ値

OracleConnection

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このプロパティを設定すると、REF CURSORにバインドされます。コンストラクタによってOracleRefCursorオブジェクトが作成されると、このプロパティは最初はnullになります。コマンドを実行すると、OracleRefCursorオブジェクトはREF CURSORにバインドされます。

接続がクローズされるか、または接続プールに返されると、OracleRefCursorは未初期化状態になり、このオブジェクトからの操作は実行されません。ただし、未初期化のOracleRefCursorを別のREF CURSORに再割当てすることはできます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

FetchSize

このプロパティは、OracleDataReaderの内部キャッシュのサイズを指定し、結果セットのデータを格納します。

宣言

// C#
public long FetchSize {get; set;}

プロパティ値

OracleRefCursor内部キャッシュのサイズ(バイト)を指定するlongです。

例外

ArgumentException - 指定したFetchSize値は無効です。

備考

デフォルト = 131072。

FetchSizeプロパティ値はOracleRefCursorオブジェクトを作成したOracleCommandに継承されます。OracleDataReaderオブジェクトのFetchSizeプロパティは、OracleRefCursorがデータベース・ラウンドトリップごとに内部キャッシュにフェッチするデータ量を定義します。

このプロパティは、REF CURSORのデータのフェッチ方法の制御を提供するため、OracleDataAdapterを介して、DataSetまたはDataTableを入力する際に明示的にOracleRefCursorを使用する場合に有用です。

OracleDataReaderオブジェクトがOracleRefCursorから作成される場合、作成したOracleDataReaderオブジェクトは、OracleDataReaderオブジェクトのFetchSize値を継承します。ただし、OracleDataReader FetchSizeプロパティを設定して、結果セットに対してOracleDataReader Readメソッドを最初に呼び出す前に継承した値を設定すると、その値はオーバーライドされます。

RowSizeおよびFetchSizeプロパティは、他のスカラー・データ型とは異なる方法でUDTおよびXMLTypeデータを処理します。ODP.NETの内部キャッシュにはUDTおよびXMLTypeデータへの参照のみが格納されているため、RowSizeプロパティはUDTおよびXMLTypeデータの実際のサイズではなく、参照に必要なメモリー(非常に少量)のみを算定します。その結果、アプリケーションは1回のデータベース・ラウンドトリップで多数のUDTまたはXMLTypeインスタンスをデータベースからフェッチしてしまう可能性があります。これは、UDTおよびXMLTypeデータの実際のサイズがFetchSizeに対するものではなく、デフォルトのキャッシュ・サイズである 131072バイトを満たすには非常に多くのUDTおよびXMLType参照が必要となるためです。したがって、UDTまたはXMLTypeデータをフェッチする際には、フェッチする実際のUDTおよびXMLTypeデータの総量ではなく、対象UDTおよびXMLTypeインスタンスの数を制御するよう、FetchSizeプロパティを適切に構成する必要があります。

注意: LOBおよびLONGデータ型の場合、選択リストの各LOBのキャッシュによって保持されたメタデータおよび参照情報に加えて、InitialLOBFetchSizeおよびInitialLONGFetchSizeプロパティで指定されたサイズのみがRowSizeプロパティによって算定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

RowSize

このプロパティは、OracleRefcursor内部キャッシュがデータの1行を保存するために必要とするメモリー量を指定します。

宣言

// C#
public long RowSize {get;}

プロパティ値

longは、OracleRefcursorが実行された問合せのデータ1行を格納するために必要とするメモリー量(バイト)を示します。

備考

RowSizeプロパティは、OracleRefcursorオブジェクトが作成されると、ゼロ以外の値に設定されます。このプロパティは、行数に基づいてFetchSizeを設定する場合に、設計時または実行時に動的に使用できます。たとえば、OracleRefcursorを有効にして、データベース・ラウンドトリップごとにN行をフェッチするには、OracleRefcursor FetchSizeプロパティをRowSize * Nに動的に設定できます。FetchSizeを適切に有効化するには、OracleDataAdapterを使用して、DataSetまたはDataTableを入力してから設定する必要があることに注意してください。

OracleDataReaderがGetDataReaderメソッドを介してOracleRefCursorから取得される場合、OracleDataReaderには、OracleRefCursorのFetchSize値に対するFetchSizeプロパティ・セットが含まれます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

OracleRefCursorインスタンス・メソッド

OracleRefCursorインスタンス・メソッドを、表13-33にリストします。

表13-33 OracleRefCursorインスタンス・メソッド

メソッド

説明

Dispose

OracleRefCursorオブジェクトによって割り当てられたリソースを処理します

Equals

System.Objectからの継承(オーバーロード)

GetDataReader

REF CURSORのOracleDataReaderオブジェクトを戻します

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

Dispose

このインスタンス・メソッドは、OracleRefCursorオブジェクトによって割り当てられたリソースを処理します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

オブジェクトは、処理後は再度使用できません。

Dispose()が呼び出されると、OracleRefCursorのオブジェクトは未初期化状態になります。引き続き一部のプロパティにアクセスすることはできますが、その値は信頼できません。リソースが解放されているため、メソッドのコールにより例外が発生することがあります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

GetDataReader

このインスタンス・メソッドは、REF CURSORのOracleDataReaderオブジェクトを戻します。

宣言

// C#
public OracleDataReader GetDataReader();

戻り値

OracleDataReader

備考

OracleDataReaderを使用すると、REF CURSORから行をフェッチできます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefCursorクラス

- OracleRefCursorメンバー

14 Oracle Data Provider for .NETタイプの構造

この章では、ODP.NETタイプの構造について説明します。

この章の内容は次のとおりです。

- OracleBinary構造

- OracleDate構造

- OracleDecimal構造

- OracleIntervalDS構造

- OracleIntervalYM構造

- OracleString構造

- OracleTimeStamp構造

- OracleTimeStampLTZ構造

- OracleTimeStampTZ構造

- INullableインタフェース

OracleBinary構造

OracleBinary構造は、データベースに格納されるか、またはデータベースから取得されるバイナリ・データの可変長ストリームを表します。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleBinary

宣言

// ADO.NET 2.0: C#
public struct OracleBinary : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OracleBinarySample
{
static void Main(string[] args)
{
// Initialize the OracleBinary structures
OracleBinary binary1= new OracleBinary(new byte[] {1,2,3,4,5});
OracleBinary binary2 = new OracleBinary(new byte[] {1,2,3});
OracleBinary binary3 = new OracleBinary(new byte[] {4,5});
OracleBinary binary4 = binary2 + binary3;

// Compare binary1 and binary4; they're equal
if (binary1 == binary4)
Console.WriteLine("The two OracleBinary structs are equal");
else
Console.WriteLine("The two OracleBinary structs are different");
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinaryメンバー

- OracleBinaryコンストラクタ

- OracleBinary静的フィールド

- OracleBinary静的メソッド

- OracleBinary静的演算子

- OracleBinary静的型変換演算子

- OracleBinaryプロパティ

- OracleBinaryインスタンス・メソッド

OracleBinaryメンバー

OracleBinaryメンバーは次の表にリスト表示されています。

OracleBinaryコンストラクタ

OracleBinaryコンストラクタを、表14-1にリストします。

表14-1 OracleBinaryコンストラクタ

コンストラクタ

説明

OracleBinaryコンストラクタ

OracleBinary構造の新規インスタンスをインスタンス化します

OracleBinary静的フィールド

OracleBinary静的フィールドを、表14-2にリストします。

表14-2 OracleBinary静的フィールド

フィールド

説明

Null

OracleBinary構造のインスタンスに割り当てることができるNULL値を表します

OracleBinary静的メソッド

OracleBinary静的メソッドを、表14-3にリストします。

表14-3 OracleBinary静的メソッド

メソッド

説明

Concat

2つのOracleBinary構造の連結を戻します

Equals

2つのOracleBinary値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleBinary値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleBinary値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleBinary値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleBinary値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleBinary値が等しくないかどうかを判別します

OracleBinary静的演算子

OracleBinary静的演算子を、表14-4にリストします。

表14-4 OracleBinary静的演算子

演算子

説明

operator+

2つのOracleBinary値を連結します

operator ==

2つのOracleBinary値が等しいかどうかを判別します

operator >

2つのOracleBinary値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleBinary値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleBinary値が等しくないかどうかを判別します

operator <

2つのOracleBinary値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleBinary値のうち、最初の値が2番目の値以下かどうかを判別します

OracleBinary静的型変換演算子

OracleBinary静的型変換演算子を、表14-5にリストします。

表14-5 OracleBinary静的型変換演算子

演算子

説明

explicit operator byte[ ]

インスタンス値をバイト配列に変換します

implicit operator OracleBinary

インスタンス値をOracleBinary構造に変換します

OracleBinaryプロパティ

OracleBinaryプロパティを、表14-6にリストします。

表14-6 OracleBinaryプロパティ

プロパティ

説明

IsNull

現行インスタンスにNULL値があるかどうかを示します

Item

索引を使用してOracleBinary構造の特定のbyteを取得します

Length

バイナリ・データの長さを戻します

Value

OracleBinary構造に格納されたバイナリ・データを戻します

OracleBinaryインスタンス・メソッド

OracleBinaryインスタンス・メソッドを、表14-7にリストします。

表14-7 OracleBinaryインスタンス・メソッド

メソッド

説明

CompareTo

現行のインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

2つのオブジェクトに同じバイナリ・データが含まれるかどうかを判別します(オーバーロード)

GetHashCode

現行インスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToString

現行のOracleBinary構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

OracleBinaryコンストラクタ

OracleBinaryコンストラクタでは、OracleBinary構造の新規インスタンスをインスタンス化し、その値を指定されたバイト配列に設定します。

宣言

// C#
public OracleBinary(byte[ ] bytes);

パラメータ

- bytes
バイト配列

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleBinary静的フィールド

OracleBinary静的フィールドを、表14-8にリストします。

表14-8 OracleBinary静的フィールド

フィールド

説明

Null

OracleBinary構造のインスタンスに割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Null

この静的フィールドはOracleBinary構造のインスタンスに割当てできるNULL値を表します。

宣言

// C#
public static readonly OracleBinary Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleBinary静的メソッド

OracleBinary静的メソッドを、表14-9にリストします。

表14-9 OracleBinary静的メソッド

メソッド

説明

Concat

2つのOracleBinary構造の連結を戻します

Equals

2つのOracleBinary値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleBinary値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleBinary値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleBinary値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleBinary値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleBinary値が等しくないかどうかを判別します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Concat

このメソッドは2つのOracleBinary構造の連結を戻します。

宣言

// C#
public static OracleBinary Concat(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

OracleBinary

備考

引数のいずれかにNULL値がある場合、戻されたOracleBinary構造にはNULL値が含まれています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Equals

このメソッドでは、2つのOracleBinary値が同じであるかどうかを判別します。

宣言

// C#
public static bool Equals(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値が同じ場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

GreaterThan

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値より大きいかどうかを判別します。

宣言

// C#
public static bool GreaterThan(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class GreaterThanSample
{
static void Main(string[] args)
{
OracleBinary binary1 = OracleBinary.Null;
OracleBinary binary2 = new OracleBinary(new byte[] {1});

// Compare two OracleBinary structs; binary1 < binary2
if (OracleBinary.GreaterThan(binary1, binary2))
Console.WriteLine("binary1 > binary2");
else
Console.WriteLine("binary1 < binary2");
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

GreaterThanOrEqual

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値以上であるかどうかを判別します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値以上の場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

LessThan

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値より小さいかどうかを判別します。

宣言

// C#
public static bool LessThan(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値より小さい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

LessThanOrEqual

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値以下かどうかを判別します。

宣言

// C#
public static bool LessThanOrEqual(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値以下の場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

NotEquals

このメソッドでは、2つのOracleBinary値が同じでないかどうかを判別します。

宣言

// C#
public static bool NotEquals(OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値が同じでない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleBinary静的演算子

OracleBinary静的演算子を、表14-10にリストします。

表14-10 OracleBinary静的演算子

演算子

説明

operator+

2つのOracleBinary値を連結します

operator ==

2つのOracleBinary値が等しいかどうかを判別します

operator >

2つのOracleBinary値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleBinary値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleBinary値が等しくないかどうかを判別します

operator <

2つのOracleBinary値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleBinary値のうち、最初の値が2番目の値以下かどうかを判別します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator +

このメソッドでは、2つのOracleBinary値を連結します。

宣言

// C#
public static OracleBinary operator + (OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

OracleBinary

備考

引数のいずれかにNULL値がある場合、戻されたOracleBinary構造にはNULL値が含まれています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator ==

このメソッドでは、2つのOracleBinary値が同じであるかどうかを判別します。

宣言

// C#
public static bool operator == (OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

値が同じ場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator >

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値より大きいかどうかを判別します。

宣言

// C#
public static bool operator > (OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OperatorSample
{
static void Main(string[] args)
{
OracleBinary binary1 = OracleBinary.Null;
OracleBinary binary2 = new OracleBinary(new byte[] {1});

// Compare two OracleBinary structs; binary1 < binary2
if (binary1 > binary2)
Console.WriteLine("binary1 > binary2");
else
Console.WriteLine("binary1 < binary2");
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator >=

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値以上かどうかを判別します。

宣言

// C#
public static bool operator >= (OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値以上の場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator !=

このメソッドでは、2つのOracleBinary値が同じでないかどうかを判別します。

宣言

// C#
public static bool operator != (OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値が同じでない場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator <

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値より小さいかどうかを判別します。

宣言

// C#
public static bool operator < ( OracleBinary value1, OracleBinary value2);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値より小さい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

operator <=

このメソッドでは、2つのOracleBinary値の最初の値が2番目の値以下かどうかを判別します。

宣言

// C#
public static bool operator <= (OracleBinary value1, OracleBinary value1);

パラメータ

- value1
最初のOracleBinary

- value2
2番目のOracleBinary

戻り値

2つのOracleBinary値の最初の値が2番目の値以下の場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleBinary静的型変換演算子

OracleBinary静的型変換演算子を、表14-11にリストします。

表14-11 OracleBinary静的型変換演算子

演算子

説明

explicit operator byte[ ]

インスタンス値をバイト配列に変換します

implicit operator OracleBinary

インスタンス値をOracleBinary構造に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

explicit operator byte[ ]

このメソッドではOracleBinary値をバイト配列に変換します。

宣言

// C#
public static explicit operator byte[ ] (OracleBinary val);

パラメータ

- val
OracleBinary

戻り値

バイト配列

例外

OracleNullValueException - OracleBinary構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

implicit operator OracleBinary

このメソッドではバイト配列をOracleBinary構造に変換します。

宣言

// C#
public static implicit operator OracleBinary(byte[ ] bytes);

パラメータ

- bytes
バイト配列

戻り値

OracleBinary

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleBinaryプロパティ

OracleBinaryプロパティを、表14-12にリストします。

表14-12 OracleBinaryプロパティ

プロパティ

説明

IsNull

現行インスタンスにNULL値があるかどうかを示します

Item

索引を使用してOracleBinary構造の特定のbyteを取得します

Length

バイナリ・データの長さを戻します

Value

OracleBinary構造に格納されたバイナリ・データを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull {get;}

プロパティ値

現行のインスタンスにNULL値がある場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Item

このプロパティでは、索引を使用してOracleBinary構造の特定のbyteを取得します。

宣言

// C#
public byte this[int index] {get;}

プロパティ値

指定された索引のバイト

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class ItemSample
{
static void Main(string[] args)
{
OracleBinary binary = new OracleBinary(new byte[] {1,2,3,4});

// Prints the value 4
Console.WriteLine(binary[binary.Length - 1]);
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Length

このプロパティではバイナリ・データの長さを戻します。

宣言

// C#
public int length {get;}

プロパティ値

バイナリ・データの長さ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class LengthSample
{
static void Main(string[] args)
{
OracleBinary binary = new OracleBinary(new byte[] {1,2,3,4});

// Prints the value 4
Console.WriteLine(binary.Length);
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Value

このプロパティではOracleBinary構造に格納されたバイナリ・データを戻します。

宣言

// C#
public byte[] Value {get;}

プロパティ値

バイナリ・データ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleBinaryインスタンス・メソッド

OracleBinaryインスタンス・メソッドを、表14-13にリストします。

表14-13 OracleBinaryインスタンス・メソッド

メソッド

説明

CompareTo

現行のインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

2つのオブジェクトに同じバイナリ・データが含まれるかどうかを判別します(オーバーロード)

GetHashCode

現行インスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToString

現行のOracleBinary構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

CompareTo

このメソッドでは、現行のインスタンスとオブジェクトを比較し、相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
比較対象のオブジェクト

戻り値

メソッドが戻す数値は次のとおりです。

- ゼロ未満: 現行のOracleBinaryインスタンス値がobjより小さい場合

- ゼロ: 現行のOracleBinaryインスタンス値とobj値のバイナリ・データが同じ場合

- ゼロ超過: 現行のOracleBinaryインスタンス値がobjより大きい場合

実装

IComparable

例外

ArgumentException - パラメータがOracleBinary型でない場合

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleBinary間で行う必要があります。たとえば、OracleBinaryインスタンスとOracleTimeStampインスタンスを比較することはできません。OracleBinaryを他の型と比較すると、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class CompareToSample
{
static void Main(string[] args)
{
OracleBinary binary1 = new OracleBinary(new byte[] {1,2,3});
OracleBinary binary2 = new OracleBinary(new byte[] {1,2,3,4});

// Compare
if (binary1.CompareTo(binary2) == 0)
Console.WriteLine("binary1 is the same as binary2");
else
Console.WriteLine("binary1 is different from binary2");
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

Equals

このメソッドでは、オブジェクトがOracleBinaryのインスタンスであるかどうか、および現行のインスタンスと同じバイナリ・データかどうかを判別します。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
比較対象のオブジェクト

戻り値

objがOracleBinaryのオブジェクトで、バイナリ・データが現行のインスタンスと同じ場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleBinaryは、NULL値を持つOracleBinaryより大きくなります。

- NULL値を含む2つのOracleBinaryは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドではOracleBinaryインスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュを表すint

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

ToString

Objectをオーバーライドします。

このメソッドではOracleBinaryインスタンスを文字列インスタンスに変換します。

宣言

// C#
public override string ToString();

戻り値

string

備考

現行のOracleBinaryインスタンスにNULL値がある場合は、戻される文字列は「NULL」です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleBinary構造

- OracleBinaryメンバー

OracleDate構造

OracleDate構造は、データベースに格納されるか、またはデータベースから取得されるOracle DATEデータ型を表します。各OracleDateには、年、月、日、時、分、秒の情報が格納されます。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleDate

宣言

// ADO.NET 2.0: C#
public struct OracleDate : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class OracleDateSample
{
static void Main(string[] args)
{
// Initialize the dates to the lower and upper boundaries
OracleDate date1 = OracleDate.MinValue;
OracleDate date2 = OracleDate.MaxValue;
OracleDate date3 = new OracleDate(DateTime.MinValue);
OracleDate date4 = new OracleDate(DateTime.MaxValue);

// Set the thread's DateFormat for output
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.DateFormat = "DD-MON-YYYY BC";
OracleGlobalization.SetThreadInfo(info);

// Print the lower and upper boundaries
Console.WriteLine("OracleDate ranges from\n{0}\nto\n{1}\n",
date1, date2);
Console.WriteLine(".NET DateTime ranges from\n{0}\nto\n{1}\n",
date3, date4);
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDateメンバー

- OracleDateコンストラクタ

- OracleDate静的フィールド

- OracleDate静的メソッド

- OracleDate静的演算子

- OracleDate静的型変換

- OracleDateプロパティ

- OracleDateメソッド

OracleDateメンバー

OracleDateメンバーは次の表にリストされています。

OracleDateコンストラクタ

OracleDateコンストラクタを、表14-14にリストします。

表14-14 OracleDateコンストラクタ

コンストラクタ

説明

OracleDateコンストラクタ

OracleDate構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleDate静的フィールド

OracleDate静的フィールドを、表14-15にリストします。

表14-15 OracleDate静的フィールド

フィールド

説明

MaxValue

OracleDate構造に対する有効な日付の最大値、9999年12月31日、23時59分59秒を表します

MinValue

OracleDate構造に対する有効な日付の最小値、-4712年1月1日、0時0分0秒を表します

Null

OracleDate構造インスタンスの値に割り当てることができるNULL値を表します

OracleDate静的メソッド

OracleDate静的メソッドを、表14-16にリストします。

表14-16 OracleDate静的メソッド

メソッド

説明

Equals

2つのOracleDate値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleDate値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleDate値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleDate値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleDate値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleDate値が等しくないかどうかを判別します

GetSysDate

現在の日時を表すOracleDate構造を戻します

Parse

OracleDate構造を戻し、文字列を使用してその値を設定します

OracleDate静的演算子

OracleDate静的演算子を、表14-17にリストします。

表14-17 OracleDate静的演算子

演算子

説明

operator ==

2つのOracleDate値が等しいかどうかを判別します

operator >

2つのOracleDate値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleDate値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleDate値が等しくないかどうかを判別します

operator <

2つのOracleDate値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleDate値のうち、最初の値が2番目の値以下かどうかを判別します

OracleDate静的型変換

OracleDate静的型変換を、表14-18にリストします。

表14-18 OracleDate静的型変換

演算子

説明

explicit operator DateTime

構造をDateTime構造に変換します

explicit operator OracleDate

構造をOracleDate構造に変換します(オーバーロード)

OracleDateプロパティ

OracleDateプロパティを、表14-19にリストします。

表14-19 OracleDateプロパティ

プロパティ

説明

BinData

Oracleの内部書式でOracle DATEを表すバイトの配列を取得します

Day

OracleDateメソッドのdayコンポーネントを取得します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Hour

OracleDateのhourコンポーネントを取得します

Minute

OracleDateのminuteコンポーネントを取得します

Month

OracleDateのmonthコンポーネントを取得します

Second

OracleDateのsecondコンポーネントを取得します

Value

OracleDate構造に格納されている日時を取得します

Year

OracleDateのyearコンポーネントを取得します

OracleDateメソッド

OracleDateメソッドを、表14-20にリストします。

表14-20 OracleDateメソッド

メソッド

説明

CompareTo

現行のOracleDateインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleDateインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetHashCode

OracleDateインスタンスのハッシュ・コードを戻します

GetDaysBetween

現行のOracleDateインスタンスとOracleDate構造間の日数を計算します

GetType

System.Objectからの継承

ToOracleTimeStamp

現行のOracleDate構造をOracleTimeStamp構造に変換します

ToString

現行のOracleDate構造をstringに変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

OracleDateコンストラクタ

OracleDateコンストラクタでは、OracleDate構造の新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleDate(DateTime)
このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定されたDateTime値を使用して日付と時間の値を設定します。

- OracleDate(string)
このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定された文字列を使用してその値を設定します。

- OracleDate(int, int, int)
このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定された年、月および日を使用して日付の値を設定します。

- OracleDate(int, int, int, int, int, int)
このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定された年、月、日、時、分および秒を使用して時間の値を設定します。

- OracleDate(byte [ ])
このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、その値を指定されたバイト配列に設定します。このバイト配列は、内部Oracle DATE書式です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate(DateTime)

このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定されたDateTime値を使用して日付と時間の値を設定します。

宣言

// C#
public OracleDate (DateTime dt);

パラメータ

- dt
指定されたDateTime値

備考

OracleDate構造では、下2桁までサポートされます。指定したDateTime構造の時刻値に下3桁以下が含まれる場合は、無視されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate(string)

このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定された文字列を使用してその値を設定します。

宣言

// C#
public OracleDate (string dateStr);

パラメータ

- dateStr
Oracle DATEを表す文字列

例外

ArgumentException - dateStrはOracle DATEの無効な文字列表現です。またはdateStrは、OracleのNLS_DATE_FORMATパラメータを表す、スレッドのOracleGlobalization.DateFormatプロパティによって指定された日付書式ではありません。

ArgumentNullException - dateStrはNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class OracleDateSample
{
static void Main(string[] args)
{
// Set the thread's DateFormat for the OracleDate constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.DateFormat = "YYYY-MON-DD";
OracleGlobalization.SetThreadInfo(info);

// construct OracleDate from a string using the DateFormat specified.
OracleDate date = new OracleDate("1999-DEC-01");

// Set a different DateFormat for the thread
info.DateFormat = "MM/DD/YYYY";
OracleGlobalization.SetThreadInfo(info);

// Print "12/01/1999"
Console.WriteLine(date.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

- 「OracleGlobalizationクラス」

- 日付書式要素の詳細は、Oracle Database SQLリファレンスを参照

OracleDate(int, int, int)

このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定された年、月および日を使用して日付の値を設定します。

宣言

// C#
public OracleDate (int year, int month, int day);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日。dayの範囲は(1から31)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値が有効なOracleDateを構築するのに使用できません(日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate(int, int, int, int, int, int)

このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、指定された年、月、日、時、分および秒を使用して時間の値を設定します。

宣言

// C#
public OracleDate (int year, int month, int day, int hour, int minute, int second);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値が有効なOracleDateを構築するのに使用できません(日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate(byte [ ])

このコンストラクタでは、OracleDate構造の新規インスタンスを作成し、その値を指定されたバイト配列に設定します。このバイト配列は、内部Oracle DATE書式です。

宣言

// C#
public OracleDate(byte [] bytes);

パラメータ

- bytes
内部Oracle DATE書式のOracle DATEを表すバイト配列

例外

ArgumentException - bytesはNULLであるか、bytesはOracleの内部DATE書式ではないか、またはbytesは有効なOracle DATEではありません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate静的フィールド

OracleDate静的フィールドを、表14-21にリストします。

表14-21 OracleDate静的フィールド

フィールド

説明

MaxValue

OracleDate構造に対する有効な日付の最大値、9999年12月31日、23時59分59秒を表します

MinValue

OracleDate構造に対する有効な日付の最小値、-4712年1月1日、0時0分0秒を表します

Null

OracleDate構造インスタンスの値に割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

MaxValue

この静的フィールドは、OracleDate構造に対する有効な日付の最大値、9999年12月31日、23時59分59秒を表します。

宣言

// C#
public static readonly OracleDate MaxValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

MinValue

この静的フィールドは、OracleDate構造に対する有効な日付の最小値、-4712年1月1日を表します。

宣言

// C#
public static readonly OracleDate MinValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Null

この静的フィールドは、OracleDateインスタンスの値に割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleDate Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate静的メソッド

OracleDate静的メソッドを、表14-22にリストします。

表14-22 OracleDate静的メソッド

メソッド

説明

Equals

2つのOracleDate値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleDate値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleDate値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleDate値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleDate値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleDate値が等しくないかどうかを判別します

GetSysDate

現在の日時を表すOracleDate構造を戻します

Parse

OracleDate構造を戻し、文字列を使用してその値を設定します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Equals

Objectをオーバーロードします。

このメソッドでは、2つのOracleDate値が等しいかどうかを判断します。

宣言

// C#
public static bool Equals(OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値が等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

GreaterThan

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値より大きいかどうかを判断します。

宣言

// C#
public static bool GreaterThan(OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

GreaterThanOrEqual

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値以上であるかどうかを判断します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

LessThan

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値より小さいかどうかを判断します。

宣言

// C#
public static bool LessThan(OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値より小さい場合はtrueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

LessThanOrEqual

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値以下であるかどうかを判断します。

宣言

// C#
public static bool LessThanOrEqual(OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

NotEquals

このメソッドでは、2つのOracleDate値が等しくないかどうかを判断します。

宣言

// C#
public static bool NotEquals(OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値が等しくない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

GetSysDate

このメソッドでは、現在の日付および時間を表すOracleDate構造を取得します。

宣言

// C#
public static OracleDate GetSysDate ();

戻り値

現在の日付および時間を表すOracleDate構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Parse

このメソッドでは、OracleDate構造を取得し、指定した文字列を使用して日付および時間の値を設定します。

宣言

// C#
public static OracleDate Parse (string dateStr);

パラメータ

- dateStr
Oracle DATEを表す文字列

戻り値

OracleDate構造

例外

ArgumentException - dateStrはOracle DATEの無効な文字列表現です。またはdateStrは、OracleのNLS_DATE_FORMATパラメータを表す、スレッドのOracleGlobalization.DateFormatプロパティによって指定された日付書式ではありません。

ArgumentNullException - dateStrはNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class ParseSample
{
static void Main(string[] args)
{
// Set the thread's DateFormat for the OracleDate constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.DateFormat = "YYYY-MON-DD";
OracleGlobalization.SetThreadInfo(info);

// Construct OracleDate from a string using the DateFormat specified
OracleDate date = OracleDate.Parse("1999-DEC-01");

// Set a different DateFormat on the thread for ToString()
info.DateFormat = "MM-DD-YY";
OracleGlobalization.SetThreadInfo(info);

// Print "12-01-1999"
Console.WriteLine(date.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

- 日時書式要素の詳細は、Oracle Database SQLリファレンスを参照

OracleDate静的演算子

OracleDate静的演算子を、表14-23にリストします。

表14-23 OracleDate静的演算子

演算子

説明

operator ==

2つのOracleDate値が等しいかどうかを判別します

operator >

2つのOracleDate値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleDate値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleDate値が等しくないかどうかを判別します

operator <

2つのOracleDate値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleDate値のうち、最初の値が2番目の値以下かどうかを判別します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

operator ==

このメソッドでは、2つのOracleDate値が等しいかどうかを判断します。

宣言

// C#
public static bool operator == (OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

これらの値が等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

operator >

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値より大きいかどうかを判断します。

宣言

// C#
public static bool operator > (OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

operator >=

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値以上であるかどうかを判断します。

宣言

// C#
public static bool operator >= (OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

operator !=

このメソッドでは、2つのOracleDate値が等しくないかどうかを判断します。

宣言

// C#
public static bool operator != (OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値が等しくない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

operator <

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値より小さいかどうかを判断します。

宣言

// C#
public static bool operator < (OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値より小さい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

operator <=

このメソッドでは、2つのOracleDate値のうち、最初の値が2番目の値以下であるかどうかを判断します。

宣言

// C#
public static bool operator <= (OracleDate value1, OracleDate value2);

パラメータ

- value1
最初のOracleDate

- value2
2番目のOracleDate

戻り値

2つのOracleDate値のうち、最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDate静的型変換

OracleDate静的型変換を、表14-24にリストします。

表14-24 OracleDate静的型変換

演算子

説明

explicit operator DateTime

構造をDateTime構造に変換します

explicit operator OracleDate

構造をOracleDate構造に変換します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

explicit operator DateTime

このメソッドにより、OracleDate構造がDateTime構造に変換されます。

宣言

// C#
public static explicit operator DateTime(OracleDate val);

パラメータ

- val
OracleDate構造

戻り値

DateTime構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

explicit operator OracleDate

explicit operator OracleDateにより、指定された構造がOracleDate構造に変換されます。

オーバーロード・リスト:

- explicit operator OracleDate(DateTime)
このメソッドにより、DateTime構造がOracleDate構造に変換されます。

- explicit operator OracleDate(OracleTimeStamp)
このメソッドにより、OracleTimeStamp構造がOracleDate構造に変換されます。

- explicit operator OracleDate(string)
このメソッドにより、指定した文字列がOracleDate構造に変換されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

explicit operator OracleDate(DateTime)

このメソッドにより、DateTime構造がOracleDate構造に変換されます。

宣言

// C#
public static explicit operator OracleDate(DateTime dt);

パラメータ

- dt
DateTime構造

戻り値

OracleDate構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

explicit operator OracleDate(OracleTimeStamp)

このメソッドにより、OracleTimeStamp構造がOracleDate構造に変換されます。

宣言

// C#
public explicit operator OracleDate(OracleTimeStamp ts);

パラメータ

- ts
OracleTimeStamp

戻り値

戻されたOracleDate構造には、OracleTimeStamp構造の日付および時間が含まれます。

備考

OracleTimeStamp値の精度が変換中に失われる場合があります。

OracleTimeStamp構造にNULL値がある場合、戻されたOracleDate構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

explicit operator OracleDate(string)

このメソッドにより、指定した文字列がOracleDate構造に変換されます。

宣言

// C#
public explicit operator OracleDate (string dateStr);

パラメータ

- dateStr
Oracle DATEの文字列表現

戻り値

戻されたOracleDate構造には、文字列dateStrの日付および時間が含まれます。

例外

ArgumentNullException - dateStrはNULLです。

ArgumentException - この例外は次のいずれかの条件が存在する場合に表示されます。

- dateStrはOracle DATEの無効な文字列表現です。

- dateStrは、OracleのNLS_DATE_FORMATパラメータを表す、スレッドのOracleGlobalization.DateFormatプロパティによって指定される日付書式ではありません。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleDateSample
{
static void Main(string[] args)
{
// Set the thread's DateFormat to a specific format
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.DateFormat = "YYYY-MON-DD";
OracleGlobalization.SetThreadInfo(info);

// Construct OracleDate from a string using the DateFormat specified
OracleDate date = (OracleDate)"1999-DEC-01";

// Set a different DateFormat on the thread for ToString()
info.DateFormat = "MON DD YY";
OracleGlobalization.SetThreadInfo(info);

// Prints "DEC 01 99"
Console.WriteLine(date.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleDateプロパティ

OracleDateプロパティを、表14-25にリストします。

表14-25 OracleDateプロパティ

プロパティ

説明

BinData

Oracleの内部書式でOracle DATEを表すバイトの配列を取得します

Day

OracleDateメソッドのdayコンポーネントを取得します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Hour

OracleDateのhourコンポーネントを取得します

Minute

OracleDateのminuteコンポーネントを取得します

Month

OracleDateのmonthコンポーネントを取得します

Second

OracleDateのsecondコンポーネントを取得します

Value

OracleDate構造に格納されている日時を取得します

Year

OracleDateのyearコンポーネントを取得します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

BinData

このプロパティでは、Oracleの内部書式でOracle DATEを表すバイトの配列を取得します。

宣言

// C#
public byte[] BinData{get;}

プロパティ値

バイトの配列

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Day

このプロパティはOracleDateのdayコンポーネントを取得します。

宣言

// C#
public int Day{get;}

プロパティ値

日を表す数値。Dayの範囲は(1から31)です。

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrueを戻し、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Hour

このプロパティはOracleDateのhourコンポーネントを取得します。

宣言

// C#
public int Hour {get;}

プロパティ値

Hourを表す数値。Hourの範囲は(0から23)です。

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Minute

このプロパティはOracleDateのminuteコンポーネントを取得します。

宣言

// C#
public int Minute {get;}

プロパティ値

Minuteを表す数値。Minuteの範囲は(0から59)です。

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Month

このプロパティはOracleDateのmonthコンポーネントを取得します。

宣言

// C#
public int Month {get;}

プロパティ値

Monthを表す数値。Monthの範囲は(1から12)です。

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Second

このプロパティはOracleDateのsecondコンポーネントを取得します。

宣言

// C#
public int Second {get;}

プロパティ値

Secondを表す数値。Secondの範囲は(0から59)です。

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Value

このプロパティは、OracleDate構造に格納されている日付および時間を指定します。

宣言

// C#
public DateTime Value {get;}

プロパティ値

DateTime

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Year

このプロパティはOracleDateのyearコンポーネントを取得します。

宣言

// C#
public int Year {get;}

プロパティ値

Yearを表す数値。Yearの範囲は(-4712から9999)です。

例外

OracleNullValueException - OracleDateにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

OracleDateメソッド

OracleDateメソッドを、表14-26にリストします。

表14-26 OracleDateメソッド

メソッド

説明

CompareTo

現行のOracleDateインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleDateインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetHashCode

OracleDateインスタンスのハッシュ・コードを戻します

GetDaysBetween

現行のOracleDateインスタンスとOracleDate構造間の日数を計算します

GetType

System.Objectからの継承

ToOracleTimeStamp

現行のOracleDate構造をOracleTimeStamp構造に変換します

ToString

現行のOracleDate構造をstringに変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

CompareTo

このメソッドは、現行のOracleDateインスタンスとオブジェクトを比較し、その相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
オブジェクト

戻り値

メソッドにより、次を戻します。

- ゼロ未満: 現行のOracleDateインスタンス値がobjより小さい場合

- ゼロ: 現行のOracleDateインスタンスとobj値が等しい場合

- ゼロ超過: 現行のOracleDateインスタンス値がobjより大きい場合

実装

IComparable

例外

ArgumentException - objパラメータは、OracleDateのインスタンスではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleDate間で行う必要があります。たとえば、OracleDateインスタンスとOracleBinaryインスタンスを比較することはできません。OracleDateを別のタイプと比較すると、ArgumentExceptionがスローされます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

Equals

このメソッドでは、オブジェクトに現行のOracleDateインスタンスと同じ日付および時間があるかどうかを判断します。

宣言

// C#
public override bool Equals( object obj);

パラメータ

- obj
オブジェクト

戻り値

objに現行インスタンスと同じタイプがあり、同じ日付および時間を表す場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDateは、NULL値を持つOracleDateより大きい値とみなされます。

- NULL値を含む2つのOracleDateは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドにより、OracleDateインスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表す数値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

GetDaysBetween

このメソッドでは、現行のOracleDateインスタンスと指定したOracleDate構造間の日数を計算します。

宣言

// C#
public int GetDaysBetween (OracleDate val);

パラメータ

- val
OracleDate構造

戻り値

現行のOracleDateインスタンスとOracleDate構造間の日数

例外

OracleNullValueException - 現行インスタンスまたは指定されたOracleDate構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

ToOracleTimeStamp

このメソッドにより、現行のOracleDate構造がOracleTimeStamp構造に変換されます。

宣言

// C#
public OracleTimeStamp ToOracleTimeStamp();

戻り値

OracleTimeStamp構造

備考

戻されたOracleTimeStamp構造には、現行インスタンスの日付および時間があります。

OracleDateインスタンスにNULL値がある場合、戻されたOracleTimeStamp構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

ToString

ValueTypeをオーバーライドします

このメソッドにより、現行のOracleDate構造がstringに変換されます。

宣言

// C#
public override string ToString();

戻り値

文字列

備考

戻された値は、スレッドのOracleGlobalization.DateFormatプロパティで指定された書式における、OracleDateの文字列表現です。月および日付に使用されている名称および略称は、スレッドのOracleGlobalization.DateLanguageおよびOracleGlobalization.Calendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class ToStringSample
{
static void Main(string[] args)
{
// Set the thread's DateFormat to a specific format
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.DateFormat = "YYYY-MON-DD";
OracleGlobalization.SetThreadInfo(info);

// Construct OracleDate from a string using the DateFormat specified
OracleDate date = (OracleDate)"1999-DEC-01";

// Set a different DateFormat on the thread for ToString()
info.DateFormat = "YYYY/MM/DD";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999/12/01"
Console.WriteLine(date.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDate構造

- OracleDateメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleDecimal構造

OracleDecimal構造は、データベース内のOracle NUMBERまたは任意のOracleの数値を表します。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleDecimal

宣言

// ADO.NET 2.0: C#
public struct OracleDecimal : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

.NETのDecimalデータ型では最大28までの精度しか保持できませんが、OracleDecimalでは最大38までの精度を格納できます。精度が28を超える値を持つOracleDecimalからOracleDecimal.Valueプロパティにアクセスすると、例外がスローされます。OracleDecimalの実際の値を取得するには、OracleDecimal.ToString()メソッドを使用します。または、BinDataプロパティにより、OracleDecimal値をバイト配列として内部Oracle NUMBER書式で取得する方法があります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OracleDecimalSample
{
static void Main(string[] args)
{
// Illustrates the range of OracleDecimal vs. .NET decimal
OracleDecimal decimal1 = OracleDecimal.MinValue;
OracleDecimal decimal2 = OracleDecimal.MaxValue;
OracleDecimal decimal3 = new OracleDecimal(decimal.MinValue);
OracleDecimal decimal4 = new OracleDecimal(decimal.MaxValue);

// Print the ranges
Console.WriteLine("OracleDecimal can range from\n{0}\nto\n{1}\n",
decimal1, decimal2);
Console.WriteLine(".NET decimal can range from\n{0}\nto\n{1}",
decimal3, decimal4);
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimalコンストラクタ

- OracleDecimal静的フィールド

- OracleDecimal静的(比較)メソッド

- OracleDecimal静的(操作)メソッド

- OracleDecimal静的(対数)メソッド

- OracleDecimal静的(三角法)メソッド

- OracleDecimal静的(比較)演算子

- OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)

- OracleDecimal静的演算子(OracleDecimalから.NETへの変換)

- OracleDecimalプロパティ

- OracleDecimalインスタンス・メソッド

OracleDecimalメンバー

OracleDecimalメンバーは次の表にリストされています。

OracleDecimalコンストラクタ

OracleDecimalコンストラクタを、表14-27にリストします。

表14-27 OracleDecimalコンストラクタ

コンストラクタ

説明

OracleDecimalコンストラクタ

OracleDecimal構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleDecimal静的フィールド

OracleDecimal静的フィールドを、表14-28にリストします。

表14-28 OracleDecimal静的フィールド

フィールド

説明

MaxPrecision

最大精度を表す定数(38)

MaxScale

最大の位取りを表す定数(127)

MaxValue

この構造の最大値である、9.9…9 x 10^125を表す定数

MinScale

最小の位取りを表す定数(-84)

MinValue

この構造の最小値である、-1.0 x 10^130の定数

NegativeOne

ある負の値の定数

Null

OracleDecimalインスタンスに割り当てることができるNULL値を表します

One

ある正の値の定数

Pi

数のPI値の定数

Zero

ゼロ値の定数

OracleDecimal静的(比較)メソッド

OracleDecimal静的(比較)メソッドを、表14-29にリストします。

表14-29 OracleDecimal静的(比較)メソッド

メソッド

説明

Equals

2つのOracleDecimal値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleDecimal値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleDecimal値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleDecimal値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleDecimal値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleDecimal値が等しくないかどうかを判別します

OracleDecimal静的(操作)メソッド

OracleDecimal静的(操作)メソッドを、表14-30にリストします。

表14-30 OracleDecimal静的(操作)メソッド

メソッド

説明

Abs

OracleDecimalの絶対値を戻します

Add

2つのOracleDecimal構造を追加します

AdjustScale

指定された桁数を持つ新しいOracleDecimalを戻し、位取りが元より小さい場合に数値を四捨五入するか切り捨てるかを示します

Ceiling

OracleDecimal構造の上限に値が設定された、新しいOracleDecimal構造を戻します

ConvertToPrecScale

新規の精度と位取りを持つ、新しいOracleDecimal構造を戻します

Divide

OracleDecimal値を別の値で除算します

Floor

OracleDecimal構造の下限に値が設定された、新しいOracleDecimal構造を戻します

Max

2つの指定したOracleDecimal構造の最大値を戻します

Min

2つの指定したOracleDecimal構造の最小値を戻します

Mod

2つのOracleDecimal構造のモジュールに値が設定された、新しいOracleDecimal構造を戻します

Multiply

2つのOracleDecimal構造を掛けた結果に値が設定された、新しいOracleDecimal構造を戻します

Negate

指定したOracleDecimal構造の否定に値が設定された、新しいOracleDecimal構造を戻します

Parse

stringをOracleDecimalに変換します

Round

指定したOracleDecimal構造の値、および指定された位置で四捨五入された値に値が設定された、新しいOracleDecimal構造を戻します

SetPrecision

新規に指定された精度を持つ、新しいOracleDecimal構造を戻します

Shift

指定したOracleDecimal構造の値に値が設定され、指定された数だけ右に小数点の位置がシフトされた、新しいOracleDecimal構造を戻します

Sign

OracleDecimal構造の符号を判別します

Sqrt

指定したOracleDecimal構造の平方根に値が設定された、新しいOracleDecimal構造を戻します

Subtract

あるOracleDecimal構造を別の構造から引いた結果に値が設定された、新しいOracleDecimal構造を戻します

Truncate

指定された位置でOracleDecimalを切り捨てます

OracleDecimal静的(対数)メソッド

OracleDecimal静的(対数)メソッドを、表14-31にリストします。

表14-31 OracleDecimal静的(対数)メソッド

メソッド

説明

Exp

指定した指数に累乗したeに値が設定された、新しいOracleDecimal構造を戻します

Log

指定したOracleDecimal構造の対数値に値が設定された、指定したOracleDecimal構造を戻します(オーバーロード)

Pow

指定した指数に呼び出された、指定したOracleDecimal構造に値が設定された、新しいOracleDecimal構造を戻します(オーバーロード)

OracleDecimal静的(三角法)メソッド

OracleDecimal静的(三角法)メソッドを、表14-32にリストします。

表14-32 OracleDecimal静的(三角法)メソッド

メソッド

説明

Acos

コサイン値が指定したOracleDecimal構造である角度(ラジアン)を戻します

Asin

サイン値が指定したOracleDecimal構造である角度(ラジアン)を戻します

Atan

タンジェント値が指定したOracleDecimal構造である角度(ラジアン)を戻します

Atan2

タンジェントが2つの指定したOracleDecimal構造の比率である角度(ラジアン)を戻します

Cos

指定した角度(ラジアン)のコサイン値を戻します

Sin

指定した角度(ラジアン)のサイン値を戻します

Tan

指定した角度(ラジアン)のタンジェント値を戻します

Cosh

指定した角度(ラジアン)の双曲線コサインを戻します

Sinh

指定した角度(ラジアン)の双曲線サインを戻します

Tanh

指定した角度(ラジアン)の双曲線タンジェントを戻します

OracleDecimal静的(比較)演算子

OracleDecimal静的(比較)演算子を、表14-33にリストします。

表14-33 OracleDecimal静的(比較)演算子

演算子

説明

operator+

2つのOracleDecimal値を追加します

operator /

OracleDecimal値を別の値で除算します

operator ==

2つのOracleDecimal値が等しいかどうかを判別します

operator >

2つのOracleDecimal値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleDecimal値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleDecimal値が等しくないかどうかを判別します

operator <

2つのOracleDecimal値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleDecimal値のうち、最初の値が2番目の値以下かどうかを判別します

operator *

2つのOracleDecimal構造を乗算します

operator -

あるOracleDecimal構造を別の構造から減算します

operator -

OracleDecimal構造を否定します

operator%

2つのOracleDecimal構造のモジュールに値が設定された、新しいOracleDecimal構造を戻します

OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)

OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)を、表14-34にリストします。

表14-34 OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)

演算子

説明

implicit operator OracleDecimal

インスタンス値をOracleDecimal構造に変換します(オーバーロード)

explicit operator OracleDecimal

インスタンス値をOracleDecimal構造に変換します(オーバーロード)

OracleDecimal静的演算子(OracleDecimalから.NETへの変換)

OracleDecimal静的演算子(OracleDecimalから.NETへの変換)を、表14-35にリストします。

表14-35 OracleDecimal静的演算子(OracleDecimalから.NETへの変換)

演算子

説明

explicit operator byte

OracleDecimal値のbyte表現を戻します

explicit operator decimal

OracleDecimal値のdecimal表現を戻します

explicit operator double

OracleDecimal値のdouble表現を戻します

explicit operator short

OracleDecimal値のshort表現を戻します

explicit operator int

OracleDecimal値のint表現を戻します

explicit operator long

OracleDecimal値のlong表現を戻します

explicit operator float

OracleDecimal値のfloat表現を戻します

OracleDecimalプロパティ

OracleDecimalプロパティを、表14-36にリストします。

表14-36 OracleDecimalプロパティ

プロパティ

説明

BinData

Oracleの内部書式におけるOracle NUMBERを表すバイト配列を戻します

Format

ToString()の書式を指定します

IsInt

現行インスタンスが整数であるかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsPositive

現行インスタンスが0より大きいかどうかを示します

IsZero

現行インスタンスにzero値があるかどうかを示します

Value

decimal値を戻します

OracleDecimalインスタンス・メソッド

OracleDecimalインスタンス・メソッドを、表14-37にリストします。

表14-37 OracleDecimalインスタンス・メソッド

メソッド

説明

CompareTo

現行インスタンスを指定したオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトがOracleDecimalのインスタンスであるかどうか、およびオブジェクトの値が現行インスタンスと等しいかどうかを判別します(オーバーロード)

GetHashCode

現行インスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToByte

現行インスタンスのbyte表現を戻します

ToDouble

現行インスタンスのdouble表現を戻します

ToInt16

現行インスタンスのInt16表現を戻します

ToInt32

現行インスタンスのInt32表現を戻します

ToInt64

現行インスタンスのInt64表現を戻します

ToSingle

現行インスタンスのSingle表現を戻します

ToString

Object.ToString()をオーバーロードします

現行インスタンスのstring表現を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimal構造

OracleDecimalコンストラクタ

OracleDecimalコンストラクタでは、OracleDecimal構造の新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleDecimal(byte [ ])
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したバイト配列にその値を設定します。このバイト配列は、Oracle NUMBER書式です。

- OracleDecimal(decimal)
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したDecimal値にその値を設定します。

- OracleDecimal(double)
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したdouble値にその値を設定します。

- OracleDecimal(int)
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したInt32値にその値を設定します。

- OracleDecimal(float)
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したSingle値にその値を設定します。

- OracleDecimal(long)
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したInt64値にその値を設定します。

- OracleDecimal(string)
このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したstring値にその値を設定します。

- OracleDecimal(string, string)
このコンストラクタでは、指定したstring値および数値書式を使用して、OracleDecimal構造の新規インスタンスを作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(byte [ ])

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したバイト配列にその値を設定します。このバイト配列は、Oracle NUMBER書式です。

宣言

// C#
public OracleDecimal(byte [] bytes);

パラメータ

- bytes
内部Oracle書式でOracle NUMBERを表すバイト配列

例外

ArgumentException - bytesパラメータは内部Oracle NUMBER書式ではないか、またはbytesには無効な値があります。

ArgumentNullException - bytesパラメータがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(decimal)

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したDecimal値にその値を設定します。

宣言

// C#
public OracleDecimal(decimal decX);

パラメータ

- decX
指定されたDecimal値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(double)

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したdouble値にその値を設定します。

宣言

// C#
public OracleDecimal(double doubleX)

パラメータ

- doubleX
指定されたdouble型の値

例外

OverFlowException - 指定したdoubleの値がOracleDecimalの最大値より大きいか、または最小値より小さいです。

備考

指定されたdouble型の値に従って、OracleDecimalには次の値が含まれます。

- double.PositiveInfinity: 正の無限大値

- double.NegativeInfinity: 負の無限大値。

- double.NaN: NULL値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(int)

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したInt32値にその値を設定します。

宣言

// C#
public OracleDecimal(int intX);

パラメータ

- intX
指定されたInt32値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(float)

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したSingle値にその値を設定します。

宣言

// C#
public OracleDecimal(float floatX);

パラメータ

- floatX
指定されたfloat値

備考

指定されたfloat値に従って、OracleDecimalには次の値が含まれます。

float.PositiveInfinity: 正の無限大値

float.Negativeinfinity: 負の無限大値

float.NaN: NULL値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(long)

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したInt64値にその値を設定します。

宣言

// C#
public OracleDecimal(long longX);

パラメータ

- longX
指定されたInt64値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal(string)

このコンストラクタでは、OracleDecimal構造の新規インスタンスを作成し、指定したstring値にその値を設定します。

宣言

// C#
public OracleDecimal(string numStr);

パラメータ

- numStr
指定されたstring値

例外

ArgumentException - numStrパラメータはOracleDecimalの無効な文字列表現です。

ArgumentNullException - numStrパラメータがNULLです。

OverFlowException - numStrの値はOracleDecimalの最大値より大きい、または最小値より小さい値です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleDecimal(string, string)

このコンストラクタでは、指定したstring値および数値書式を使用して、OracleDecimal構造の新規インスタンスを作成します。

宣言

// C#
public OracleDecimal(string numStr, string format);

パラメータ

- numStr
指定されたstring値

- format
指定された数値format

例外

ArgumentException - numStrパラメータはOracleDecimalの無効な文字列表現であるか、またはnumStrはformatで指定された数値書式ではありません。

ArgumentNullException - numStrパラメータがNULLです。

OverFlowException - numStrパラメータの値はOracleDecimalの最大値より大きい、または最小値より小さい値です。

備考

数値書式に小数点およびグループ・セパレータが含まれる場合、指定された文字列では、スレッドのOracleGlobalization.NumericCharactersで定義された文字を使用する必要があります。

数値書式に通貨記号またはISO通貨記号が含まれる場合、指定された文字列では、OracleGlobalization.Currency、OracleGlobalization.ISOCurrencyおよびOracleGlobalization.DualCurrencyプロパティで個別に定義された記号を使用する必要があります。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleDecimalSample
{
static void Main(string[] args)
{
// Set the nls parameters related to currency
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.Currency = "$";
info.NumericCharacters = ".,";
OracleGlobalization.SetThreadInfo(info);

// Construct an OracleDecimal using a valid numeric format
OracleDecimal dec = new OracleDecimal("$2,222.22","L9G999D99");

// Print "$2,222.22"
Console.WriteLine(dec.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleDecimal静的フィールド

OracleDecimal静的フィールドを、表14-38にリストします。

表14-38 OracleDecimal静的フィールド

フィールド

説明

MaxPrecision

最大精度を表す定数(38)

MaxScale

最大の位取りを表す定数(127)

MaxValue

この構造の最大値である、9.9…9 x 10^125を表す定数

MinScale

最小の位取りを表す定数(-84)

MinValue

この構造の最小値である、-1.0 x 10^130の定数

NegativeOne

ある負の値の定数

Null

OracleDecimalインスタンスに割り当てることができるNULL値を表します

One

ある正の値の定数

Pi

数のPI値の定数

Zero

ゼロ値の定数

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

MaxPrecision

この静的フィールドは最大精度である、38を表します。

宣言

// C#
public static readonly byte MaxPrecision;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

MaxScale

この静的フィールドは最大の位取りである、127の定数です。

宣言

// C#
public static readonly byte MaxScale;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

MaxValue

この静的フィールドは、この構造の最大値である、9.9…9 x 10^125(38個の9の後に88個のゼロが続く)の定数を示します。

宣言

// C#
public static readonly OracleDecimal MaxValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

MinScale

この静的フィールドは、最大の位取りである-84の定数を示します。

宣言

// C#
public static readonly int MinScale;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

MinValue

この静的フィールドは、この構造の最小値である、-1.0 x 10^130の定数を示します。

宣言

// C#
public static readonly OracleDecimal MinValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

NegativeOne

この静的フィールドはある負の値の定数を示します。

宣言

// C#
public static readonly OracleDecimal NegativeOne;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Null

この静的フィールドは、OracleDecimalインスタンスに割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleDecimal Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

One

この静的フィールドはある正の値の定数を示します。

宣言

// C#
public static readonly OracleDecimal One;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Pi

この静的フィールドは数のPI値の定数を示します。

宣言

// C#
public static readonly OracleDecimal Pi;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Zero

この静的フィールドはゼロ値の定数を示します。

宣言

// C#
public static readonly OracleDecimal Zero;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal静的(比較)メソッド

OracleDecimal静的(比較)メソッドを、表14-39にリストします。

表14-39 OracleDecimal静的(比較)メソッド

メソッド

説明

Equals

2つのOracleDecimal値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleDecimal値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleDecimal値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleDecimal値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleDecimal値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleDecimal値が等しくないかどうかを判別します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Equals

このメソッドでは、2つのOracleDecimal値が等しいかどうかを判断します。

宣言

// C#
public static bool Equals(OracleDecimal value1, OracleDecimal value2);

パラメータ

- value1
最初のOracleDecimal

- value2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値が等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

GreaterThan

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値より大きいかどうかを判断します。

宣言

// C#
public static bool GreaterThan(OracleDecimal value1, OracleDecimal value2);

パラメータ

- value1
最初のOracleDecimal

- value2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

GreaterThanOrEqual

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値以上であるかどうかを判断します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleDecimal value1, OracleDecimal value2);

パラメータ

- value1
最初のOracleDecimal

- value2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

LessThan

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値より小さいかどうかを判断します。

宣言

// C#
public static bool LessThan(OracleDecimal value1, OracleDecimal value2);

パラメータ

- value1
最初のOracleDecimal

- value2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値より小さい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

LessThanOrEqual

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値以下であるかどうかを判断します。

宣言

// C#
public static bool LessThanOrEqual(OracleDecimal value1, OracleDecimal value2);

パラメータ

- value1
最初のOracleDecimal

- value2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

NotEquals

このメソッドでは、2つのOracleDecimal値が等しくないかどうかを判断します。

宣言

// C#
public static bool NotEquals(OracleDecimal value1, OracleDecimal value2);

パラメータ

- value1
最初のOracleDecimal

- value2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値が等しくない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal静的(操作)メソッド

OracleDecimal静的(操作)メソッドを、表14-40にリストします。

表14-40 OracleDecimal静的(操作)メソッド

メソッド

説明

Abs

OracleDecimalの絶対値を戻します

Add

2つのOracleDecimal構造を追加します

AdjustScale

指定された桁数を持つ新しいOracleDecimalを戻し、位取りが元より小さい場合に数値を四捨五入するか切り捨てるかを示します

Ceiling

OracleDecimal構造の上限に値が設定された、新しいOracleDecimal構造を戻します

ConvertToPrecScale

新規の精度と位取りを持つ、新しいOracleDecimal構造を戻します

Divide

OracleDecimal値を別の値で除算します

Floor

OracleDecimal構造の下限に値が設定された、新しいOracleDecimal構造を戻します

Max

2つの指定したOracleDecimal構造の最大値を戻します

Min

2つの指定したOracleDecimal構造の最小値を戻します

Mod

2つのOracleDecimal構造のモジュールに値が設定された、新しいOracleDecimal構造を戻します

Multiply

2つのOracleDecimal構造を掛けた結果に値が設定された、新しいOracleDecimal構造を戻します

Negate

指定したOracleDecimal構造の否定に値が設定された、新しいOracleDecimal構造を戻します

Parse

stringをOracleDecimalに変換します

Round

指定したOracleDecimal構造の値、および指定された位置で四捨五入された値に値が設定された、新しいOracleDecimal構造を戻します

SetPrecision

新規に指定された精度を持つ、新しいOracleDecimal構造を戻します

Shift

指定したOracleDecimal構造の値に値が設定され、指定された数だけ右に小数点の位置がシフトされた、新しいOracleDecimal構造を戻します

Sign

OracleDecimal構造の符号を判別します

Sqrt

指定したOracleDecimal構造の平方根に値が設定された、新しいOracleDecimal構造を戻します

Subtract

あるOracleDecimal構造を別の構造から引いた結果に値が設定された、新しいOracleDecimal構造を戻します

Truncate

指定された位置でOracleDecimalを切り捨てます

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Abs

このメソッドでは、OracleDecimalの絶対値を戻します。

宣言

// C#
public static OracleDecimal Abs(OracleDecimal val);

パラメータ

- val
OracleDecimal

戻り値

OracleDecimalの絶対値

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Add

このメソッドにより、2つのOracleDecimal構造を加えます。

宣言

// C#
public static OracleDecimal Add(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

OracleDecimal構造を戻します。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

AdjustScale

このメソッドにより、指定された桁数を持つ新しいOracleDecimalを戻し、位取りが元より小さい場合に数値を四捨五入するか切り捨てるかを示します。

宣言

// C#
public static OracleDecimal AdjustScale(OracleDecimal val, int digits,
bool fRound);

パラメータ

- val
OracleDecimal

- digits
桁数

- fRound
数値を四捨五入するか切り捨てるかを示します。trueに設定すると数値を四捨五入し、falseに設定すると数値を切り捨てます。

戻り値

OracleDecimal

備考

指定したOracleDecimalにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class AdjustScaleSample
{
static void Main(string[] args)
{
OracleDecimal dec1 = new OracleDecimal(5.555);

// Adjust Scale to 2 with rounding off
OracleDecimal dec2 = OracleDecimal.AdjustScale(dec1, 2, true);

// Prints 5.56
Console.WriteLine(dec2.ToString());

// Adjust Scale to 2 with truncation
OracleDecimal dec3 = OracleDecimal.AdjustScale(dec1, 2, false);

// Prints 5.55
Console.WriteLine(dec3.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Ceiling

このメソッドにより、指定したOracleDecimalの上限に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Ceiling(OracleDecimal val);

パラメータ

- val
OracleDecimal

戻り値

新しいOracleDecimal構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ConvertToPrecScale

このメソッドにより、新規の精度と位取りを持つ、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal ConvertToPrecScale(OracleDecimal val
int precision, int scale);

パラメータ

- val
OracleDecimal構造。

- precision
精度。精度の範囲は1から38です。

- scale
小数点の右の桁数。位取りの範囲は-84から127です。

戻り値

新しいOracleDecimal構造

備考

指定したOracleDecimalにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class ConvertToPrecScaleSample
{
static void Main(string[] args)
{
OracleDecimal dec1 = new OracleDecimal(555.6666);

// Set the precision of od to 5 and scale to 2
OracleDecimal dec2 = OracleDecimal.ConvertToPrecScale(dec1,5,2);

// Prints 555.67
Console.WriteLine(dec2.ToString());

// Set the precision of od to 3 and scale to 0
OracleDecimal dec3 = OracleDecimal.ConvertToPrecScale(dec1,3,0);

// Prints 556
Console.WriteLine(dec3.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Divide

このメソッドにより、あるOracleDecimal値を別の値で割ります。

宣言

// C#
public static OracleDecimal Divide(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
OracleDecimal

- val2
OracleDecimal

戻り値

新しいOracleDecimal構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Floor

このメソッドにより、指定したOracleDecimal構造の下限に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Floor(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

新しいOracleDecimal構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Max

このメソッドにより、2つの指定したOracleDecimal構造の最大値を戻します。

宣言

// C#
public static OracleDecimal Max(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
OracleDecimal構造。

- val2
OracleDecimal構造。

戻り値

より大きな値を持つOracleDecimal構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Min

このメソッドにより、2つの指定したOracleDecimal構造の最小値を戻します。

宣言

// C#
public static OracleDecimal Min(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
OracleDecimal構造。

- val2
OracleDecimal構造。

戻り値

より小さな値を持つOracleDecimal構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Mod

このメソッドにより、2つのOracleDecimal構造のモジュールに値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Mod(OracleDecimal val1, OracleDecimal divider);

パラメータ

- val1
OracleDecimal構造。

- divider
OracleDecimal構造。

戻り値

OracleDecimal

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Multiply

このメソッドにより、2つのOracleDecimal構造を掛けた結果に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Multiply(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
OracleDecimal構造。

- val2
OracleDecimal構造。

戻り値

新しいOracleDecimal構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Negate

このメソッドにより、指定したOracleDecimal構造の否定に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Negate(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

新しいOracleDecimal構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Parse

このメソッドにより、stringがOracleDecimalに変換されます。

宣言

// C#
public static OracleDecimal Parse (string str);

パラメータ

- str
変換される文字列

戻り値

新しいOracleDecimal構造

例外

ArgumentException - numStrパラメータはOracleDecimalの無効な文字列表現です。

ArgumentNullException - numStrパラメータがNULLです。

OverFlowException - numStrの値はOracleDecimalの最大値より大きい、または最小値より小さい値です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

Round

このメソッドにより、指定したOracleDecimal構造の値、および指定された位置で四捨五入された値に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Round(OracleDecimal val, int decplace);

パラメータ

- val
OracleDecimal構造。

- decplace
指定された小数点の位置。値が正である場合、この機能によりOracleDecimal構造の小数点第2位を四捨五入(切り捨て)します。値が負である場合、この機能により小数点第1位を四捨五入(切り捨て)します。

戻り値

OracleDecimal構造。

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

SetPrecision

このメソッドにより、新規の指定された精度を持つ、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal SetPrecision(OracleDecimal val, int precision);

パラメータ

- val
OracleDecimal構造。

- precision
指定された精度。精度の範囲は1から38です。

戻り値

OracleDecimal構造。

備考

指定された精度がvalの精度より小さい場合、戻されたOracleDecimalは四捨五入されます。

valにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

例

// C#

using System;
using Oracle.DataAccess.Types;

class SetPrecisionSample
{
static void Main(string[] args)
{
OracleDecimal dec1 = new OracleDecimal(555.6666);

// Set the precision of dec1 to 3
OracleDecimal dec2 = OracleDecimal.SetPrecision(dec1, 3);

// Prints 556
Console.WriteLine(dec2.ToString());

// Set the precision of dec1 to 4
OracleDecimal dec3 = OracleDecimal.SetPrecision(dec1, 4);

// Prints 555.7
Console.WriteLine(dec3.ToString());
}
}

関連項目:

- Oracle.DataAccess.TypesネームスペースOracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Shift

このメソッドにより、指定したOracleDecimal構造の値に値が設定され、指定された数だけ右に小数点の位置がシフトされた、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Shift(OracleDecimal val, int decplaces);

パラメータ

- val
OracleDecimal構造。

- decplaces
位置をシフトする、指定された数

戻り値

OracleDecimal構造。

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

decplacesが負である場合、左にシフトされます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Sign

このメソッドでは、OracleDecimal構造の符号を決定します。

宣言

// C#
public static int Sign(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

- -1: 指定したOracleDecimalが<0の場合

- 0: 指定したOracleDecimalが==0の場合

- 1: 指定したOracleDecimalが>0の場合

例外

OracleNullValueException - 引数にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Sqrt

このメソッドにより、指定したOracleDecimal構造の2乗根に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Sqrt(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

OracleDecimal構造。

例外

ArgumentOutOfRangeException - 指定されたOracleDecimal構造はゼロより小さいです。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Subtract

このメソッドにより、あるOracleDecimal構造を別の構造から引いた結果に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Subtract(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
OracleDecimal構造。

- val2
OracleDecimal構造。

戻り値

OracleDecimal構造。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Truncate

このメソッドにより、OracleDecimalを指定された位置で切り捨てます。

宣言

// C#
public static OracleDecimal Truncate(OracleDecimal val, int pos);

パラメータ

- val
OracleDecimal構造。

- pos
指定された位置。値が正である場合、この機能によりOracleDecimal構造の小数点第2位を四捨五入(切り捨て)します。値が負である場合、これによりOracleDecimal構造の小数点第1位を四捨五入(切り捨て)します。

戻り値

OracleDecimal構造。

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal静的(対数)メソッド

OracleDecimal静的(対数)メソッドを、表14-41にリストします。

表14-41 OracleDecimal静的(対数)メソッド

メソッド

説明

Exp

指定した指数に累乗したeに値が設定された、新しいOracleDecimal構造を戻します

Log

指定したOracleDecimal構造の対数値に値が設定された、指定したOracleDecimal構造を戻します(オーバーロード)

Pow

指定した指数に呼び出された、指定したOracleDecimal構造に値が設定された、新しいOracleDecimal構造を戻します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Exp

このメソッドにより、指定したOracleDecimalへ累乗したeに値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Exp(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

OracleDecimal構造。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Log

Logにより、指定したOracleDecimal構造の対数に値が設定された、指定したOracleDecimal構造を戻します。

オーバーロード・リスト:

- Log(OracleDecimal)
このメソッドにより、指定したOracleDecimal構造の自然対数(ベースe)に値が設定された、新しいOracleDecimal構造を戻します。

- Log(OracleDecimal, int)
このメソッドにより、指定したベース内の、指定したOracleDecimal構造の対数に値が設定された、指定したOracleDecimal構造を戻します。

- Log(OracleDecimal, OracleDecimal)
このメソッドにより、指定したベース内の、指定したOracleDecimal構造の対数に値が設定された、指定したOracleDecimal構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Log(OracleDecimal)

このメソッドにより、指定したOracleDecimal構造の自然対数(ベースe)に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Log(OracleDecimal val);

パラメータ

- val
対数が計算されるOracleDecimal構造

戻り値

valの自然対数(ベースe)に値が設定された、新しいOracleDecimal構造を戻します。

例外

ArgumentOutOfRangeException - 指定したOracleDecimal値はゼロより小さいです。

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

指定したOracleDecimal構造にゼロ値がある場合、結果は定義されず、戻されたOracleDecimal構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Log(OracleDecimal, int)

このメソッドにより、指定したベース内の、指定したOracleDecimal構造の対数に値が設定された、指定したOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Log(OracleDecimal val, int logBase);

パラメータ

- val
対数が計算されるOracleDecimal構造

- logBase
対数のベースを指定するint

戻り値

指定したベース内のvalの対数に値が設定された、新しいOracleDecimal構造

例外

ArgumentOutOfRangeException - 引数がゼロより小さいです。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

両方の引数にゼロ値がある場合、結果は定義されず、戻されたOracleDecimal構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Log(OracleDecimal, OracleDecimal)

このメソッドにより、指定したベース内の、指定したOracleDecimal構造の対数に値が設定された、指定したOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Log(OracleDecimal val, OracleDecimal logBase);

パラメータ

- val
対数が計算されるOracleDecimal構造

- logBase
対数のベースを指定するOracleDecimal構造

戻り値

指定したベースのvalの対数を戻します。

例外

ArgumentOutOfRangeException - valまたはlogBaseパラメータのいずれかがゼロより小さいです。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

両方の引数にゼロ値がある場合、結果は定義されず、戻されたOracleDecimal構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Pow

Powにより、指定した指数に呼び出された、指定したOracleDecimal構造に値が設定された、新しいOracleDecimal構造を戻します。

オーバーロード・リスト:

- Pow(OracleDecimal, int)
このメソッドにより、指定したInt32指数に呼び出された、指定したOracleDecimal値に値が設定された、新しいOracleDecimal構造を戻します。

- Pow(OracleDecimal, OracleDecimal)
このメソッドにより、指定したOracleDecimal指数に呼び出された、指定したOracleDecimal構造に値が設定された、新しいOracleDecimal構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Pow(OracleDecimal, int)

このメソッドにより、指定したInt32指数に呼び出された、指定したOracleDecimal値に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Pow(OracleDecimal val, int power);

パラメータ

- val
OracleDecimal構造。

- power
指数を指定する整数

戻り値

OracleDecimal構造。

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Pow(OracleDecimal, OracleDecimal)

このメソッドにより、指定したOracleDecimal指数に呼び出された、指定したOracleDecimal構造に値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal Pow(OracleDecimal val, OracleDecimal power);

パラメータ

- val
OracleDecimal構造。

- power
指数を指定するOracleDecimal構造

戻り値

OracleDecimal構造。

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal静的(三角法)メソッド

OracleDecimal静的(三角法)メソッドを、表14-42にリストします。

表14-42 OracleDecimal静的(三角法)メソッド

メソッド

説明

Acos

コサイン値が指定したOracleDecimal構造である角度(ラジアン)を戻します

Asin

サイン値が指定したOracleDecimal構造である角度(ラジアン)を戻します

Atan

タンジェント値が指定したOracleDecimal構造である角度(ラジアン)を戻します

Atan2

タンジェントが2つの指定したOracleDecimal構造の比率である角度(ラジアン)を戻します

Cos

指定した角度(ラジアン)のコサイン値を戻します

Sin

指定した角度(ラジアン)のサイン値を戻します

Tan

指定した角度(ラジアン)のタンジェント値を戻します

Cosh

指定した角度(ラジアン)の双曲線コサインを戻します

Sinh

指定した角度(ラジアン)の双曲線サインを戻します

Tanh

指定した角度(ラジアン)の双曲線タンジェントを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Acos

このメソッドは、コサイン値が指定したOracleDecimal構造である角度(ラジアン)を戻します。

宣言

// C#
public static OracleDecimal Acos(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。範囲は(-1から1)です。

戻り値

角度(ラジアン)を表すOracleDecimal構造。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Asin

このメソッドは、サイン値が指定したOracleDecimal構造である角度(ラジアン)を戻します。

宣言

// C#
public static OracleDecimal Asin(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。範囲は(-1から1)です。

戻り値

角度(ラジアン)を表すOracleDecimal構造。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Atan

このメソッドは、タンジェント値が指定したOracleDecimal構造である角度(ラジアン)を戻します

宣言

// C#
public static OracleDecimal Atan(OracleDecimal val);

パラメータ

- val
OracleDecimal

戻り値

角度(ラジアン)を表すOracleDecimal構造。

備考

引数にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Atan2

このメソッドは、タンジェント値が2つの指定したOracleDecimal構造の比率である角度(ラジアン)を戻します。

宣言

// C#
public static OracleDecimal Atan2(OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
y座標を表すOracleDecimal構造

- val2
x座標を表すOracleDecimal構造

戻り値

角度(ラジアン)を表すOracleDecimal構造。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Cos

このメソッドは、指定した角度(ラジアン)のコサイン値を戻します。

宣言

// C#
public static OracleDecimal Cos(OracleDecimal val);

パラメータ

- val
角度(ラジアン)を表すOracleDecimal構造。

戻り値

OracleDecimalインスタンス

例外

ArgumentOutOfRangeException - valパラメータは正の無限大または負の無限大です。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Sin

このメソッドは、指定した角度(ラジアン)のサイン値を戻します。

宣言

// C#
public static OracleDecimal Sin(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

角度(ラジアン)を表すOracleDecimal構造。

例外

ArgumentOutOfRangeException - valパラメータは正の無限大または負の無限大です。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Tan

このメソッドは、指定した角度(ラジアン)のタンジェント値を戻します。

宣言

// C#
public static OracleDecimal Tan(OracleDecimal val);

パラメータ

- val
角度(ラジアン)を表すOracleDecimal構造。

戻り値

OracleDecimalインスタンス

例外

ArgumentOutOfRangeException - valパラメータは正の無限大または負の無限大です。

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Cosh

このメソッドは、指定した角度(ラジアン)の双曲線コサインを戻します。

宣言

// C#
public static OracleDecimal Cosh(OracleDecimal val);

パラメータ

- val
角度(ラジアン)を表すOracleDecimal構造。

戻り値

OracleDecimalインスタンス

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Sinh

このメソッドは、指定した角度(ラジアン)の双曲線サインを戻します。

宣言

// C#
public static OracleDecimal Sinh(OracleDecimal val);

パラメータ

- val
角度(ラジアン)を表すOracleDecimal構造。

戻り値

OracleDecimalインスタンス

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Tanh

このメソッドは、指定した角度(ラジアン)の双曲線タンジェントを戻します。

宣言

// C#
public static OracleDecimal Tanh(OracleDecimal val);

パラメータ

- val
角度(ラジアン)を表すOracleDecimal構造。

戻り値

OracleDecimalインスタンス

備考

引数のいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal静的(比較)演算子

OracleDecimal静的(比較)演算子を、表14-43にリストします。

表14-43 OracleDecimal静的(比較)演算子

演算子

説明

operator+

2つのOracleDecimal値を追加します

operator /

OracleDecimal値を別の値で除算します

operator ==

2つのOracleDecimal値が等しいかどうかを判別します

operator >

2つのOracleDecimal値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleDecimal値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleDecimal値が等しくないかどうかを判別します

operator <

2つのOracleDecimal値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleDecimal値のうち、最初の値が2番目の値以下かどうかを判別します

operator *

2つのOracleDecimal構造を乗算します

operator -

あるOracleDecimal構造を別の構造から減算します

operator -

OracleDecimal構造を否定します

operator%

2つのOracleDecimal構造のモジュールに値が設定された、新しいOracleDecimal構造を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator +

このメソッドにより、2つのOracleDecimal値を加えます。

宣言

// C#
public static OracleDecimal operator + (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

OracleDecimal構造。

備考

オペランドのいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator /

このメソッドにより、あるOracleDecimal値を別の値で割ります。

宣言

/ C#
public static OracleDecimal operator / (OracleDecimal val1, OracleDecimal val2)

パラメータ

- val1
最初のOracleDecimal

- val2

2番目のOracleDecimal

戻り値

OracleDecimal構造。

備考

オペランドのいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator ==

このメソッドでは、2つのOracleDecimal値が等しいかどうかを判断します。

宣言

// C#
public static bool operator == (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

これらの値が等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator >

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値より大きいかどうかを判断します。

宣言

// C#
public static bool operator > (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値が等しくない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator >=

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値以上であるかどうかを判断します。

宣言

// C#
public static bool operator >= (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator !=

このメソッドでは、2つのOracleDecimal値のうち、最初の値が等しくないかどうかを判断します。

宣言

// C#
public static bool operator != (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値が等しくない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator <

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値より小さいかどうかを判断します。

宣言

// C#
public static bool operator < (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値より小さい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator <=

このメソッドでは、2つのOracleDecimal値のうち、最初の値が2番目の値以下であるかどうかを判断します。

宣言

// C#
public static bool operator <= (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

2つのOracleDecimal値のうち、最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator *

このメソッドでは、2つのOracleDecimal構造を掛けます。

宣言

// C#
public static OracleDecimal operator * (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

新しいOracleDecimal構造

備考

オペランドのいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator -

このメソッドにより、あるOracleDecimal構造を別の構造から引きます。

宣言

// C#
public static OracleDecimal operator - (OracleDecimal val1, OracleDecimal val2);

パラメータ

- val1
最初のOracleDecimal

- val2
2番目のOracleDecimal

戻り値

新しいOracleDecimal構造

備考

オペランドのいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator -

このメソッドにより、指定したOracleDecimal構造を否定します。

宣言

// C#
public static OracleDecimal operator - (OracleDecimal val);

パラメータ

- val
OracleDecimal

戻り値

新しいOracleDecimal構造

備考

指定したOracleDecimal構造にNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

operator%

このメソッドにより、2つのOracleDecimal構造のモジュールに値が設定された、新しいOracleDecimal構造を戻します。

宣言

// C#
public static OracleDecimal operator % (OracleDecimal val,
OracleDecimal divider);

パラメータ

- val
OracleDecimal

- divider
OracleDecimal

戻り値

新しいOracleDecimal構造

備考

オペランドのいずれかにNULL値がある場合、戻されたOracleDecimalにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)

OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)を、表14-44にリストします。

表14-44 OracleDecimal静的演算子(.NETタイプからOracleDecimalへの変換)

演算子

説明

implicit operator OracleDecimal

インスタンス値をOracleDecimal構造に変換します(オーバーロード)

explicit operator OracleDecimal

インスタンス値をOracleDecimal構造に変換します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

implicit operator OracleDecimal

implicit operator OracleDecimalにより、値のOracleDecimal表現を戻します。

オーバーロード・リスト:

- implicit operator OracleDecimal(decimal)
このメソッドにより、decimal値のOracleDecimal表現を戻します。

- implicit operator OracleDecimal(int)
このメソッドにより、整数のOracleDecimal表現を戻します。

- implicit operator OracleDecimal(long)
このメソッドにより、long値のOracleDecimal表現を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

implicit operator OracleDecimal(decimal)

このメソッドにより、decimal値のOracleDecimal表現を戻します。

宣言

// C#
public static implicit operator OracleDecimal(decimal val);

パラメータ

- val
decimal値

戻り値

OracleDecimal

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

implicit operator OracleDecimal(int)

このメソッドにより、整数のOracleDecimal表現を戻します。

宣言

// C#
public static implicit operator OracleDecimal(int val);

パラメータ

- val
整数

戻り値

OracleDecimal

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

implicit operator OracleDecimal(long)

このメソッドにより、long値のOracleDecimal表現を戻します。

宣言

// C#
public static implicit operator OracleDecimal(long val);

パラメータ

- val
long値

戻り値

OracleDecimal

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator OracleDecimal

OracleDecimalにより、値のOracleDecimal表現を戻します。

オーバーロード・リスト:

- explicit operator OracleDecimal(double)
このメソッドにより、double型のOracleDecimal表現を戻します。

- explicit operator OracleDecimal(string)
このメソッドにより、文字列のOracleDecimal表現を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator OracleDecimal(double)

このメソッドにより、double型のOracleDecimal表現を戻します。

宣言

// C#
public static explicit operator OracleDecimal(double val);

パラメータ

- val
double

戻り値

OracleDecimal

例外

OverFlowException - 指定したdoubleがOracleDecimalの最大値より大きいか、またはOracleDecimalの最小値より小さい値です。

備考

指定されたdouble型の値に従って、OracleDecimalには次の値が含まれます。

- double.PositiveInfinity: 正の無限大値

- double.NegativeInfinity: 負の無限大値。

- double.NaN: NULL値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator OracleDecimal(string)

このメソッドにより、文字列のOracleDecimal表現を戻します。

宣言

// C#
public static explicit operator OracleDecimal(string numStr);

パラメータ

- numStr
数値を表すstring

戻り値

OracleDecimal

例外

ArgumentException - numStrパラメータはOracleDecimalの無効な文字列表現です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleDecimal静的演算子(OracleDecimalから.NETへの変換)

OracleDecimal静的演算子(OracleDecimalから.NETへの変換)を、表14-45にリストします。

表14-45 OracleDecimal静的演算子(OracleDecimalから.NETへの変換)

演算子

説明

explicit operator byte

OracleDecimal値のbyte表現を戻します

explicit operator decimal

OracleDecimal値のdecimal表現を戻します

explicit operator double

OracleDecimal値のdouble表現を戻します

explicit operator short

OracleDecimal値のshort表現を戻します

explicit operator int

OracleDecimal値のint表現を戻します

explicit operator long

OracleDecimal値のlong表現を戻します

explicit operator float

OracleDecimal値のfloat表現を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator byte

このメソッドにより、OracleDecimal値のbyte表現を戻します。

宣言

// C#
public static explicit operator byte(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

byte

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException: byteでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator decimal

このメソッドにより、OracleDecimal値のdecimal表現を戻します。

宣言

// C#
public static explicit operator decimal(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

decimal

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException - decimalでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator double

このメソッドにより、OracleDecimal値のdouble表現を戻します。

宣言

// C#
public static explicit operator double(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

double

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException - doubleでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator short

このメソッドにより、OracleDecimal値のshort表現を戻します。

宣言

// C#
public static explicit operator short(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

short

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException - shortでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator int

このメソッドにより、OracleDecimal値のint表現を戻します。

宣言

// C#
public static explicit operator int(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

int

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException - intでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator long

このメソッドにより、OracleDecimal値のlong表現を戻します。

宣言

// C#
public static explicit operator long(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

long

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException - longでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

explicit operator float

このメソッドにより、OracleDecimal値のfloat表現を戻します。

宣言

// C#
public static explicit operator float(OracleDecimal val);

パラメータ

- val
OracleDecimal構造。

戻り値

float

例外

OracleNullValueException - OracleDecimalにNULL値があります。

OverFlowException - floatでは指定したOracleDecimal構造を表すことができません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimalプロパティ

OracleDecimalプロパティを、表14-46にリストします。

表14-46 OracleDecimalプロパティ

プロパティ

説明

BinData

Oracleの内部書式におけるOracle NUMBERを表すバイト配列を戻します

Format

ToString()の書式を指定します

IsInt

現行インスタンスが整数であるかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

IsPositive

現行インスタンスが0より大きいかどうかを示します

IsZero

現行インスタンスにzero値があるかどうかを示します

Value

decimal値を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

BinData

このプロパティにより、内部Oracle書式でOracle NUMBERを表すバイト配列を戻します。

宣言

// C#
public byte[] BinData {get;}

プロパティ値

内部Oracle書式でOracle NUMBERを表すバイト配列

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Format

このプロパティではToString()の書式を指定します。

宣言

// C#
public string Format {get; set;}

プロパティ値

書式を指定する文字列

備考

ToString()がOracleDecimalのインスタンス上で呼び出されるときにFormatが使用されます。特定の通貨記号、グループ、または文字列の一部としての小数点セパレータを、ToString()メソッドで必要とする場合にこれは役立ちます。

デフォルトでは、このプロパティは、特別な書式が使用されていないことを示すnullです。

小数点およびグループ・セパレータはスレッドのOracleGlobalization.NumericCharactersによって指定されます。

通貨記号は次のスレッドのプロパティによって指定されます。

- OracleGlobalization.Currency

- OracleGlobalization.ISOCurrency

- OracleGlobalization.DualCurrency

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

IsInt

このプロパティは現行インスタンスが整数値であるかどうかを示します。

宣言

// C#
public bool IsInt {get;}

プロパティ値

現行インスタンスが整数値である場合はtrueを戻し、それ以外の場合はfalseを戻すbool値

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull {get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrueを戻し、それ以外の場合はfalseを戻すbool値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

IsPositive

このプロパティでは、現行インスタンスの値が0より大きいかどうかを示します。

宣言

// C#
public bool IsPositive {get;}

プロパティ値

現行インスタンスが0より大きい場合はtrueを戻し、それ以外の場合はfalseを戻すbool値

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

IsZero

このプロパティは現行インスタンスにゼロの値があるかどうかを示します。

宣言

// C#
public bool IsZero{get;}

プロパティ値

現行インスタンスにゼロの値がある場合はtrueを戻し、それ以外の場合はfalseを戻すbool値

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Value

このメソッドにより、decimal値を戻します。

宣言

// C#
public decimal Value {get;}

プロパティ値

decimal値

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

OverFlowException - decimalでは指定したOracleDecimal構造を表すことができません。

備考

decimal値がOracleDecimalから取得されると精度が失われる可能性があります。詳細は、「OracleDecimal構造」の備考を参照してください。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

OracleDecimalインスタンス・メソッド

OracleDecimalインスタンス・メソッドを、表14-47にリストします。

表14-47 OracleDecimalインスタンス・メソッド

メソッド

説明

CompareTo

現行インスタンスを指定したオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトがOracleDecimalのインスタンスであるかどうか、およびオブジェクトの値が現行インスタンスと等しいかどうかを判別します(オーバーロード)

GetHashCode

現行インスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToByte

現行インスタンスのbyte表現を戻します

ToDouble

現行インスタンスのdouble表現を戻します

ToInt16

現行インスタンスのInt16表現を戻します

ToInt32

現行インスタンスのInt32表現を戻します

ToInt64

現行インスタンスのInt64表現を戻します

ToSingle

現行インスタンスのSingle表現を戻します

ToString

Object.ToString()をオーバーロードします

現行インスタンスのstring表現を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

CompareTo

このメソッドにより、現行インスタンスと指定したオブジェクトを比較し、その相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
指定したインスタンス

戻り値

このメソッドでは次の数値が戻されます。

- ゼロ未満: 現行インスタンスの値がobjより小さい場合

- ゼロ: 現行インスタンスの値がobjと等しい場合

- ゼロ超過: 現行インスタンスの値がobjより大きい場合

実装

IComparable

例外

ArgumentException - パラメータはタイプOracleDecimalではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleDecimal間で行う必要があります。たとえば、OracleDecimalインスタンスとOracleBinaryインスタンスを比較することはできません。OracleDecimalを異なるタイプと比較すると、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

Equals

Objectをオーバーライドします。

このメソッドは、オブジェクトがOracleDecimalのインスタンスであるかどうか、およびオブジェクトの値が現行インスタンスと等しいかどうかを判別します。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
OracleDecimalインスタンス

戻り値

objがOracleDecimalのインスタンスである場合、およびobjの値が現行インスタンスと等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleDecimalは、NULL値を持つOracleDecimalより大きい値とみなされます。

- NULL値を含む2つのOracleDecimalは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

GetHashCode

Objectをオーバーライドします。

このメソッドにより、現行インスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToByte

このメソッドにより、現行インスタンスのbyte表現を戻します。

宣言

// C#
public byte ToByte();

戻り値

byte

例外

OverFlowException - byteでは現行インスタンスを表すことができません。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToDouble

このメソッドにより、現行インスタンスのdouble表現を戻します。

宣言

// C#
public double ToDouble();

戻り値

double

例外

OverFlowException - doubleでは現行インスタンスを表すことができません。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToInt16

このメソッドにより、現行インスタンスのInt16表現を戻します。

宣言

// C#
public short ToInt16();

戻り値

short

例外

OverFlowException - shortでは現行インスタンスを表すことができません。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToInt32

このメソッドにより、現行インスタンスのInt32表現を戻します。

宣言

// C#
public int ToInt32();

戻り値

int

例外

OverFlowException - intでは現行インスタンスを表すことができません。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToInt64

このメソッドにより、現行インスタンスのInt64表現を戻します。

宣言

// C#
public long ToInt64();

戻り値

long

例外

OverFlowException - longでは現行インスタンスを表すことができません。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToSingle

このメソッドにより、現行インスタンスのSingle表現を戻します。

宣言

// C#
public float ToSingle();

戻り値

float

例外

OverFlowException - floatでは現行インスタンスを表すことができません。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

ToString

Objectをオーバーライドします。

このメソッドにより、現行インスタンスのstring表現を戻します。

宣言

// C#
public override string ToString();

戻り値

数値を文字列で戻します。

備考

現行インスタンスにNULL値がある場合、戻される文字列は「null」です。

戻される値は、Formatプロパティによって指定された数値書式における、OracleDecimalの文字列表現です。

小数点およびグループ・セパレータはスレッドのOracleGlobalization.NumericCharactersによって指定されます。

通貨記号は次のスレッドのプロパティによって指定されます。

- OracleGlobalization.Currency

- OracleGlobalization.ISOCurrency

- OracleGlobalization.DualCurrency

数値書式が指定されていない場合、Oracleのデフォルト値が使用されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleDecimalメンバー

- OracleDecimal構造

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleIntervalDS構造

OracleIntervalDS構造は、データベースに格納されるか、またはデータベースから取得されるOracle INTERVAL DAY TO SECONDデータ型を表します。それぞれのOracleIntervalDSには、日付、時間、分、秒および小数秒で表した期間が格納されます。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleIntervalDS

宣言

// ADO.NET 2.0: C#
public struct OracleIntervalDS : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OracleIntervalDSSample
{
static void Main()
{
OracleIntervalDS iDSMax = OracleIntervalDS.MaxValue;
double totalDays = iDSMax.TotalDays;

totalDays -= 1;
OracleIntervalDS iDSMax_1 = new OracleIntervalDS(totalDays);

// Calculate the difference
OracleIntervalDS iDSDiff = iDSMax - iDSMax_1;

// Prints "iDSDiff.ToString() = +000000000 23:59:59.999999999"
Console.WriteLine("iDSDiff.ToString() = " + iDSDiff.ToString());
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDSメンバー

- OracleIntervalDSコンストラクタ

- OracleIntervalDS静的フィールド

- OracleIntervalDS静的メソッド

- OracleIntervalDS静的演算子

- OracleIntervalDS型変換

- OracleIntervalDSプロパティ

- OracleIntervalDSメソッド

OracleIntervalDSメンバー

OracleIntervalDSメンバーは、次の各表にリストしています。

OracleIntervalDSコンストラクタ

OracleIntervalDSコンストラクタを、表14-48にリストします。

表14-48 OracleIntervalDSコンストラクタ

コンストラクタ

説明

OracleIntervalDSコンストラクタ

OracleIntervalDS構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleIntervalDS静的フィールド

OracleIntervalDS静的フィールドを、表14-49にリストします。

表14-49 OracleIntervalDS静的フィールド

フィールド

説明

MaxValue

OracleIntervalDS構造に有効な最大間隔を表します

MinValue

OracleIntervalDS構造に有効な最小間隔を表します

Null

OracleIntervalDSインスタンスに割り当てることができるNULL値を表します

Zero

OracleIntervalDS構造のゼロ値を表します

OracleIntervalDS静的メソッド

OracleIntervalDS静的メソッドを、表14-50にリストします。

表14-50 OracleIntervalDS静的メソッド

メソッド

説明

Equals

2つのOracleIntervalDS値が等しいかどうかを判別します(オーバーロード)

GreaterThan

一方のOracleIntervalDS値がもう一方の値より大きいかどうかを判別します

GreaterThanOrEqual

一方のOracleIntervalDS値がもう一方の値以上かどうかを判別します

LessThan

一方のOracleIntervalDS値がもう一方の値より小さいかどうかを判別します

LessThanOrEqual

一方のOracleIntervalDS値がもう一方の値以下かどうかを判別します

NotEquals

2つのOracleIntervalDS値が等しくないかどうかを判別します

Parse

OracleIntervalDS構造を戻し、文字列を使用して間隔の値を設定します

SetPrecision

指定された日付精度および小数秒精度が含まれたOracleIntervalDSの新規インスタンスを戻します

OracleIntervalDS静的演算子

OracleIntervalDS静的演算子を、表14-51にリストします。

表14-51 OracleIntervalDS静的演算子

演算子

説明

operator+

2つのOracleIntervalDS値を追加します

operator ==

2つのOracleIntervalDS値が等しいかどうかを判別します

operator >

一方のOracleIntervalDS値がもう一方の値より大きいかどうかを判別します

operator >=

一方のOracleIntervalDS値がもう一方の値以上かどうかを判別します

operator !=

2つのOracleIntervalDS値が等しくないかどうかを判別します

operator <

一方のOracleIntervalDS値がもう一方の値より小さいかどうかを判別します

operator <=

一方のOracleIntervalDS値がもう一方の値以下かどうかを判別します

operator -

一方のOracleIntervalDS値をもう一方の値から減算します

operator -

OracleIntervalDS構造を否定します

operator *

OracleIntervalDS値に数値を乗算します

operator /

OracleIntervalDS値を数値で除算します

OracleIntervalDS型変換

OracleIntervalDS型変換を、表14-52にリストします。

表14-52 OracleIntervalDS型変換

演算子

説明

explicit operator TimeSpan

OracleIntervalDS構造をTimeSpan構造に変換します

explicit operator OracleIntervalDS

文字列をOracleIntervalDS構造に変換します

implicit operator OracleIntervalDS

TimeSpan構造をOracleIntervalDS構造に変換します

OracleIntervalDSプロパティ

OracleIntervalDSプロパティを、表14-53にリストします。

表14-53 OracleIntervalDSプロパティ

プロパティ

説明

BinData

Oracle INTERVAL DAY TO SECONDをOracle内部書式で表したバイト配列を戻します

Days

OracleIntervalDSの日付コンポーネントを取得します

Hours

OracleIntervalDSの時間コンポーネントを取得します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Milliseconds

OracleIntervalDSのミリ秒コンポーネントを取得します

Minutes

OracleIntervalDSの分コンポーネントを取得します

Nanoseconds

OracleIntervalDSのナノ秒コンポーネントを取得します

Seconds

OracleIntervalDSの秒コンポーネントを取得します

TotalDays

OracleIntervalDS構造の期間を表す合計日数を戻します

Value

OracleIntervalDS構造に格納されている間隔を指定します

OracleIntervalDSメソッド

OracleIntervalDSメソッドを、表14-54にリストします。

表14-54 OracleIntervalDSメソッド

メソッド

説明

CompareTo

現行のOracleIntervalDSインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

指定されたobjectの間隔が現行インスタンスと同じかどうかを判別します(オーバーロード)

GetHashCode

OracleIntervalDSインスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToString

現行のOracleIntervalDS構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

OracleIntervalDSコンストラクタ

OracleIntervalDSコンストラクタでは、OracleIntervalDS構造の新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleIntervalDS(TimeSpan)
このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、TimeSpan構造を使用してその値を設定します。

- OracleIntervalDS(string)
このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、時間間隔を表す文字列を使用してその値を設定します。

- OracleIntervalDS(double)
このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、日数の合計を使用してその値を設定します。

- OracleIntervalDS(int, int, int, int, double)
このコンストラクタでは、OracleIntervalDS構造の新規インスタンスが作成され、指定された日付、時間、分、秒およびミリ秒を使用して値が設定されます。

- OracleIntervalDS(int, int, int, int, int)
このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、指定した日、時、分、秒およびナノ秒を使用してその値を設定します。

- OracleIntervalDS(byte[ ])
このコンストラクタでは、OracleIntervalDS構造の新規インスタンスが作成され、値は指定されたバイト配列に設定されます。この値は、内部Oracle INTERVAL DAY TO SECOND書式で表されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS(TimeSpan)

このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、TimeSpan構造を使用してその値を設定します。

宣言

// C#
public OracleIntervalDS(TimeSpan ts);

パラメータ

- ts
TimeSpan構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS(string)

このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、時間間隔を表す文字列を使用してその値を設定します。

宣言

// C#
public OracleIntervalDS(string intervalStr);

パラメータ

- intervalStr
Oracle INTERVAL DAY TO SECONDを表す文字列

例外

ArgumentException - intervalStrパラメータは有効な書式ではないか、無効な値があります。

ArgumentNullException - intervalStrパラメータがNULLです。

備考

指定したintervalStrで指定された値はDay HH:MI:SSxFF書式である必要があります。

例

「1 2:3:4.99」は、1日、2時間、3分、4秒および990ミリ秒、または1日、2時間、3分、4秒および990000000ナノ秒のことです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS(double)

このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、日数の合計を使用してその値を設定します。

宣言

// C#
public OracleIntervalDS(double totalDays);

パラメータ

- totalDays
時間間隔の指定した合計日数です。日数の範囲は1000,000,000 < totalDays < 1000,000,000です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値は有効なOracleIntervalDSを構築するのに使用できません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS(int, int, int, int, double)

このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、指定した日、時、分、秒およびミリ秒を使用してその値を設定します。

宣言

// C#
public OracleIntervalDS (int days, int hours, int minutes, int seconds,
double milliSeconds);

パラメータ

- days
指定された日。日の範囲は(-999,999,999から999,999,999)です。

- hours
指定された時間。時間の範囲は(-23から23)です。

- minutes
指定された分。分の範囲は(-59から59)です。

- seconds
指定された秒。秒の範囲は(-59から59)です。

- milliSeconds
指定されたミリ秒。ミリ秒の範囲は(-999.999999から999.999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値は有効なOracleIntervalDSを構築するのに使用できません。

備考

すべての引数の記号が同じである必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS(int, int, int, int, int)

このコンストラクタでは、OracleIntervalDS構造の新規インスタンスを作成し、指定した日、時、分、秒およびナノ秒を使用してその値を設定します。

宣言

// C#
public OracleIntervalDS (int days, int hours, int minutes, int seconds,
int nanoseconds);

パラメータ

- days
指定された日。日の範囲は(-999,999,999から999,999,999)です。

- hours
指定された時間。時間の範囲は(-23から23)です。

- minutes
指定された分。分の範囲は(-59から59)です。

- seconds
指定された秒。秒の範囲は(-59から59)です。

- nanoseconds
指定されたナノ秒。ナノ秒の範囲は(-999,999,999から999,999,999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値は有効なOracleIntervalDSを構築するのに使用できません。

備考

すべての引数の記号が同じである必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS(byte[ ])

このコンストラクタでは、OracleIntervalDS構造の新規インスタンスが作成され、値は指定されたバイト配列に設定されます。この値は、内部Oracle INTERVAL DAY TO SECOND書式で表されます。

宣言

// C#
public OracleIntervalDS (byte[ ] bytes);

パラメータ

- bytes
内部Oracle INTERVAL DAY TO SECOND書式で表したバイト配列です。

例外

ArgumentException - bytesが内部Oracle INTERVAL DAY TO SECOND書式で表されていないか、またはbytesが有効なOracle INTERVAL DAY TO SECONDではありません。

ArgumentNullException - bytesがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS静的フィールド

OracleIntervalDS静的フィールドを、表14-55にリストします。

表14-55 OracleIntervalDS静的フィールド

フィールド

説明

MaxValue

OracleIntervalDS構造に有効な最大間隔を表します

MinValue

OracleIntervalDS構造に有効な最小間隔を表します

Null

OracleIntervalDSインスタンスに割り当てることができるNULL値を表します

Zero

OracleIntervalDS構造のゼロ値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

MaxValue

この静的フィールドは、OracleIntervalDS構造の最大値を表します。

宣言

// C#
public static readonly OracleIntervalDS MaxValue;

備考

最大値:

- 日付: 999999999

- 時間: 23

- 分: 59

- 秒: 59

- ナノ秒: 999999999

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

MinValue

この静的フィールドは、OracleIntervalDS構造の最小値を表します。

宣言

// C#
public static readonly OracleIntervalDS MinValue;

備考

最小値:

- 日付: -999999999

- 時間: -23

- 分: -59

- 秒: -59

- ナノ秒: -999999999

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Null

この静的フィールドは、OracleIntervalDSインスタンスに割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleIntervalDS Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Zero

この静的フィールドは、OracleIntervalDS構造の0(ゼロ)値を表します。

宣言

// C#
public static readonly OracleIntervalDS Zero;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS静的メソッド

OracleIntervalDS静的メソッドを、表14-56にリストします。

表14-56 OracleIntervalDS静的メソッド

メソッド

説明

Equals

2つのOracleIntervalDS値が等しいかどうかを判別します(オーバーロード)

GreaterThan

一方のOracleIntervalDS値がもう一方の値より大きいかどうかを判別します

GreaterThanOrEqual

一方のOracleIntervalDS値がもう一方の値以上かどうかを判別します

LessThan

一方のOracleIntervalDS値がもう一方の値より小さいかどうかを判別します

LessThanOrEqual

一方のOracleIntervalDS値がもう一方の値以下かどうかを判別します

NotEquals

2つのOracleIntervalDS値が等しくないかどうかを判別します

Parse

OracleIntervalDS構造を戻し、文字列を使用して間隔の値を設定します

SetPrecision

指定された日付精度および小数秒精度が含まれたOracleIntervalDSの新規インスタンスを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Equals

この静的メソッドでは、2つのOracleIntervalDS値が等しいかどうかが判断されます。

宣言

// C#
public static bool Equals(OracleIntervalDS val1, OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS構造が同じ間隔を表す場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

GreaterThan

この静的メソッドでは、2つのOracleIntervalDS値の最初の値が2番目の値より大きいかどうかが判断されます。

宣言

// C#
public static bool GreaterThan(OracleIntervalDS val1, OracleIntervalDS
val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

GreaterThanOrEqual

この静的メソッドでは、2つのOracleIntervalDS値の最初の値が2番目の値以上かどうかが判断されます。

宣言

// C#
public static bool GreaterThanOrEqual(OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

LessThan

この静的メソッドでは、2つのOracleIntervalDS値の最初の値が2番目の値未満かどうかが判断されます。

宣言

// C#
public static bool LessThan(OracleIntervalDS val1, OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値未満である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

LessThanOrEqual

この静的メソッドでは、2つのOracleIntervalDS値の最初の値が2番目の値以下かどうかが判断されます。

宣言

// C#
public static bool LessThanOrEqual(OracleIntervalDS val1, OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

NotEquals

この静的メソッドでは、2つのOracleIntervalDS値が等しくないかどうかが判断されます。

宣言

// C#
public static bool NotEquals(OracleIntervalDS val1, OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値が等しくない場合はtrueを戻し、等しい場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Parse

この静的メソッドでは、OracleIntervalDSインスタンスが戻され、文字列を使用して間隔の値が設定されます。

宣言

// C#
public static OracleIntervalDS Parse(string intervalStr);

パラメータ

- intervalStr
Oracle INTERVAL DAY TO SECONDを表す文字列

戻り値

指定された文字列に含まれる間隔を表したOracleIntervalDSインスタンスが戻されます。

例外

ArgumentException - intervalStrパラメータの書式が有効でないか、またはintervalStrに無効な値が含まれます。

ArgumentNullException - intervalStrパラメータがNULLです。

備考

intervalStrに指定された値は、Day HH:MI:SSxFFの書式で表されている必要があります。

例

「1 2:3:4.99」は、1日、2時間、3分、4秒および990ミリ秒、または1日、2時間、3分、4秒および990000000ナノ秒のことです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

SetPrecision

この静的メソッドでは、指定された日付精度および小数秒精度が含まれた、OracleIntervalDSの新規インスタンスが戻されます。

宣言

// C#
public static OracleIntervalDS SetPrecision(OracleIntervalDS value1,
int dayPrecision, int fracSecPrecision);

パラメータ

- value1
OracleIntervalDS構造

- dayPrecision
指定された日付精度。日付精度の範囲は(0から9)です。

- fracSecPrecision
指定された小数秒精度。小数秒精度の範囲は(0から9)です。

戻り値

OracleIntervalDSインスタンス

例外

ArgumentOutOfRangeException - 引数値が指定範囲を超えています。

備考

指定されたdayPrecisionの値に応じて、ToString()により戻された文字列に、0個以上の先行0(ゼロ)が表示されます。

指定されたfracSecPrecisionの値は、指定されたOracleIntervalDSの値に端数切捨て処理を実行する際に使用されます。この値に応じて、ToString()によって戻される文字列に、後続のゼロが0個以上表示されます。

例

SetPrecision()がコールされ、日付精度が3、小数秒精度が5に設定します。されている場合、"1 2:3:4.99"の値が指定されたOracleIntervalDSは、文字列"001 2:3:4.99000"となります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS静的演算子

OracleIntervalDS静的演算子を、表14-57にリストします。

表14-57 OracleIntervalDS静的演算子

演算子

説明

operator+

2つのOracleIntervalDS値を追加します

operator ==

2つのOracleIntervalDS値が等しいかどうかを判別します

operator >

一方のOracleIntervalDS値がもう一方の値より大きいかどうかを判別します

operator >=

一方のOracleIntervalDS値がもう一方の値以上かどうかを判別します

operator !=

2つのOracleIntervalDS値が等しくないかどうかを判別します

operator <

一方のOracleIntervalDS値がもう一方の値より小さいかどうかを判別します

operator <=

一方のOracleIntervalDS値がもう一方の値以下かどうかを判別します

operator -

一方のOracleIntervalDS値をもう一方の値から減算します

operator -

OracleIntervalDS構造を否定します

operator *

OracleIntervalDS値に数値を乗算します

operator /

OracleIntervalDS値を数値で除算します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator +

この静的演算子では、2つのOracleIntervalDS値が加算されます。

宣言

// C#
public static OracleIntervalDS operator + (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

OracleIntervalDS

備考

引数のいずれかにNULL値がある場合、戻されたOracleIntervalDS構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator ==

この静的演算子では、2つのOracleIntervalDS値が等しいかどうかが判断されます。

宣言

// C#
public static bool operator == (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値が同じである場合はtrueを戻し、同じでない場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator >

この静的演算子では、2つのOracleIntervalDS値の最初の値が2番目の値より大きいかどうかが判断されます。

宣言

// C#
public static bool operator > (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

一方のOracleIntervalDS値がもう一方の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator >=

この静的演算子では、2つのOracleIntervalDS値の最初の値が2番目の値以上かどうかが判断されます。

宣言

// C#
public static bool operator >= (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator !=

この静的演算子では、2つのOracleIntervalDS値が等しくないかどうかが判断されます。

宣言

// C#
public static bool operator != (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値が等しくない場合はtrueを戻し、等しい場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator <

この静的演算子では、2つのOracleIntervalDS値の最初の値が2番目の値未満かどうかが判断されます。

宣言

// C#
public static bool operator < (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値未満である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator <=

この静的演算子では、2つのOracleIntervalDS値の最初の値が2番目の値以下かどうかが判断されます。

宣言

// C#
public static bool operator <= (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

2つのOracleIntervalDS値の最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator -

この静的演算子では、一方のOracleIntervalDS構造がもう一方の構造から差し引かれます。

宣言

// C#
public static OracleIntervalDS operator - (OracleIntervalDS val1,
OracleIntervalDS val2);

パラメータ

- val1
最初のOracleIntervalDS

- val2
2番目のOracleIntervalDS

戻り値

OracleIntervalDS構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleIntervalDS構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator -

この静的演算子では、指定されたOracleIntervalDS構造が否定されます。

宣言

// C#
public static OracleIntervalDS operator - (OracleIntervalDS val);

パラメータ

- val
OracleIntervalDS

戻り値

OracleIntervalDS構造

備考

指定したOracleIntervalDS構造にNULL値がある場合、戻されたOracleIntervalDS構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator *

この静的演算子では、OracleIntervalDS値に数値が掛け合せられます。

宣言

// C#
public static OracleIntervalDS operator * (OracleIntervalDS val1,
int multiplier);

パラメータ

- val1
最初のOracleIntervalDS

- multiplier
乗数

戻り値

新規のOracleIntervalDSインスタンス

備考

OracleIntervalDS構造にNULL値がある場合、戻されたOracleIntervalDS構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

operator /

この静的演算子では、OracleIntervalDS値が数値で除算されます。

宣言

// C#
public static OracleIntervalDS operator / (OracleIntervalDS val1,
int divisor);

パラメータ

- val1
最初のOracleIntervalDS

- divisor
除数

戻り値

OracleIntervalDS構造

備考

OracleIntervalDS構造にNULL値がある場合、戻されたOracleIntervalDS構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDS型変換

OracleIntervalDS型変換を、表14-58にリストします。

表14-58 OracleIntervalDS型変換

演算子

説明

explicit operator TimeSpan

OracleIntervalDS構造をTimeSpan構造に変換します

explicit operator OracleIntervalDS

文字列をOracleIntervalDS構造に変換します

implicit operator OracleIntervalDS

TimeSpan構造をOracleIntervalDS構造に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

explicit operator TimeSpan

この型変換演算子では、OracleIntervalDS構造がTimeSpan構造に変換されます。

宣言

// C#
public static explicit operator TimeSpan(OracleIntervalDS val);

パラメータ

- val
OracleIntervalDSインスタンス

戻り値

TimeSpan構造

例外

OracleNullValueException - OracleIntervalDS構造にNULL値があります。

備考

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

explicit operator OracleIntervalDS

この型変換演算子では、文字列がOracleIntervalDS構造に変換されます。

宣言

// C#
public static explicit operator OracleIntervalDS (string intervalStr);

パラメータ

- intervalStr
Oracle INTERVAL DAY TO SECONDの文字列表現

戻り値

OracleIntervalDS構造

例外

ArgumentException - 指定されたintervalStrパラメータの書式が正しくないか、または無効な値が含まれます。

ArgumentNullException - intervalStrパラメータがNULLです。

備考

戻されたOracleIntervalDS構造には、指定されたintervalStrで表されているのと同じ間隔が含まれます。指定したintervalStrで指定された値はDay HH:MI:SSxFF書式である必要があります。

例

"1 2:3:4.99"とは、1日、2時間、3分4秒および990ミリ秒、または1日、2時間、3分4秒および990000000ナノ秒を意味します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

implicit operator OracleIntervalDS

この型変換演算子では、TimeSpan構造がOracleIntervalDS構造に変換されます。

宣言

// C#
public static implicit operator OracleIntervalDS(TimeSpan val);

パラメータ

- val
TimeSpanインスタンス

戻り値

OracleIntervalDS構造

備考

戻されたOracleIntervalDS構造には、指定されたTimeSpan valと同じ日付、時間、秒およびミリ秒が含まれます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDSプロパティ

OracleIntervalDSプロパティを、表14-59にリストします。

表14-59 OracleIntervalDSプロパティ

プロパティ

説明

BinData

Oracle INTERVAL DAY TO SECONDをOracle内部書式で表したバイト配列を戻します

Days

OracleIntervalDSの日付コンポーネントを取得します

Hours

OracleIntervalDSの時間コンポーネントを取得します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Milliseconds

OracleIntervalDSのミリ秒コンポーネントを取得します

Minutes

OracleIntervalDSの分コンポーネントを取得します

Nanoseconds

OracleIntervalDSのナノ秒コンポーネントを取得します

Seconds

OracleIntervalDSの秒コンポーネントを取得します

TotalDays

OracleIntervalDS構造の期間を表す合計日数を戻します

Value

OracleIntervalDS構造に格納されている間隔を指定します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

BinData

このプロパティにより、Oracleの内部書式でOracle INTERVAL DAY TO SECONDを表すバイトの配列を戻します。

宣言

// C#
public byte[] BinData {get;}

プロパティ値

Oracleの内部書式でOracle INTERVAL DAY TO SECONDを表すバイト配列です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

備考

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Days

このプロパティでは、OracleIntervalDSの日付コンポーネントが取得されます。

宣言

// C#
public int Days {get;}

プロパティ値

日付コンポーネントを表すint。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Hours

このプロパティでは、OracleIntervalDSの時間コンポーネントが取得されます。

宣言

// C#
public int Hours {get;}

プロパティ値

時間コンポーネントを表すint。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull {get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Milliseconds

このプロパティでは、OracleIntervalDSのミリ秒コンポーネントが取得されます。

宣言

// C#
public double Milliseconds {get;}

プロパティ値

ミリ秒コンポーネントを表すdouble

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Minutes

このプロパティでは、OracleIntervalDSの分コンポーネントが取得されます。

宣言

// C#
public int Minutes {get;}

プロパティ値

分コンポーネントを表すint

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Nanoseconds

このプロパティでは、OracleIntervalDSのナノ秒コンポーネントが取得されます。

宣言

// C#
public int Nanoseconds {get;}

プロパティ値

ナノ秒コンポーネントを表すint

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Seconds

このプロパティでは、OracleIntervalDSの秒コンポーネントが取得されます。

宣言

// C#
public int Seconds {get;}

プロパティ値

秒コンポーネントを表すint

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

TotalDays

このプロパティでは、OracleIntervalDS構造の期間を表す合計日数が戻されます。

宣言

// C#
public double TotalDays {get;}

プロパティ値

合計日数を表すdouble

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Value

このプロパティでは、OracleIntervalDS構造に格納されている間隔が指定されます。

宣言

// C#
public TimeSpan Value {get;}

プロパティ値

間隔

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalDSメソッド

OracleIntervalDSメソッドを、表14-60にリストします。

表14-60 OracleIntervalDSメソッド

メソッド

説明

CompareTo

現行のOracleIntervalDSインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

指定されたobjectの間隔が現行インスタンスと同じかどうかを判別します(オーバーロード)

GetHashCode

OracleIntervalDSインスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToString

現行のOracleIntervalDS構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

CompareTo

このメソッドでは、現行のOracleIntervalDSインスタンスをオブジェクトと比較し、相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
比較されるオブジェクト

戻り値

メソッドにより、次を戻します。

- ゼロ未満: 現行のOracleIntervalDSがobjより短い間隔を表す場合

- ゼロ: 現行のOracleIntervalDSおよびobjが同じ間隔を表す場合

- ゼロ超過: 現行のOracleIntervalDSがobjより長い間隔を表す場合

実装

IComparable

例外

ArgumentException - objパラメータはタイプOracleIntervalDSではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleIntervalDS間で行う必要があります。たとえば、OracleIntervalDSインスタンスとOracleBinaryインスタンスを比較することはできません。OracleIntervalDSを異なるタイプと比較すると、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

Equals

このメソッドでは、指定されたobjectの間隔が現行インスタンスと同じかどうかが判断されます。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
指定されたオブジェクト

戻り値

objの型がOracleIntervalDSであり、現行インスタンスと同じ間隔である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalDSは、NULL値を持つOracleIntervalDSより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalDSは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドでは、OracleIntervalDSインスタンスのハッシュ・コードが戻されます。

宣言

// C#
public override int GetHashCode();

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

ToString

Objectをオーバーライドします。

このメソッドでは、現行のOracleIntervalDS構造が文字列に変換されます。

宣言

// C#
public override string ToString();

戻り値

stringが戻されます。

備考

現行インスタンスにNULL値がある場合、戻された文字列には「NULL」が含まれます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalDS構造

- OracleIntervalDSメンバー

OracleIntervalYM構造

OracleIntervalYM構造は、データベースに格納されるか、またはデータベースから取得されるOracle INTERVAL YEAR TO MONTHデータ型を表します。それぞれのOracleIntervalYMには、年および月で表した期間が格納されます。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleIntervalYM

宣言

// C#
public struct OracleIntervalYM : IComparable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OracleIntervalYMSample
{
static void Main()
{
OracleIntervalYM iYMMax = OracleIntervalYM.MaxValue;
double totalYears = iYMMax.TotalYears;

totalYears -= 1;
OracleIntervalYM iYMMax_1 = new OracleIntervalYM(totalYears);

// Calculate the difference
OracleIntervalYM iYMDiff = iYMMax - iYMMax_1;

// Prints "iYMDiff.ToString() = +000000001-00"
Console.WriteLine("iYMDiff.ToString() = " + iYMDiff.ToString());
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYMメンバー

- OracleIntervalYMコンストラクタ

- OracleIntervalYM静的フィールド

- OracleIntervalYM静的メソッド

- OracleIntervalYM静的演算子

- OracleIntervalYM型変換

- OracleIntervalYMプロパティ

- OracleIntervalYMメソッド

OracleIntervalYMメンバー

OracleIntervalYMメンバーは、次の各表にリストしています。

OracleIntervalYMコンストラクタ

OracleIntervalYMコンストラクタを、表14-61にリストします。

表14-61 OracleIntervalYMコンストラクタ

コンストラクタ

説明

OracleIntervalYMコンストラクタ

OracleIntervalYM構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleIntervalYM静的フィールド

OracleIntervalYM静的フィールドを、表14-62にリストします。

表14-62 OracleIntervalYM静的フィールド

フィールド

説明

MaxValue

OracleIntervalYM構造の最大値を表します

MinValue

OracleIntervalYM構造の最小値を表します

Null

OracleIntervalYMインスタンスに割り当てることができるNULL値を表します

Zero

OracleIntervalYM構造のゼロ値を表します

OracleIntervalYM静的メソッド

OracleIntervalYM静的メソッドを、表14-63にリストします。

表14-63 OracleIntervalYM静的メソッド

メソッド

説明

Equals

2つのOracleIntervalYM値が等しいかどうかを判別します(オーバーロード)

GreaterThan

一方のOracleIntervalYM値がもう一方の値より大きいかどうかを判別します

GreaterThanOrEqual

一方のOracleIntervalYM値がもう一方の値以上かどうかを判別します

LessThan

一方のOracleIntervalYM値がもう一方の値より小さいかどうかを判別します

LessThanOrEqual

一方のOracleIntervalYM値がもう一方の値以下かどうかを判別します

NotEquals

2つのOracleIntervalYM値が等しくないかどうかを判別します

Parse

OracleIntervalYM構造を戻し、文字列を使用して間隔の値を設定します

SetPrecision

指定された年精度が含まれたOracleIntervalYMの新規インスタンスを戻します

OracleIntervalYM静的演算子

OracleIntervalYM静的演算子を、表14-64にリストします。

表14-64 OracleIntervalYM静的演算子

演算子

説明

operator+

2つのOracleIntervalYM値を追加します

operator ==

2つのOracleIntervalYM値が等しいかどうかを判別します

operator >

一方のOracleIntervalYM値がもう一方の値より大きいかどうかを判別します

operator >=

一方のOracleIntervalYM値がもう一方の値以上かどうかを判別します

operator !=

2つのOracleIntervalYM値が等しくないかどうかを判別します

operator <

一方のOracleIntervalYM値がもう一方の値より小さいかどうかを判別します

operator <=

一方のOracleIntervalYM値がもう一方の値以下かどうかを判別します

operator -

一方のOracleIntervalYM値をもう一方の値から減算します

operator -

OracleIntervalYM構造を否定します

operator *

OracleIntervalYM値に数値を乗算します

operator /

OracleIntervalYM値を数値で除算します

OracleIntervalYM型変換

OracleIntervalYM変換を、表14-65にリストします。

表14-65 OracleIntervalYM型変換

演算子

説明

explicit operator long

OracleIntervalYM構造を数値に変換します

explicit operator OracleIntervalYM

文字列をOracleIntervalYM構造に変換します

implicit operator OracleIntervalYM

月数をOracleIntervalYM構造に変換します

OracleIntervalYMプロパティ

OracleIntervalYMプロパティを、表14-66にリストします。

表14-66 OracleIntervalYMプロパティ

プロパティ

説明

BinData

Oracle INTERVAL YEAR TO MONTHをOracle内部書式で表したバイト配列を戻します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Months

OracleIntervalYMの月コンポーネントを取得します

TotalYears

現行のOracleIntervalYM構造の期間を表す合計年数を戻します

Value

OracleIntervalYM構造に格納されている合計月数を指定します

Years

OracleIntervalYMの年コンポーネントを取得します

OracleIntervalYMメソッド

OracleIntervalYMメソッドを、表14-67にリストします。

表14-67 OracleIntervalYMメソッド

メソッド

説明

CompareTo

現行のOracleIntervalYMインスタンスを指定オブジェクトと比較し、相対値を表す整数を戻します

Equals

指定されたobjectの間隔が現行インスタンスと同じかどうかを判別します(オーバーロード)

GetHashCode

OracleIntervalYMインスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToString

現行のOracleIntervalYM構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

OracleIntervalYMコンストラクタ

OracleIntervalYMコンストラクタでは、OracleIntervalYM構造の新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleIntervalYM(long)
このメソッドでは、指定された一定期間の合計月数を使用して、OracleIntervalYM構造の新規インスタンスが作成されます。

- OracleIntervalYM(string)
このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、指定された文字列を使用して値が設定されます。

- OracleIntervalYM(double)
このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、合計年数を使用して値が設定されます。

- OracleIntervalYM(int, int)
このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、年と月を使用して値が設定されます。

- OracleIntervalYM(byte[ ])
このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、値は指定されたバイト配列に設定されます。この値は、内部Oracle INTERVAL DAY TO SECOND書式で表されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM(long)

このメソッドでは、指定された一定期間の合計月数を使用して、OracleIntervalYM構造の新規インスタンスが作成されます。

宣言

// C#
public OracleIntervalYM (long totalMonths);

パラメータ

- totalMonths
間隔における合計月数です。範囲は、-12,000,000,000 < totalMonths < 12,000,000,000です。

例外

ArgumentOutOfRangeException - totalMonthsパラメータが指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM(string)

このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、指定された文字列を使用して値が設定されます。

宣言

// C#
public OracleIntervalYM (string intervalStr);

パラメータ

- intervalStr
Oracle INTERVAL YEAR TO MONTHを表した文字列

備考

指定されたintervalStrの値は、年-月の書式で表されている必要があります。

例外

ArgumentException - intervalStrパラメータの書式が有効でないか、またはintervalStrに無効な値が含まれます。

ArgumentNullException - intervalStrパラメータがNULLです。

例

"1-2"は、1年と2か月を意味します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM(double)

このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、合計年数を使用して値が設定されます。

宣言

// C#
public OracleIntervalYM (double totalYears);

パラメータ

- totalYears
合計年数です。範囲は、-1,000,000,000 < totalYears > 1,000,000,000です。

例外

ArgumentOutOfRangeException - totalYearsパラメータが指定範囲を超えています。

ArgumentException - totalYearsパラメータは、有効なOracleIntervalYMの構成に使用できません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM(int, int)

このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、年と月を使用して値が設定されます。

宣言

// C#
public OracleIntervalYM (int years, int months);

パラメータ

- years
年数です。年の範囲は(-999,999,999から999,999,999)です。

- months
月数です。月の範囲は(-11から11)です。

備考

すべての引数の記号が同じである必要があります。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値は、有効なOracleIntervalYMの構成に使用できません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM(byte[ ])

このメソッドでは、OracleIntervalYM構造の新規インスタンスが作成され、値は指定されたバイト配列に設定されます。この値は、内部Oracle INTERVAL DAY TO SECOND書式で表されます。

宣言

// C#
public OracleIntervalYM (byte[] bytes);

パラメータ

- bytes
内部Oracle INTERVAL YEAR TO MONTH書式で表したバイト配列です。

例外

ArgumentException - 指定されたバイト配列が内部Oracle INTERVAL YEAR TO MONTH書式で表されていないか、または指定されたバイト配列に無効な値が含まれます。

ArgumentNullException - bytesがNULLです。

備考

指定されたバイト配列は、内部Oracle INTERVAL YEAR TO MONTH書式で表されている必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM静的フィールド

OracleIntervalYM静的フィールドを、表14-68にリストします。

表14-68 OracleIntervalYM静的フィールド

フィールド

説明

MaxValue

OracleIntervalYM構造の最大値を表します

MinValue

OracleIntervalYM構造の最小値を表します

Null

OracleIntervalYMインスタンスに割り当てることができるNULL値を表します

Zero

OracleIntervalYM構造のゼロ値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

MaxValue

この静的フィールドは、OracleIntervalYM構造の最大値を表します。

宣言

// C#
public static readonly OracleIntervalYM MaxValue;

備考

年は999999999で、月は11です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

MinValue

この静的フィールドは、OracleIntervalYM構造の最小値を表します。

宣言

// C#
public static readonly OracleIntervalYM MinValue;

備考

年は-999999999で、月は-11です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Null

この静的フィールドは、OracleIntervalYMインスタンスに割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleIntervalYM Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Zero

この静的フィールドは、OracleIntervalYM構造の0(ゼロ)値を表します。

宣言

// C#
public static readonly OracleIntervalDS Zero;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM静的メソッド

OracleIntervalYM静的メソッドを、表14-69にリストします。

表14-69 OracleIntervalYM静的メソッド

メソッド

説明

Equals

2つのOracleIntervalYM値が等しいかどうかを判別します(オーバーロード)

GreaterThan

一方のOracleIntervalYM値がもう一方の値より大きいかどうかを判別します

GreaterThanOrEqual

一方のOracleIntervalYM値がもう一方の値以上かどうかを判別します

LessThan

一方のOracleIntervalYM値がもう一方の値より小さいかどうかを判別します

LessThanOrEqual

一方のOracleIntervalYM値がもう一方の値以下かどうかを判別します

NotEquals

2つのOracleIntervalYM値が等しくないかどうかを判別します

Parse

OracleIntervalYM構造を戻し、文字列を使用して間隔の値を設定します

SetPrecision

指定された年精度が含まれたOracleIntervalYMの新規インスタンスを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Equals

この静的メソッドでは、2つのOracleIntervalYM値が等しいかどうかが判断されます。

宣言

// C#
public static bool Equals(OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
OracleIntervalYM構造

- val2
OracleIntervalYM構造

戻り値

2つのOracleIntervalYMの値が同じ間隔を表す場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

GreaterThan

この静的メソッドでは、2つのOracleIntervalYM値の最初の値が2番目の値より大きいかどうかが判断されます。

宣言

// C#
public static bool GreaterThan(OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値の最初の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

GreaterThanOrEqual

この静的メソッドでは、2つのOracleIntervalYM値の最初の値が2番目の値以上かどうかが判断されます。

宣言

// C#
public static bool GreaterThanOrEqual(OracleIntervalYM val1,
OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値の最初の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

LessThan

この静的メソッドでは、2つのOracleIntervalYM値の最初の値が2番目の値未満かどうかが判断されます。

宣言

// C#
public static bool LessThan(OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値の最初の値が2番目の値未満である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

LessThanOrEqual

この静的メソッドでは、2つのOracleIntervalYM値の最初の値が2番目の値以下かどうかが判断されます。

宣言

// C#
public static bool LessThanOrEqual(OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYMのうち、最初の値が2番目の値以下である場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

NotEquals

この静的メソッドでは、2つのOracleIntervalYM値が等しくないかどうかが判断されます。

宣言

// C#
public static bool NotEquals(OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値が等しくない場合はtrueが戻されます。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Parse

この静的メソッドでは、OracleIntervalYM構造が戻され、文字列を使用して間隔の値が設定されます。

宣言

// C#
public static OracleIntervalYM Parse (string intervalStr);

パラメータ

- intervalStr
Oracle INTERVAL YEAR TO MONTHを表した文字列

戻り値

OracleIntervalYM構造が戻されます。

例外

ArgumentException - intervalStrパラメータの書式が有効でないか、またはintervalStrに無効な値が含まれます。

ArgumentNullException - intervalStrパラメータがNULLです。

備考

指定されたintervalStrの値は、年-月の書式で表されている必要があります。

例

"1-2"は、1年と2か月を意味します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

SetPrecision

この静的メソッドでは、指定された年精度が含まれた、OracleIntervalYMの新規インスタンスが戻されます。

宣言

// C#
public static OracleIntervalYM SetPrecision(OracleIntervalYM value1,
int yearPrecision);

パラメータ

- value1
OracleIntervalYM構造

- yearPrecision
指定された年精度。年精度の範囲は(0から9)です。

戻り値

OracleIntervalDSインスタンス

例外

ArgumentOutOfRangeException - yearPrecisionが指定範囲を超えています。

備考

指定されたyearPrecisionの値に応じて、ToString()により戻された文字列に、0個以上の先行0(ゼロ)が表示されます。

例

SetPrecision()がコールされ、年精度が3に設定されている場合、"1-2"の値が指定されたOracleIntervalYMは、文字列"001-2"となります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM静的演算子

OracleIntervalYM静的演算子を、表14-70にリストします。

表14-70 OracleIntervalYM静的演算子

演算子

説明

operator+

2つのOracleIntervalYM値を追加します

operator ==

2つのOracleIntervalYM値が等しいかどうかを判別します

operator >

一方のOracleIntervalYM値がもう一方の値より大きいかどうかを判別します

operator >=

一方のOracleIntervalYM値がもう一方の値以上かどうかを判別します

operator !=

2つのOracleIntervalYM値が等しくないかどうかを判別します

operator <

一方のOracleIntervalYM値がもう一方の値より小さいかどうかを判別します

operator <=

一方のOracleIntervalYM値がもう一方の値以下かどうかを判別します

operator -

一方のOracleIntervalYM値をもう一方の値から減算します

operator -

OracleIntervalYM構造を否定します

operator *

OracleIntervalYM値に数値を乗算します

operator /

OracleIntervalYM値を数値で除算します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator +

この静的演算子では、2つのOracleIntervalYM値が加算されます。

宣言

// C#
public static OracleIntervalYM operator + (OracleIntervalYM val1,
OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

OracleIntervalYM

備考

引数のいずれかにNULL値がある場合、戻されたOracleIntervalYM構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator ==

この静的演算子では、2つのOracleIntervalYM値が等しいかどうかが判断されます。

宣言

// C#
public static bool operator == (OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator >

この静的演算子では、2つのOracleIntervalYM値の最初の値が2番目の値より大きいかどうかが判断されます。

宣言

// C#
public static bool operator > (OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

一方のOracleIntervalYM値がもう一方の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator >=

この静的演算子では、2つのOracleIntervalYM値の最初の値が2番目の値以上かどうかが判断されます。

宣言

// C#
public static bool operator >= (OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

一方のOracleIntervalYM値がもう一方の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator !=

この静的演算子では、2つのOracleIntervalYM値が等しくないかどうかが判断されます。

宣言

// C#
public static bool operator != (OracleIntervalYM val1, OracleIntervalYM val2)

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値が等しくない場合はtrueを戻し、等しい場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator <

この静的演算子では、2つのOracleIntervalYM値の最初の値が2番目の値未満かどうかが判断されます。

宣言

// C#
public static bool operator < (OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値の最初の値が2番目の値未満である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator <=

この静的演算子では、2つのOracleIntervalYM値の最初の値が2番目の値以下かどうかが判断されます。

宣言

// C#
public static bool operator <= (OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

2つのOracleIntervalYM値の最初の値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator -

この静的演算子では、一方のOracleIntervalYM構造がもう一方の構造から差し引かれます。

宣言

// C#
public static OracleIntervalYM operator - (OracleIntervalYM val1, OracleIntervalYM val2);

パラメータ

- val1
最初のOracleIntervalYM

- val2
2番目のOracleIntervalYM

戻り値

OracleIntervalYM構造

備考

引数のいずれかにNULL値がある場合、戻されたOracleIntervalYM構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator -

この静的演算子では、OracleIntervalYM構造が否定されます。

宣言

// C#
public static OracleIntervalYM operator - (OracleIntervalYM val);

パラメータ

- val
OracleIntervalYM

戻り値

OracleIntervalYM構造

備考

指定したOracleIntervalYM構造にNULL値がある場合、戻されたOracleIntervalYM構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator *

この静的演算子では、OracleIntervalYM値に数値が掛け合せられます。

宣言

// C#
public static OracleIntervalYM operator * (OracleIntervalYM val1, int multiplier);

パラメータ

- val1
最初のOracleIntervalYM

- multiplier
乗数

戻り値

OracleIntervalYM構造

備考

指定したOracleIntervalYM構造にNULL値がある場合、戻されたOracleIntervalYM構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

operator /

この静的演算子では、OracleIntervalYM値が数値で除算されます。

宣言

// C#
public static OracleIntervalYM operator / (OracleIntervalYM val1, int divisor);

パラメータ

- val1
最初のOracleIntervalYM

- divisor
除数

戻り値

OracleIntervalYM構造

備考

指定したOracleIntervalYM構造にNULL値がある場合、戻されたOracleIntervalYM構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYM型変換

OracleIntervalYM変換を、表14-71にリストします。

表14-71 OracleIntervalYM型変換

演算子

説明

explicit operator long

OracleIntervalYM構造を数値に変換します

explicit operator OracleIntervalYM

文字列をOracleIntervalYM構造に変換します

implicit operator OracleIntervalYM

月数をOracleIntervalYM構造に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

explicit operator long

この型変換演算子では、OracleIntervalYMが、間隔における月数を表す数値に変換されます。

宣言

// C#
public static explicit operator long (OracleIntervalYM val);

パラメータ

- val
OracleIntervalYM構造

戻り値

月のlong数

例外

OracleNullValueException - OracleIntervalYM構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

explicit operator OracleIntervalYM

この型変換演算子では、文字列intervalStrがOracleIntervalYM構造に変換されます。

宣言

// C#
public static explicit operator OracleIntervalYM (string intervalStr);

パラメータ

- intervalStr
Oracle INTERVAL YEAR TO MONTHの文字列表現

戻り値

OracleIntervalYM構造

例外

ArgumentException - 指定されたintervalStrパラメータの書式が正しくないか、または無効な値が含まれます。

ArgumentNullException - intervalStrパラメータがNULLです。

備考

戻されたOracleIntervalDS構造には、指定されたintervalStrで表されているのと同じ間隔が含まれます。指定されたintervalStrの値は、年-月の書式で表されている必要があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

implicit operator OracleIntervalYM

この型変換演算子では、間隔としての合計月数がOracleIntervalYM構造に変換されます。

宣言

// C#
public static implicit operator OracleIntervalYM (long months);

パラメータ

- months
変換される月数。範囲は、(-999,999,999 * 12)-11 <= months <=(999,999,999 * 12)+11です。

戻り値

OracleIntervalYM構造

例外

ArgumentOutOfRangeException - monthsパラメータが指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYMプロパティ

OracleIntervalYMプロパティを、表14-72にリストします。

表14-72 OracleIntervalYMプロパティ

プロパティ

説明

BinData

Oracle INTERVAL YEAR TO MONTHをOracle内部書式で表したバイト配列を戻します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Months

OracleIntervalYMの月コンポーネントを取得します

TotalYears

現行のOracleIntervalYM構造の期間を表す合計年数を戻します

Value

OracleIntervalYM構造に格納されている合計月数を指定します

Years

OracleIntervalYMの年コンポーネントを取得します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

BinData

このプロパティでは、Oracle INTERVAL YEAR TO MONTHをOracle内部書式で表したバイト配列が戻されます。

宣言

// C#
public byte[] BinData {get;}

プロパティ値

Oracle INTERVAL YEAR TO MONTHをOracle内部書式で表したバイト配列です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

IsNull

このプロパティは値にNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull {get;}

プロパティ値

値にNULL値がある場合はtrueを戻し、NULL値がない場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Months

このプロパティでは、OracleIntervalYMの月コンポーネントが取得されます。

宣言

// C#
public int Months {get;}

プロパティ値

月コンポーネントを表すint

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

TotalYears

このプロパティでは、現行のOracleIntervalYM構造の期間を表します。合計年数が戻されます。

宣言

// C#
public double TotalYears {get;}

プロパティ値

合計年数を表すdouble。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Value

このプロパティでは、OracleIntervalYM構造に格納されている合計月数が取得されます。

宣言

// C#
public long Value {get;}

プロパティ値

間隔を表します。合計月数です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Years

このプロパティでは、OracleIntervalYMの年コンポーネントが取得されます。

宣言

// C#
public int Years {get;}

プロパティ値

年コンポーネントを表すint。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleIntervalYMメソッド

OracleIntervalYMメソッドを、表14-73にリストします。

表14-73 OracleIntervalYMメソッド

メソッド

説明

CompareTo

現行のOracleIntervalYMインスタンスを指定オブジェクトと比較し、相対値を表す整数を戻します

Equals

指定されたobjectの間隔が現行インスタンスと同じかどうかを判別します(オーバーロード)

GetHashCode

OracleIntervalYMインスタンスのハッシュ・コードを戻します

GetType

System.Objectからの継承

ToString

現行のOracleIntervalYM構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

CompareTo

このメソッドでは、現行のOracleIntervalYMインスタンスが指定オブジェクトと比較され、相対値を表す整数が戻されます。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
指定されたオブジェクト

戻り値

このメソッドでは次の数値が戻されます。

ゼロ未満:現行のOracleIntervalYMがobjより短い間隔を表す場合

ゼロ:現行のOracleIntervalYMおよびobjが同じ間隔を表す場合

ゼロ超過:現行のOracleIntervalYMがobjより長い間隔を表す場合

実装

IComparable

例外

ArgumentException - objパラメータの型がOracleIntervalYMではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleIntervalYM間で行う必要があります。たとえば、OracleIntervalYMインスタンスとOracleBinaryインスタンスを比較することはできません。OracleIntervalYMが別の型と比較された場合、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

Equals

Objectをオーバーライドします。

このメソッドでは、指定されたobjectの間隔が現行インスタンスと同じかどうかが判断されます。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
指定されたオブジェクト

戻り値

指定されたオブジェクト・インスタンスの型がOracleIntervalYMであり、同じ間隔である場合はtrueが戻されます。それ以外の場合はfalseが戻されます。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleIntervalYMは、NULL値を持つOracleIntervalYMより大きい値とみなされます。

- NULL値を含む2つのOracleIntervalYMは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドでは、OracleIntervalYMインスタンスのハッシュ・コードが戻されます。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表すint

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

ToString

Objectをオーバーライドします。

このメソッドでは、現行のOracleIntervalYM構造が文字列に変換されます。

宣言

// C#
public override string ToString();

戻り値

現行のOracleIntervalYM構造を表した文字列です。

備考

現行インスタンスにNULL値がある場合、戻された文字列には「NULL」が含まれます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleIntervalYM構造

- OracleIntervalYMメンバー

OracleString構造

OracleString構造は、データベースに格納されるか、またはデータベースから取得される文字の可変長ストリームを表します。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleString

宣言

// ADO.NET 2.0: C#
public struct OracleString : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OracleStringSample
{
static void Main()
{
// Initialize OracleString structs
OracleString string1 = new OracleString("AAA");

// Display the string "AAA"
Console.WriteLine("{0} has length of {1}", string1, string1.Length);

// Contatenate characters to string1 until the length is 5
while (string1.Length < 5)
string1 = OracleString.Concat(string1,"a");

// Display the string of "AAAaa"
Console.WriteLine("{0} has length of {1}", string1, string1.Length);
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleStringメンバー

- OracleStringコンストラクタ

- OracleString静的フィールド

- OracleString静的メソッド

- OracleString静的演算子

- OracleString型変換

- OracleStringプロパティ

- OracleStringメソッド

OracleStringメンバー

次の表に、OracleStringメンバーを示します。

OracleStringコンストラクタ

OracleStringコンストラクタを、表14-74にリストします。

表14-74 OracleStringコンストラクタ

コンストラクタ

説明

OracleStringコンストラクタ

OracleString構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleString静的フィールド

OracleString静的フィールドを、表14-75にリストします。

表14-75 OracleString静的フィールド

フィールド

説明

Null

OracleString構造のインスタンスに割り当てることができるNULL値を表します

OracleString静的メソッド

OracleString静的メソッドを、表14-76にリストします。

表14-76 OracleString静的メソッド

メソッド

説明

Concat

2つのOracleStringインスタンスを連結して、その結果を表す新しいOracleStringインスタンスを戻します

Equals

2つのOracleString値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleStringのうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleStringのうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleStringのうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleStringのうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleString値が等しくないかどうかを判別します

OracleString静的演算子

OracleString静的演算子を、表14-77にリストします。

表14-77 OracleString静的演算子

演算子

説明

operator+

2つのOracleString値を連結します

operator ==

2つのOracleString値が等しいかどうかを判別します

operator >

2つのOracleString値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleString値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleString値が等しくないかどうかを判別します

operator <

2つのOracleString値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleString値が等しくないかどうかを判別します

OracleString型変換

OracleString型変換を、表14-78にリストします。

表14-78 OracleString型変換

演算子

説明

explicit operator string

指定されたOracleStringをstringインスタンスに変換します

implicit operator OracleString

指定されたstringをOracleStringインスタンスに変換します

OracleStringプロパティ

OracleStringプロパティを、表14-79にリストします。

表14-79 OracleStringプロパティ

プロパティ

説明

IsCaseIgnored

文字列比較を実行するときに、大/小文字の区別を無視する必要があるかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Item

索引を使用して、OracleString内の特定の文字を取得します

Length

OracleStringの長さを戻します

OracleStringメソッド

OracleStringメソッドを、表14-80にリストします。

表14-80 OracleStringメソッド

メソッド

説明

Clone

現行のOracleStringインスタンスのコピーを戻します

CompareTo

現行のOracleStringインスタンスを指定オブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトが現行のOracleString構造(オーバーロード)と同じ値を持っているかどうかを判別します

GetHashCode

OracleStringインスタンスのハッシュ・コードを戻します

GetNonUnicodeBytes

クライアント・キャラクタ・セットの形式で、OracleStringの内容を含むバイトの配列を戻します

GetType

System.Objectからの継承

GetUnicodeBytes

Unicode形式で、OracleStringの内容を含むバイトの配列を戻します

ToString

現行のOracleStringインスタンスをstringに変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

OracleStringコンストラクタ

OracleStringコンストラクタは、OracleString構造の新しいインスタンスを作成します。

オーバーロード・リスト:

- OracleString(string)
このコンストラクタは、OracleString構造の新しいインスタンスを作成し、文字列を使用して値を設定します。

- OracleString(string, bool)
このコンストラクタは、OracleString構造の新しいインスタンスを作成し、文字列を使用して値を設定し、比較のときに大/小文字の区別が無視されるかどうかを指定します。

- OracleString(byte [ ], bool)
このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用して値を設定し、指定されたバイト配列がUnicodeでエンコードされているかどうかを指定します。

- OracleString(byte [ ], bool, bool)
このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用してその値を設定し、指定されたバイト配列がUnicodeでエンコードされているかどうかと比較のときに大/小文字の区別が無視されるかどうかを指定します。

- OracleString(byte [ ], int, int, bool)
このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用してその値を設定し、バイト配列の開始索引とバイト配列からコピーされるバイト数、および指定されたバイト配列がUnicodeでエンコードされているかどうかを指定します。

- OracleString(byte [ ], int, int, bool, bool)
このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用してその値を設定し、バイト配列の開始索引とバイト配列からコピーされるバイト数、および指定されたバイト配列がUnicodeでエンコードされているかどうかと比較のときに大/小文字の区別が無視されるかどうかを指定します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString(string)

このコンストラクタは、OracleString構造の新しいインスタンスを作成し、文字列を使用して値を設定します。

宣言

// C#
public OracleString(string data);

パラメータ

- data
文字列値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString(string, bool)

このコンストラクタは、OracleString構造の新しいインスタンスを作成し、文字列を使用して値を設定し、比較のときに大/小文字の区別が無視されるかどうかを指定します。

宣言

// C#
public OracleString(string data, bool isCaseIgnored);

パラメータ

- data
文字列値

- isCaseIgnored
比較のときに大/小文字の区別が無視されるかどうかを指定します。大/小文字の区別が無視される場合はtrue、それ以外の場合はfalseを指定します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString(byte [ ], bool)

このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用して値を設定し、指定されたバイト配列がUnicodeでエンコードされているかどうかを指定します。

宣言

// C#
public OracleString(byte[] data, bool fUnicode);

パラメータ

- data
新しいOracleStringのバイト配列データ

- fUnicode
指定されたdataがUnicodeでエンコードされているかどうかを指定します。Unicodeでエンコードされている場合はtrue、それ以外の場合はfalseを指定します。

例外

ArgumentNullException - dataパラメータがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString(byte [ ], bool, bool)

このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用してその値を設定し、指定されたバイト配列がUnicodeでエンコードされているかどうかと比較のときに大/小文字の区別が無視されるかどうかを指定します。

宣言

// C#
public OracleString(byte[] data, bool fUnicode, bool isCaseIgnored);

パラメータ

- data
新しいOracleStringのバイト配列データ

- fUnicode
指定されたdataがUnicodeでエンコードされているかどうかを指定します。Unicodeでエンコードされている場合はtrue、それ以外の場合はfalseを指定します。

- isCaseIgnored
比較のときに大/小文字の区別が無視されるかどうかを指定します。大/小文字の区別が無視される場合はtrue、それ以外の場合はfalseを指定します。

例外

ArgumentNullException - dataパラメータがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString(byte [ ], int, int, bool)

このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用してその値を設定し、バイト配列の開始索引とバイト配列からコピーされるバイト数、および指定されたバイト配列がUnicodeでエンコードされているかどうかを指定します。

宣言

// C#
public OracleString(byte[] data, int index, int count, bool fUnicode);

パラメータ

- data
新しいOracleStringのバイト配列データ

- index
dataからコピーされる開始索引

- count
コピーされるバイト数

- fUnicode
指定されたdataがUnicodeでエンコードされているかどうかを指定します。Unicodeでエンコードされている場合はtrue、それ以外の場合はfalseを指定します。

例外

ArgumentNullException - dataパラメータがNULLです。

ArgumentOutOfRangeException - countパラメータがゼロ未満です。

IndexOutOfRangeException - indexパラメータがdataの長さ以上か、ゼロ未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString(byte [ ], int, int, bool, bool)

このコンストラクタは、OracleString構造の新しいインスタンスを作成し、バイト配列を使用してその値を設定し、バイト配列の開始索引とバイト配列からコピーされるバイト数、および指定されたバイト配列がUnicodeでエンコードされているかどうかと比較のときに大/小文字の区別が無視されるかどうかを指定します。

宣言

// C#
public OracleString(byte[] data, int index, int count, bool fUnicode,
bool isCaseIgnored);

パラメータ

- data
新しいOracleStringのバイト配列データ

- index
dataからコピーされる開始索引

- count
コピーされるバイト数

- fUnicode
指定されたdataがUnicodeでエンコードされているかどうかを指定します。Unicodeでエンコードされている場合はtrue、それ以外の場合はfalseを指定します。

- isCaseIgnored
比較のときに大/小文字の区別が無視されるかどうかを指定します。大/小文字の区別が無視される場合はtrue、それ以外の場合はfalseを指定します。

例外

ArgumentNullException - dataパラメータがNULLです。

ArgumentOutOfRangeException - countパラメータがゼロ未満です。

IndexOutOfRangeException - indexパラメータがdataの長さ以上か、ゼロ未満です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString静的フィールド

OracleString静的フィールドを、表14-81にリストします。

表14-81 OracleString静的フィールド

フィールド

説明

Null

OracleString構造のインスタンスに割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Null

この静的フィールドは、OracleString構造のインスタンスに割り当てられるNULL値を表します。

宣言

// C#
public static readonly OracleString Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString静的メソッド

OracleString静的メソッドを、表14-82にリストします。

表14-82 OracleString静的メソッド

メソッド

説明

Concat

2つのOracleStringインスタンスを連結して、その結果を表す新しいOracleStringインスタンスを戻します

Equals

2つのOracleString値が同じかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleStringのうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleStringのうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleStringのうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleStringのうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleString値が等しくないかどうかを判別します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Concat

この静的メソッドは、2つのOracleStringインスタンスを連結して、その結果を表す新しいOracleStringインスタンスを戻します。

宣言

// C#
public static OracleString Concat(OracleString str1, OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

OracleString

備考

引数のいずれかにNULL値がある場合、戻されたOracleString構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Equals

Objectをオーバーロードします。

この静的メソッドは、比較される2つのOracleStringが等しいかどうかを決定します。

宣言

// C#
public static bool Equals(OracleString str1, OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

比較される2つのOracleStringが等しい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

GreaterThan

この静的メソッドは、2つのOracleStringの最初の値が、2番目の値より大きいかどうかを決定します。

宣言

// C#
public static bool GreaterThan(OracleString str1, OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

2つのOracleStringの最初の値が2番目の値より大きい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

GreaterThanOrEqual

この静的メソッドでは、2つのOracleString値の最初の値が、2番目の値以上であるかどうかを決定します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleString str1,
OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

2つのOracleStringの最初の値が2番目の値以上の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

LessThan

この静的メソッドでは、2つのOracleString値の最初の値が、2番目の値より小さいかどうかを決定します。

宣言

// C#
public static bool LessThan(OracleString str1, OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

最初の値が2番目の値より小さい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

LessThanOrEqual

この静的メソッドでは、2つのOracleString値の最初の値が、2番目の値以下かどうかを決定します。

宣言

// C#
public static bool LessThanOrEqual(OracleString str1, OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

最初の値が2番目の値以下の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

NotEquals

この静的メソッドは、2つのOracleString値が等しくないかどうかを決定します。

宣言

// C#
public static bool NotEquals(OracleString str1, OracleString str2);

パラメータ

- str1
最初のOracleString

- str2
2番目のOracleString

戻り値

2つのOracleStringインスタンスが等しくない場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString静的演算子

OracleString静的演算子を、表14-83にリストします。

表14-83 OracleString静的演算子

演算子

説明

operator+

2つのOracleString値を連結します

operator ==

2つのOracleString値が等しいかどうかを判別します

operator >

2つのOracleString値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleString値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleString値が等しくないかどうかを判別します

operator <

2つのOracleString値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleString値が等しくないかどうかを判別します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator +

この静的演算子は、2つのOracleString値を連結します。

宣言

// C#
public static OracleString operator + (OracleString value1, OracleString value2);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

OracleString

備考

引数のいずれかにNULL値がある場合、戻されたOracleString構造にはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator ==

この静的演算子は、2つのOracleString値が等しいかどうかを決定します。

宣言

// C#
public static bool operator == (OracleString value1, OracleString value2);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

2つのOracleString値が等しい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator >

この静的演算子は、2つのOracleStringの最初の値が、2番目の値より大きいかどうかを決定します。

宣言

// C#
public static bool operator > (OracleString value1, OracleString value2);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

2つのOracleStringの最初の値が2番目の値より大きい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator >=

この静的演算子は、2つのOracleStringの最初の値が、2番目の値以上かどうかを決定します。

宣言

// C#
public static bool operator >= (OracleString value1, OracleString value2);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

2つのOracleStringの最初の値が2番目の値以上の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator !=

この静的演算子は、2つのOracleString値が等しくないかどうかを決定します。

宣言

// C#
public static bool operator != (OracleString value1, OracleString value2);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

2つのOracleString値が等しくない場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator <

この静的演算子は、2つのOracleStringの最初の値が、2番目の値より小さいかどうかを決定します。

宣言

// C#
public static bool operator < (OracleString value1, OracleString value2);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

2つのOracleStringの最初の値が2番目の値より小さい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

operator <=

この静的演算子は、2つのOracleStringの最初の値が、2番目の値以下かどうかを決定します。

宣言

// C#
public static bool operator <= (OracleString value1, OracleString value1);

パラメータ

- value1
最初のOracleString

- value2
2番目のOracleString

戻り値

2つのOracleStringの最初の値が2番目の値以下の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleString型変換

OracleString型変換を、表14-84にリストします。

表14-84 OracleString型変換

演算子

説明

explicit operator string

指定されたOracleStringをstringインスタンスに変換します

implicit operator OracleString

指定されたstringをOracleStringインスタンスに変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

explicit operator string

この型変換演算子は、指定されたOracleStringをstringに変換します。

宣言

//C#
public static explicit operator string (OracleString value1);

パラメータ

- value1
指定されたOracleString

戻り値

string

例外

OracleNullValueException - OracleString構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

implicit operator OracleString

この型変換演算子は、指定されたstringをOracleStringに変換します。

宣言

// C#
public static implicit operator OracleString (string value1);

パラメータ

- value1
指定された文字列

戻り値

OracleString

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleStringプロパティ

OracleStringプロパティを、表14-85にリストします。

表14-85 OracleStringプロパティ

プロパティ

説明

IsCaseIgnored

文字列比較を実行するときに、大/小文字の区別を無視する必要があるかどうかを示します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Item

索引を使用して、OracleString内の特定の文字を取得します

Length

OracleStringの長さを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

IsCaseIgnored

このプロパティは、文字列比較を実行するときに、大/小文字の区別を無視する必要があるかどうかを示します。

宣言

//C#
public bool IsCaseIgnored {get;set;}

プロパティ値

文字列比較で大/小文字の区別を無視する必要がある場合はtrue、それ以外の場合はfalseを戻します。

備考

デフォルト値はtrue

例

// C#

using System;
using Oracle.DataAccess.Types;

class IsCaseIgnoredSample
{
static void Main()
{
OracleString string1 = new OracleString("aAaAa");
OracleString string2 = new OracleString("AaAaA");

// Ignore case for comparisons
string1.IsCaseIgnored = true;
string2.IsCaseIgnored = true;

// Same; Prints 0
Console.WriteLine(string1.CompareTo(string2));

// Make comparisons case sensitive
// Note that IsCaseIgnored must be set to false for both
//   OracleStrings; otherwise an exception is thrown
string1.IsCaseIgnored = false;
string2.IsCaseIgnored = false;

// Different; Prints nonzero value
Console.WriteLine(string1.CompareTo(string2));
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull {get;}

プロパティ値

現行インスタンスにNULL値が含まれる場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Item

このプロパティは、索引を使用して、OracleString内の特定の文字を取得します。

宣言

// C#
public char Item {get;}

プロパティ値

char値

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Length

このプロパティは、OracleStringの長さを戻します。

宣言

// C#
public int Length {get;}

プロパティ値

整数

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleStringメソッド

OracleStringメソッドを、表14-86にリストします。

表14-86 OracleStringメソッド

メソッド

説明

Clone

現行のOracleStringインスタンスのコピーを戻します

CompareTo

現行のOracleStringインスタンスを指定オブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトが現行のOracleString構造(オーバーロード)と同じ値を持っているかどうかを判別します

GetHashCode

OracleStringインスタンスのハッシュ・コードを戻します

GetNonUnicodeBytes

クライアント・キャラクタ・セットの形式で、OracleStringの内容を含むバイトの配列を戻します

GetType

System.Objectからの継承

GetUnicodeBytes

Unicode形式で、OracleStringの内容を含むバイトの配列を戻します

ToString

現行のOracleStringインスタンスをstringに変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Clone

このメソッドは、OracleStringインスタンスのコピーを作成します。

宣言

// C#
public OracleString Clone();

戻り値

OracleString構造

備考

複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。

例

// C#

using System;
using Oracle.DataAccess.Types;

class CloneSample
{
static void Main()
{
OracleString str1 = new OracleString("aAaAa");
OracleString str2 = str1.Clone();

// The OracleStrings are same; Prints 0
Console.WriteLine(str1.CompareTo(str2));
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

CompareTo

このメソッドは、現行のOracleStringインスタンスと指定されたオブジェクトを比較して、その相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
現行インスタンスと比較されるオブジェクト

戻り値

メソッドが戻す数値は次のとおりです。

- ゼロ未満: 現行のOracleString値がobjより小さい場合

- ゼロ: 現行のOracleString値がobjと等しい場合

- ゼロ超過: 現行のOracleString値がobjより大きい場合

実装

IComparable

例外

ArgumentException - objパラメータがOracleString型ではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleString間で行う必要があります。たとえば、OracleStringインスタンスとOracleBinaryインスタンスを比較することはできません。OracleStringを別の型と比較すると、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

Equals

このメソッドは、指定されたオブジェクトがOracleStringのインスタンスかどうか、および現行のOracleStringインスタンスと同じ値を持っているかどうかを決定します。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
比較されるオブジェクト

戻り値

指定されたオブジェクトがOracleStringのインスタンスで、現行のOracleStringインスタンスと同じ値を持っている場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleStringは、NULL値を持つOracleStringより大きくなります。

- NULL値を含む2つのOracleStringは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドは、OracleStringインスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表す数値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

GetNonUnicodeBytes

このメソッドは、クライアント・キャラクタ・セットの形式で、OracleStringの内容を含むバイトの配列を戻します。

宣言

// C#
public byte[] GetNonUnicodeBytes();

戻り値

クライアント・キャラクタ・セット形式のOracleStringの内容を含むバイト配列

備考

現行インスタンスにNULL値がある場合は、OracleNullValueExceptionが表示されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

GetUnicodeBytes

このメソッドは、Unicode形式で、OracleStringの内容を含むバイトの配列を戻します。

宣言

// C#
public byte[] GetUnicodeBytes();

戻り値

Unicode形式のOracleStringの内容を含むバイト配列

備考

現行インスタンスにNULL値がある場合は、OracleNullValueExceptionが表示されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

ToString

Objectをオーバーライドします。

このメソッドは、現行のOracleStringインスタンスをstringに変換します。

宣言

// C#
public override string ToString();

戻り値

string

備考

現行のOracleStringインスタンスにNULL値がある場合、文字列にはNULLが含まれます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleString構造

- OracleStringメンバー

OracleTimeStamp構造

OracleTimeStamp構造は、データベースに格納されるか、またはデータベースから取得されるOracle TIMESTAMPデータ型を表します。各OracleTimeStampには、年、月、日、時、分、秒およびナノ秒の情報が格納されます。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleTimeStamp

宣言

// ADO.NET 2.0: C#public struct OracleTimeStamp : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;

class OracleTimeStampSample
{
static void Main()
{
OracleTimeStamp tsCurrent1 = OracleTimeStamp.GetSysDate();
OracleTimeStamp tsCurrent2 = DateTime.Now;

// Calculate the difference between tsCurrent1 and tsCurrent2
OracleIntervalDS idsDiff = tsCurrent2.GetDaysBetween(tsCurrent1);

// Calculate the difference using AddNanoseconds()
int nanoDiff = 0;
while (tsCurrent2 > tsCurrent1)
{
nanoDiff += 10;
tsCurrent1 = tsCurrent1.AddNanoseconds(10);
}
Console.WriteLine("idsDiff.Nanoseconds = " + idsDiff.Nanoseconds);
Console.WriteLine("nanoDiff = " + nanoDiff);
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampメンバー

- OracleTimeStampコンストラクタ

- OracleTimeStamp静的フィールド

- OracleTimeStamp静的メソッド

- OracleTimeStamp静的演算子

- OracleTimeStamp静的型変換

- OracleTimeStampプロパティ

- OracleTimeStampメソッド

OracleTimeStampメンバー

次の表に、OracleTimeStampメンバーを示します。

OracleTimeStampコンストラクタ

OracleTimeStampコンストラクタを、表14-87にリストします。

表14-87 OracleTimeStampコンストラクタ

コンストラクタ

説明

OracleTimeStampコンストラクタ

OracleTimeStamp構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleTimeStamp静的フィールド

OracleTimeStamp静的フィールドを、表14-88にリストします。

表14-88 OracleTimeStamp静的フィールド

フィールド

説明

MaxValue

OracleTimeStamp構造に対する有効な日付の最大値、9999年12月31日、23時59分59.999999999秒を表します

MinValue

OracleTimeStamp構造に対する有効な日付の最小値、-4712年1月1日、0時0分0秒を表します

Null

OracleTimeStamp構造のインスタンスに割り当てられるNULL値を表します

OracleTimeStamp静的メソッド

OracleTimeStamp静的メソッドを、表14-89にリストします。

表14-89 OracleTimeStamp静的メソッド

メソッド

説明

Equals

2つのOracleTimeStamp値が等しいかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleTimeStamp値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleTimeStamp値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleTimeStamp値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleTimeStamp値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleTimeStamp値が等しくないかどうかを判別します

GetSysDate

現在の日時を表すOracleTimeStamp構造を取得します

Parse

OracleTimeStamp構造を取得し、その値を指定された文字列で設定します

SetPrecision

指定された小数秒精度を使用して、OracleTimeStampの新しいインスタンスを戻します

OracleTimeStamp静的演算子

OracleTimeStamp静的演算子を、表14-90にリストします。

表14-90 OracleTimeStamp静的演算子

演算子

説明

operator+

指定されたインスタンス値を指定されたOracleTimeStampに加え、新規OracleTimeStamp構造を戻します(オーバーロード)

operator ==

2つのOracleTimeStampの値が等しいかどうかを判別します

operator >

2つのOracleTimeStamp値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleTimeStamp値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleTimeStamp値が等しくないかどうかを判別します

operator <

2つのOracleTimeStamp値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleTimeStamp値のうち、最初の値が2番目の値以下かどうかを判別します

operator -

指定されたインスタンス値を指定されたOracleTimeStampから減算し、新規OracleTimeStamp構造を戻します(オーバーロード)

OracleTimeStamp静的型変換

OracleTimeStamp静的型変換を、表14-91にリストします。

表14-91 OracleTimeStamp静的型変換

演算子

説明

explicit operator OracleTimeStamp

インスタンス値をOracleTimeStamp構造に変換します(オーバーロード)

implicit operator OracleTimeStamp

インスタンス値をOracleTimeStamp構造に変換します(オーバーロード)

explicit operator DateTime

OracleTimeStamp値をDateTime構造に変換します

OracleTimeStampプロパティ

OracleTimeStampプロパティを、表14-92にリストします。

表14-92 OracleTimeStampプロパティ

プロパティ

説明

BinData

Oracleの内部書式でOracle TIMESTAMPを表すバイトの配列を戻します

Day

OracleTimeStampの日コンポーネントを指定します

IsNull

OracleTimeStampインスタンスにNULL値があるかどうかを示します

Hour

OracleTimeStampの時間コンポーネントを指定します

Millisecond

OracleTimeStampのミリ秒コンポーネントを指定します

Minute

OracleTimeStampの分コンポーネントを指定します

Month

OracleTimeStampの月コンポーネントを指定します

Nanosecond

OracleTimeStampのナノ秒コンポーネントを指定します

Second

OracleTimeStampの秒コンポーネントを指定します

Value

OracleTimeStamp構造に格納された日時を指定します

Year

OracleTimeStampの年コンポーネントを指定します

OracleTimeStampメソッド

OracleTimeStampメソッドを、表14-93にリストします。

表14-93 OracleTimeStampメソッド

メソッド

説明

AddDays

指定された日数を現行インスタンスに追加します

AddHours

指定された時間数を現行インスタンスに追加します

AddMilliseconds

指定されたミリ秒数を現行インスタンスに追加します

AddMinutes

指定された分数を現行インスタンスに追加します

AddMonths

指定された月数を現行インスタンスに追加します

AddNanoseconds

指定されたナノ秒数を現行インスタンスに追加します

AddSeconds

指定された秒数を現行インスタンスに追加します

AddYears

指定された年数を現行インスタンスに追加します

CompareTo

現行のOracleTimeStampインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleTimeStampインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetHashCode

OracleTimeStampインスタンスのハッシュ・コードを戻します

GetDaysBetween

現行インスタンスからOracleTimeStamp値を減算して、指定されたOracleTimeStampと現行インスタンス間の時差を表すOracleIntervalDSを戻します

GetYearsBetween

現行インスタンスからvalue1を減算して、OracleIntervalYMを使用してvalue1と現行インスタンス間の差を表すOracleIntervalYMを戻します

GetType

System.Objectからの継承

ToOracleDate

現行のOracleTimeStamp構造をOracleDate構造に変換します

ToOracleTimeStampLTZ

現行のOracleTimeStamp構造をOracleTimeStampLTZ構造に変換します

ToOracleTimeStampTZ

現行のOracleTimeStamp構造をOracleTimeStampTZ構造に変換します

ToString

現行のOracleTimeStamp構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

OracleTimeStampコンストラクタ

OracleTimeStampコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成します。

オーバーロード・リスト:

- OracleTimeStamp(DateTime)
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、指定されたDateTime値を使用して日付および時刻の値を設定します。

- OracleTimeStamp(string)
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、指定された文字列を使用して値を設定します。

- OracleTimeStamp(int, int, int)
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月および日を使用して日付の値を設定します。

- OracleTimeStamp(int, int, int, int, int, int)
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月、日、時間、分および秒を使用して、日付と時刻の値を設定します。

- OracleTimeStamp(int, int, int, int, int, int, double)
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびミリ秒を使用して、日付と時刻の値を設定します。

- OracleTimeStamp(int, int, int, int, int, int, int)
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して、日付と時刻の値を設定します。

- OracleTimeStamp(byte [ ])
このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、指定されたバイト配列に値を設定します。バイト配列は、Oracle TIMESTAMP内部形式です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp(DateTime)

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、指定されたDateTime値を使用して日付および時刻の値を設定します。

宣言

// C#
public OracleTimeStamp (DateTime dt);

パラメータ

- dt
指定されたDateTime値

例外

ArgumentException - dtパラメータを使用して、有効なOracleTimeStampを作成することはできません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp(string)

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、指定された文字列を使用して値を設定します。

宣言

// C#
public OracleTimeStamp (string tsStr);

パラメータ

- tsStr
Oracle TIMESTAMPを表す文字列

例外

ArgumentException - tsStr値がOracle TIMESTAMPの無効な文字列表現か、指定されたtsStrが、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定されたタイムスタンプの形式ではありません。このプロパティは、Oracle NLS_TIMESTAMP_FORMATパラメータを表します。

ArgumentNullException - tsStr値はNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class OracleTimeStampSample
{
static void Main()
{
// Set the nls_timestamp_format for the OracleTimeStamp(string)
// constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStamp from a string using the format specified.
OracleTimeStamp ts = new OracleTimeStamp("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

- 日付書式要素の詳細は、Oracle Database SQLリファレンスを参照

OracleTimeStamp(int, int, int)

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月および日を使用して日付の値を設定します。

宣言

// C#
public OracleTimeStamp(int year, int month, int day);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp(int, int, int, int, int, int)

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月、日、時間、分および秒を使用して、日付と時刻の値を設定します。

宣言

// C#
public OracleTimeStamp (int year, int month, int day, int hour,
int minute, int second);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp(int, int, int, int, int, int, double)

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびミリ秒を使用して、日付と時刻の値を設定します。

宣言

// C#
public OracleTimeStamp(int year, int month, int day, int hour,
int minute,  int second, double millisecond);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- milliSeconds
指定されたミリ秒。millisecondの範囲は(0から999.999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp(int, int, int, int, int, int, int)

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して、日付と時刻の値を設定します。

宣言

// C#
public OracleTimeStamp (int year, int month, int day, int hour,
int minute, int second, int nanosecond);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- ナノ秒
指定されたナノ秒。nanosecondの範囲は(0から999999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp(byte [ ])

このコンストラクタは、OracleTimeStamp構造の新しいインスタンスを作成し、指定されたバイト配列に値を設定します。バイト配列は、Oracle TIMESTAMP内部形式です。

宣言

// C#
public OracleTimeStamp (byte[] bytes);

パラメータ

- bytes
Oracle内部形式でOracle TIMESTAMPを表すバイト配列

例外

ArgumentException - bytesがOracle TIMESTAMP内部形式ではないか、bytesが有効なOracle TIMESTAMPではありません。

ArgumentNullException - bytesがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp静的フィールド

OracleTimeStamp静的フィールドを、表14-94にリストします。

表14-94 OracleTimeStamp静的フィールド

フィールド

説明

MaxValue

OracleTimeStamp構造に対する有効な日付の最大値、9999年12月31日、23時59分59.999999999秒を表します

MinValue

OracleTimeStamp構造に対する有効な日付の最小値、-4712年1月1日、0時0分0秒を表します

Null

OracleTimeStamp構造のインスタンスに割り当てられるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

MaxValue

この静的フィールドは、OracleTimeStamp構造の最大有効日時、9999年12月31日23時59分59.999999999秒を表します。

宣言

// C#
public static readonly OraTimestamp MaxValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

MinValue

この静的フィールドは、OracleTimeStamp構造の最小有効日時、-4712年1月1日0時0分0秒を表します。

宣言

// C#
public static readonly OracleTimeStamp MinValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Null

この静的フィールドは、OracleTimeStamp構造のインスタンスに割り当てられるNULL値を表します。

宣言

// C#
public static readonly OracleTimeStamp Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp静的メソッド

OracleTimeStamp静的メソッドを、表14-95にリストします。

表14-95 OracleTimeStamp静的メソッド

メソッド

説明

Equals

2つのOracleTimeStamp値が等しいかどうかを判別します(オーバーロード)

GreaterThan

2つのOracleTimeStamp値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleTimeStamp値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleTimeStamp値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleTimeStamp値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleTimeStamp値が等しくないかどうかを判別します

GetSysDate

現在の日時を表すOracleTimeStamp構造を取得します

Parse

OracleTimeStamp構造を取得し、その値を指定された文字列で設定します

SetPrecision

指定された小数秒精度を使用して、OracleTimeStampの新しいインスタンスを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Equals

この静的メソッドは、2つのOracleTimeStamp値が等しいかどうかを決定します。

宣言

// C#
public static bool Equals(OracleTimeStamp value1, OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStamp値が等しい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

GreaterThan

この静的メソッドは、2つのOracleTimeStampの最初の値が、2番目の値より大きいかどうかを決定します。

宣言

// C#
public static bool GreaterThan(OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStampの最初の値が2番目の値より大きい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

GreaterThanOrEqual

この静的メソッドは、2つのOracleTimeStampの最初の値が、2番目の値以上かどうかを決定します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStampの最初の値が2番目の値以上の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

LessThan

この静的メソッドは、2つのOracleTimeStampの最初の値が、2番目の値より小さいかどうかを決定します。

宣言

// C#
public static bool LessThan(OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStampの最初の値が2番目の値より小さい場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

LessThanOrEqual

この静的メソッドは、2つのOracleTimeStampの最初の値が、2番目の値以下かどうかを決定します。

宣言

// C#
public static bool LessThanOrEqual(OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStampの最初の値が2番目の値以下の場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

NotEquals

この静的メソッドは、2つのOracleTimeStamp値が等しくないかどうかを決定します。

宣言

// C#
public static bool NotEquals(OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStamp値が等しくない場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

GetSysDate

この静的メソッドは、現在の日付と時刻を表すOracleTimeStamp構造を取得します。

宣言

// C#
public static OracleTimeStamp GetSysDate();

戻り値

現在の日付と時刻を表すOracleTimeStamp構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Parse

この静的メソッドは、OracleTimeStamp構造を取得し、指定された文字列を使用して値を設定します。

宣言

// C#
public static OracleTimeStamp Parse(string datetime);

パラメータ

- datetime
Oracle TIMESTAMPを表す文字列

戻り値

OracleTimeStamp構造

例外

ArgumentException - tsStrがOracle TIMESTAMPの無効な文字列表現か、指定されたtsStrが、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定されたタイムスタンプの形式ではありません。このプロパティは、Oracle NLS_TIMESTAMP_FORMATパラメータを表します。

ArgumentNullException - tsStr値はNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class ParseSample
{
static void Main()
{
// Set the nls_timestamp_format for the Parse() method
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStamp from a string using the format specified.
OracleTimeStamp ts =
OracleTimeStamp.Parse("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

SetPrecision

この静的メソッドは、指定された小数秒精度でOracleTimeStampの新規インスタンスを戻します。

宣言

// C#
public static OracleTimeStamp SetPrecision(OracleTimeStamp value1,
int fracSecPrecision);

パラメータ

- value1
指定するOracleTimeStampオブジェクト

- fracSecPrecision
指定された小数秒精度。小数秒精度の範囲は(0から9)です。

戻り値

指定された小数秒精度でのOracleTimeStamp構造

例外

ArgumentOutOfRangeException - fracSecPrecisionが指定範囲を超えています。

備考

fracSecPrecisionに指定する値は、OracleTimeStamp値の丸め処理に使用されます。この値に応じて、ToString()によって戻される文字列に、後続のゼロが0個以上表示されます。

例

OracleTimeStampの値がDecember 31, 9999 23:59:59.99である場合、小数秒精度を5に設定してSetPrecision()をコールすると、文字列December 31, 9999 23:59:59.99000が戻されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp静的演算子

OracleTimeStamp静的演算子を、表14-96にリストします。

表14-96 OracleTimeStamp静的演算子

演算子

説明

operator+

指定されたインスタンス値を指定されたOracleTimeStampに加え、新規OracleTimeStamp構造を戻します(オーバーロード)

operator ==

2つのOracleTimeStampの値が等しいかどうかを判別します

operator >

2つのOracleTimeStamp値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleTimeStamp値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleTimeStamp値が等しくないかどうかを判別します

operator <

2つのOracleTimeStamp値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleTimeStamp値のうち、最初の値が2番目の値以下かどうかを判別します

operator -

指定されたインスタンス値を指定されたOracleTimeStampから減算し、新規OracleTimeStamp構造を戻します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator +

operator+は、OracleTimeStampに指定されたオブジェクトを加えて、新しいOracleTimeStamp構造を戻します。

オーバーロード・リスト:

- operator + (OracleTimeStamp, OracleIntervalDS)
この静的演算子は、指定されたOracleTimeStampに指定されたOracleIntervalDSを加えて、新しいOracleTimeStamp構造を戻します。

- operator + (OracleTimeStamp, OracleIntervalYM)
この静的演算子は、指定されたOracleTimeStampに指定されたOracleIntervalYMを加えて、新しいOracleTimeStamp構造を戻します。

- operator + (OracleTimeStamp, TimeSpan)
この静的演算子は、指定されたOracleTimeStampに指定されたTimeSpanを加えて、新しいOracleTimeStamp構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator + (OracleTimeStamp, OracleIntervalDS)

この静的演算子は、指定されたOracleTimeStampに指定されたOracleIntervalDSを加えて、新しいOracleTimeStamp構造を戻します。

宣言

// C#
public static operator + (OracleTimeStamp value1, OracleIntervalDS value2);

パラメータ

- value1
OracleTimeStamp

- value2
OracleIntervalDS

戻り値

OracleTimeStamp

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator + (OracleTimeStamp, OracleIntervalYM)

この静的演算子は、指定されたOracleTimeStampに指定されたOracleIntervalYMを加えて、新しいOracleTimeStamp構造を戻します。

宣言

// C#
public static operator + (OracleTimeStamp value1, OracleIntervalYM value2);

パラメータ

- value1
OracleTimeStamp

- value2
OracleIntervalYM

戻り値

OracleTimeStamp

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator + (OracleTimeStamp, TimeSpan)

この静的演算子は、指定されたOracleTimeStampに指定されたTimeSpanを加えて、新しいOracleTimeStamp構造を戻します。

宣言

// C#
public static operator + (OracleTimeStamp value1, TimeSpan value2);

パラメータ

- value1
OracleTimeStamp

- value2
TimeSpan

戻り値

OracleTimeStamp

備考

OracleTimeStampインスタンスにNULL値がある場合、戻されたOracleTimeStampにもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator ==

この静的演算子は、2つのOracleTimeStamp値が等しいかどうかを決定します。

宣言

// C#
public static bool operator == (OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

これらの値が等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator >

この静的演算子は、2つのOracleTimeStampの最初の値が、2番目の値より大きいかどうかを決定します。

宣言

// C#
public static bool operator > (OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

最初のOracleTimeStamp値が2番目の値より大きい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator >=

この静的演算子は、2つのOracleTimeStampの最初の値が、2番目の値以上かどうかを決定します。

宣言

// C#
public static bool operator >= (OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

最初のOracleTimeStampが2番目の値以上の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator !=

この静的演算子は、2つのOracleTimeStamp値が等しくないかどうかを決定します。

宣言

// C#
public static bool operator != (OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

2つのOracleTimeStamp値が等しくない場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator <

この静的演算子は、2つのOracleTimeStampの最初の値が、2番目の値より小さいかどうかを決定します。

宣言

// C#
public static bool operator < (OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

最初のOracleTimeStampが2番目の値より小さい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator <=

この静的演算子は、2つのOracleTimeStampの最初の値が、2番目の値以下かどうかを決定します。

宣言

// C#
public static bool operator <= (OracleTimeStamp value1,
OracleTimeStamp value2);

パラメータ

- value1
最初のOracleTimeStamp

- value2
2番目のOracleTimeStamp

戻り値

最初のOracleTimeStampが2番目の値以下の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator -

operator-は、指定されたOracleTimeStampから指定された値を引いて、新しいOracleTimeStamp構造を戻します。

オーバーロード・リスト:

- operator - (OracleTimeStamp, OracleIntervalDS)
この静的演算子は、指定されたOracleTimeStampから指定されたOracleIntervalDS値を引いて、新しいOracleTimeStamp構造を戻します。

- operator - (OracleTimeStamp, OracleIntervalYM)
この静的演算子は、指定されたOracleTimeStampから指定されたOracleIntervalYM値を引いて、新しいOracleTimeStamp構造を戻します。

- operator - (OracleTimeStamp, TimeSpan)
この静的演算子は、指定されたOracleTimeStampから指定されたTimeSpan値を引いて、新しいOracleTimeStamp構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator - (OracleTimeStamp, OracleIntervalDS)

この静的演算子は、指定されたOracleTimeStampから指定されたOracleIntervalDS値を引いて、新しいOracleTimeStamp構造を戻します。

宣言

// C#
public static operator - (OracleTimeStamp value1, OracleIntervalDS value2);

パラメータ

- value1
OracleTimeStamp

- value2
OracleIntervalDSインスタンス

戻り値

OracleTimeStamp構造

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator - (OracleTimeStamp, OracleIntervalYM)

この静的演算子は、指定されたOracleTimeStampから指定されたOracleIntervalYM値を引いて、新しいOracleTimeStamp構造を戻します。

宣言

// C#
public static operator - (OracleTimeStamp value1, OracleIntervalYM value2);

パラメータ

- value1
OracleTimeStamp

- value2
OracleIntervalYMインスタンス

戻り値

OracleTimeStamp構造

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

operator - (OracleTimeStamp, TimeSpan)

この静的演算子は、指定されたOracleTimeStampから指定されたTimeSpan値を引いて、新しいOracleTimeStamp構造を戻します。

宣言

// C#
public static operator - (OracleTimeStamp value1, TimeSpan value2);

パラメータ

- value1
OracleTimeStamp

- value2
TimeSpanインスタンス

戻り値

OracleTimeStamp構造

備考

OracleTimeStampインスタンスにNULL値がある場合、戻されたOracleTimeStamp構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStamp静的型変換

OracleTimeStamp静的型変換を、表14-97にリストします。

表14-97 OracleTimeStamp静的型変換

演算子

説明

explicit operator OracleTimeStamp

インスタンス値をOracleTimeStamp構造に変換します(オーバーロード)

implicit operator OracleTimeStamp

インスタンス値をOracleTimeStamp構造に変換します(オーバーロード)

explicit operator DateTime

OracleTimeStamp値をDateTime構造に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

explicit operator OracleTimeStamp

explicit operator OracleTimeStampは、指定された値をOracleTimeStamp構造に変換します。

オーバーロード・リスト:

- explicit operator OracleTimeStamp(OracleTimeStampLTZ)
この静的な型変換演算子は、OracleTimeStampLTZ値をOracleTimeStamp構造に変換します。

- explicit operator OracleTimeStamp(OracleTimeStampTZ)
この静的な型変換演算子は、OracleTimeStampTZ値をOracleTimeStamp構造に変換します。

- explicit operator OracleTimeStamp(string)
この静的な型変換演算子は、指定された文字列をOracleTimeStamp構造に変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

explicit operator OracleTimeStamp(OracleTimeStampLTZ)

この静的な型変換演算子は、OracleTimeStampLTZ値をOracleTimeStamp構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStamp(OracleTimeStampLTZ value1);

パラメータ

- value1
OracleTimeStampLTZインスタンス

戻り値

戻されたOracleTimeStampには、OracleTimeStampLTZ構造の日付と時刻が含まれます。

備考

OracleTimeStampLTZ構造にNULL値がある場合、戻されたOracleTimeStamp構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

explicit operator OracleTimeStamp(OracleTimeStampTZ)

この静的な型変換演算子は、OracleTimeStampTZ値をOracleTimeStamp構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStamp(OracleTimeStampTZ value1);

パラメータ

- value1
OracleTimeStampTZインスタンス

戻り値

戻されたOracleTimeStampには、value1からの日付および時刻の情報が含まれますが、value1からのタイムゾーン情報は切り捨てられます。

備考

OracleTimeStampTZ構造にNULL値がある場合、戻されたOracleTimeStamp構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

explicit operator OracleTimeStamp(string)

この静的な型変換演算子は、指定された文字列をOracleTimeStamp構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStamp(string tsStr);

パラメータ

- tsStr
Oracle TIMESTAMPの文字列表現

戻り値

OracleTimeStamp

例外

ArgumentException - tsStrがOracle TIMESTAMPの無効な文字列表現か、tsStrが、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定されたタイムスタンプの形式ではありません。このプロパティは、Oracle NLS_TIMESTAMP_FORMATパラメータを表します。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class OracleTimeStampSample
{
static void Main()
{
// Set the nls_timestamp_format for the explicit
// operator OracleTimeStamp(string)
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStamp from a string using the format specified.
OracleTimeStamp ts = new OracleTimeStamp("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

- 日時書式要素の詳細は、Oracle Database SQLリファレンスを参照

implicit operator OracleTimeStamp

この静的な型変換演算子は、値をOracleTimeStamp構造に変換します。

オーバーロード・リスト:

- implicit operator OracleTimeStamp(OracleDate)
この静的な型変換演算子は、OracleDate値をOracleTimeStamp構造に変換します。

- implicit operator OracleTimeStamp(DateTime)
この静的な型変換演算子は、DateTime値をOracleTimeStamp構造に変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

implicit operator OracleTimeStamp(OracleDate)

この静的な型変換演算子は、OracleDate値をOracleTimeStamp構造に変換します。

宣言

// C#
public static implicit operator OracleTimeStamp (OracleDate value1);

パラメータ

- value1
OracleDateインスタンス

戻り値

OracleDate構造、value1の日付と時刻を含むOracleTimeStamp構造

備考

OracleDate構造にNULL値がある場合、戻されたOracleTimeStamp構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

implicit operator OracleTimeStamp(DateTime)

この静的な型変換演算子は、DateTime値をOracleTimeStamp構造に変換します。

宣言

// C#
public static implicit operator OracleTimeStamp(DateTime value);

パラメータ

- value
DateTimeインスタンス

戻り値

OracleTimeStamp構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

explicit operator DateTime

この静的な型変換演算子は、OracleTimeStamp値をDateTime構造に変換します。

宣言

// C#
public static explicit operator DateTime(OracleTimeStamp value1);

パラメータ

- value1
OracleTimeStampインスタンス

戻り値

現行インスタンスの日付と時刻を含むDateTime

例外

OracleNullValueException - OracleTimeStamp構造にNULL値があります。

備考

OracleTimeStampの精度は、変換時に失われる可能性があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStampプロパティ

OracleTimeStampプロパティを、表14-98にリストします。

表14-98 OracleTimeStampプロパティ

プロパティ

説明

BinData

Oracleの内部書式でOracle TIMESTAMPを表すバイトの配列を戻します

Day

OracleTimeStampの日コンポーネントを指定します

IsNull

OracleTimeStampインスタンスにNULL値があるかどうかを示します

Hour

OracleTimeStampの時間コンポーネントを指定します

Millisecond

OracleTimeStampのミリ秒コンポーネントを指定します

Minute

OracleTimeStampの分コンポーネントを指定します

Month

OracleTimeStampの月コンポーネントを指定します

Nanosecond

OracleTimeStampのナノ秒コンポーネントを指定します

Second

OracleTimeStampの秒コンポーネントを指定します

Value

OracleTimeStamp構造に格納された日時を指定します

Year

OracleTimeStampの年コンポーネントを指定します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

BinData

このプロパティは、Oracle内部形式でOracle TIMESTAMPを表すバイトの配列を戻します。

宣言

// C#
public byte[] BinData {get;}

プロパティ値

内部形式でOracle TIMESTAMPを表すバイト配列

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Day

このプロパティは、OracleTimeStampの日コンポーネントを指定します。

宣言

// C#
public int Day{get;}

プロパティ値

日を表す数値。Dayの範囲は(1から31)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Hour

このプロパティは、OracleTimeStampの時間コンポーネントを指定します。

宣言

// C#
public int Hour{get;}

プロパティ値

時間を表す数値。hourの範囲は(0から23)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Millisecond

このプロパティは、OracleTimeStampのミリ秒コンポーネントを取得します。

宣言

// C#
public double Millisecond{get;}

プロパティ値

ミリ秒を表す数値。Millisecondの範囲は(0から999.999999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Minute

このプロパティは、OracleTimeStampの分コンポーネントを取得します。

宣言

// C#
public int Minute{get;}

プロパティ値

分を表す数値。Minuteの範囲は(0から59)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Month

このプロパティは、OracleTimeStampの月コンポーネントを取得します。

宣言

// C#
public int Month{get;}

プロパティ値

月を表す数値。Monthの範囲は(1から12)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Nanosecond

このプロパティは、OracleTimeStampのナノ秒コンポーネントを取得します。

宣言

// C#
public int Nanosecond{get;}

プロパティ値

ナノ秒を表す数値。Nanosecondの範囲は(0から999999999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Second

このプロパティは、OracleTimeStampの秒コンポーネントを取得します。

宣言

// C#
public int Second{get;}

プロパティ値

秒を表す数値。Secondの範囲は(0から59)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Value

このプロパティは、OracleTimeStamp構造に格納された日付と時刻を指定します。

宣言

// C#
public DateTime Value{get;}

プロパティ値

DateTime

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Year

このプロパティは、OracleTimeStampの年コンポーネントを取得します。

宣言

// C#
public int Year{get;}

プロパティ値

年を表す数値。Yearの範囲は(-4712から9999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

OracleTimeStampメソッド

OracleTimeStampメソッドを、表14-99にリストします。

表14-99 OracleTimeStampメソッド

メソッド

説明

AddDays

指定された日数を現行インスタンスに追加します

AddHours

指定された時間数を現行インスタンスに追加します

AddMilliseconds

指定されたミリ秒数を現行インスタンスに追加します

AddMinutes

指定された分数を現行インスタンスに追加します

AddMonths

指定された月数を現行インスタンスに追加します

AddNanoseconds

指定されたナノ秒数を現行インスタンスに追加します

AddSeconds

指定された秒数を現行インスタンスに追加します

AddYears

指定された年数を現行インスタンスに追加します

CompareTo

現行のOracleTimeStampインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleTimeStampインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetHashCode

OracleTimeStampインスタンスのハッシュ・コードを戻します

GetDaysBetween

現行インスタンスからOracleTimeStamp値を減算して、指定されたOracleTimeStampと現行インスタンス間の時差を表すOracleIntervalDSを戻します

GetYearsBetween

現行インスタンスからvalue1を減算して、OracleIntervalYMを使用してvalue1と現行インスタンス間の差を表すOracleIntervalYMを戻します

GetType

System.Objectからの継承

ToOracleDate

現行のOracleTimeStamp構造をOracleDate構造に変換します

ToOracleTimeStampLTZ

現行のOracleTimeStamp構造をOracleTimeStampLTZ構造に変換します

ToOracleTimeStampTZ

現行のOracleTimeStamp構造をOracleTimeStampTZ構造に変換します

ToString

現行のOracleTimeStamp構造を文字列に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddDays

このメソッドは、現行インスタンスに指定された日数を加えます。

宣言

// C#
public OracleTimeStamp AddDays(double days);

パラメータ

- days
指定された日数。範囲は(-1,000,000,000 < days < 1,000,000,000)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddHours

このメソッドは、現行インスタンスに指定された時間数を加えます。

宣言

// C#
public OracleTimeStamp AddHours(double hours);

パラメータ

- hours
指定された時間数。範囲は(-24,000,000,000 < hours < 24,000,000,000)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddMilliseconds

このメソッドは、現行インスタンスに指定されたミリ秒数を加えます。

宣言

// C#
public OracleTimeStamp AddMilliseconds(double milliseconds);

パラメータ

- milliseconds
指定されたミリ秒数。範囲は(-8.64 * 1016< milliseconds < 8.64 * 1016)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddMinutes

このメソッドは、現行インスタンスに指定された分数を加えます。

宣言

// C#
public OracleTimeStamp AddMinutes(double minutes);

パラメータ

- minutes
指定された分数。範囲は(-1,440,000,000,000 < minutes < 1,440,000,000,000)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddMonths

このメソッドは、現行インスタンスに指定された月数を加えます。

宣言

// C#
public OracleTimeStamp AddMonths(long months);

パラメータ

- months
指定された月数。範囲は(-12,000,000,000 < months < 12,000,000,000)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddNanoseconds

このメソッドは、現行インスタンスに指定されたナノ秒数を加えます。

宣言

// C#
public OracleTimeStamp AddNanoseconds(long nanoseconds);

パラメータ

- nanoseconds
指定されたナノ秒数

戻り値

OracleTimeStamp

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddSeconds

このメソッドは、現行インスタンスに指定された秒数を加えます。

宣言

// C#
public OracleTimeStamp AddSeconds(double seconds);

パラメータ

- seconds
指定された秒数。範囲は(-8.64 * 1013< seconds < 8.64 * 1013)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

AddYears

このメソッドは、現行インスタンスに指定された年数を加えます。

宣言

// C#
public OracleTimeStamp AddYears(int years);

パラメータ

- years
指定された年数。範囲は(-999,999,999 <= years < = 999,999,999)です。

戻り値

OracleTimeStamp

例外

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

CompareTo

このメソッドは、現行のOracleTimeStampインスタンスとオブジェクトを比較して、その相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
現行のOracleTimeStampインスタンスと比較されるオブジェクト

戻り値

メソッドが戻す数値は次のとおりです。

ゼロ未満:現行のOracleTimeStampインスタンス値がobj値より小さい場合

ゼロ:現行のOracleTimeStampインスタンス値がobj値と等しい場合

ゼロ超過:現行のOracleTimeStampインスタンス値がobj値より大きい場合

実装

IComparable

例外

ArgumentException - objパラメータがOracleTimeStamp型ではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleTimeStamp間で行う必要があります。たとえば、OracleTimeStampインスタンスとOracleBinaryインスタンスを比較することはできません。OracleTimeStampを別の型と比較すると、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

Equals

Objectをオーバーライドします。

このメソッドは、オブジェクトが現行のOracleTimeStampインスタンスと同じ日付および時刻を持っているかどうかを決定します。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
現行のOracleTimeStampインスタンスと比較されるオブジェクト

戻り値

objがOracleTimeStamp型で、同じ日付および時刻を表す場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampは、NULL値を持つOracleTimeStampより大きくなります。

- NULL値を含む2つのOracleTimeStampは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドは、OracleTimeStampインスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表す数値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

GetDaysBetween

このメソッドは、現行インスタンスからOracleTimeStamp値を引いて、指定されたOracleTimeStamp構造と現行インスタンス間の時差を表すOracleIntervalDSを戻します。

宣言

// C#
public OracleIntervalDS GetDaysBetween(OracleTimeStamp value1);

パラメータ

- value1
減算されるOracleTimeStamp値

戻り値

2つのOracleTimeStamp値の時間隔を表すOracleIntervalDS

備考

現行のインスタンスまたはパラメータのいずれかにNULL値がある場合、戻されたOracleIntervalDSにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

GetYearsBetween

このメソッドは、現行インスタンスからOracleTimeStamp値を引いて、OracleTimeStamp値と現行インスタンス間の時差を表すOracleIntervalYMを戻します。

宣言

// C#
public OracleIntervalYM GetYearsBetween(OracleTimeStamp value1);

パラメータ

- value1
減算されるOracleTimeStamp値

戻り値

2つのOracleTimeStamp値の時間隔を表すOracleIntervalYM

備考

現行のインスタンスまたはパラメータのいずれかにNULL値がある場合、戻されたOracleIntervalYMにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

ToOracleDate

このメソッドは、現行のOracleTimeStamp構造をOracleDate構造に変換します。

宣言

// C#
public OracleDate ToOracleDate();

戻り値

戻されたOracleDateには、現行インスタンスでの日付および時間が含まれています。

備考

OracleTimeStamp値の精度が変換中に失われる場合があります。

OracleTimeStampの値にNULL値がある場合、戻されたOracleDate構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

ToOracleTimeStampLTZ

このメソッドは、現行のOracleTimeStamp構造をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public OracleTimeStampLTZ ToOracleTimeStampLTZ();

戻り値

戻されたOracleTimeStampLTZには、現行インスタンスでの日付および時間が含まれています。

備考

現行インスタンスの値にNULL値がある場合、戻されたOracleTimeStampLTZ構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

ToOracleTimeStampTZ

このメソッドは、現行のOracleTimeStamp構造をOracleTimeStampTZ構造に変換します。

宣言

// C#
public OracleTimeStampTZ ToOracleTimeStampTZ();

戻り値

戻されたOracleTimeStampTZには、OracleTimeStampからの日付および時間と、スレッドのOracleGlobalization.TimeZoneからのタイムゾーンが含まれています。

備考

現行インスタンスの値にNULL値がある場合、戻されたOracleTimeStampTZ構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

ToString

Objectをオーバーライドします。

このメソッドは、現行のOracleTimeStamp構造を文字列に変換します。

宣言

// C#
public override string ToString();

戻り値

現行のOracleTimeStamp構造と同じ日付および時間を表すstring

備考

戻された値は、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定された書式を使用して、OracleTimeStampを文字列で表したものです。

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class ToStringSample
{
static void Main()
{
// Set the nls_timestamp_format for the OracleTimeStamp(string)
// constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStamp from a string using the format specified.
OracleTimeStamp ts = new OracleTimeStamp("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStamp構造

- OracleTimeStampメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

OracleTimeStampLTZ構造

OracleTimeStampLTZ構造は、データベースに格納されるか、またはデータベースから取得されるOracle TIMESTAMP WITH LOCAL TIME ZONEデータ型を表します。各OracleTimeStampLTZには、年、月、日、時、分、秒およびナノ秒の情報が格納されます。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleTimeStampLTZ

宣言

// ADO.NET 2.0: C#
public struct OracleTimeStampLTZ : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class OracleTimeStampLTZSample
{
static void Main()
{
// Illustrates usage of OracleTimeStampLTZ
// Display Local Time Zone Name
Console.WriteLine("Local Time Zone Name = " +
OracleTimeStampLTZ.GetLocalTimeZoneName());
OracleTimeStampLTZ tsLocal1 = OracleTimeStampLTZ.GetSysDate();
OracleTimeStampLTZ tsLocal2 = DateTime.Now;

// Calculate the difference between tsLocal1 and tsLocal2
OracleIntervalDS idsDiff = tsLocal2.GetDaysBetween(tsLocal1);

// Calculate the difference using AddNanoseconds()
int nanoDiff = 0;
while (tsLocal2 > tsLocal1)
{
nanoDiff += 10;
tsLocal1 = tsLocal1.AddNanoseconds(10);
}
Console.WriteLine("idsDiff.Nanoseconds = " + idsDiff.Nanoseconds);
Console.WriteLine("nanoDiff = " + nanoDiff);
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZメンバー

- OracleTimeStampLTZコンストラクタ

- OracleTimeStampLTZ静的フィールド

- OracleTimeStampLTZ静的メソッド

- OracleTimeStampLTZ静的演算子

- OracleTimeStampLTZ静的型変換

- OracleTimeStampLTZプロパティ

- OracleTimeStampLTZメソッド

OracleTimeStampLTZメンバー

次の表に、OracleTimeStampLTZメンバーを示します。

OracleTimeStampLTZコンストラクタ

OracleTimeStampLTZコンストラクタを、表14-100にリストします。

表14-100 OracleTimeStampLTZConstructors

コンストラクタ

説明

OracleTimeStampLTZコンストラクタ

OracleTimeStampLTZ構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleTimeStampLTZ静的フィールド

OracleTimeStampLTZ静的フィールドを、表14-101にリストします。

表14-101 OracleTimeStampLTZ静的フィールド

フィールド

説明

MaxValue

OracleTimeStampLTZ構造の最大有効日付、9999年12月31日23時59分59.999999999秒を表します

MinValue

OracleTimeStampLTZ構造の最小有効日付、-4712年1月1日0時0分0秒を表します

Null

OracleTimeStampLTZ構造のインスタンスに割り当てられるNULL値を表します

OracleTimeStampLTZ静的メソッド

OracleTimeStampLTZ静的メソッドを、表14-102にリストします。

表14-102 OracleTimeStampLTZ静的メソッド

メソッド

説明

Equals

2つのOracleTimeStampLTZ値が同じかどうかを判別します(オーバーロード)

GetLocalTimeZoneName

クライアントのローカル・タイムゾーン名を取得します

GetLocalTimeZoneOffset

UTCに対するクライアントのローカル・タイムゾーン・オフセットを取得します

GetSysDate

現在の日時を表すOracleTimeStampLTZ構造を取得します

GreaterThan

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleTimeStampLTZ値が等しくないかどうかを判別します

Parse

OracleTimeStampLTZ構造を取得し、指定された文字列を使用して日時の値を設定します

SetPrecision

指定された小数秒精度を使用して、OracleTimeStampLTZの新しいインスタンスを戻します

OracleTimeStampLTZ静的演算子

OracleTimeStampLTZ静的演算子を、表14-103にリストします。

表14-103 OracleTimeStampLTZ静的演算子

演算子

説明

operator+

指定されたインスタンス値を指定されたOracleTimeStampLTZに加え、新規OracleTimeStampLTZ構造を戻します(オーバーロード)

operator ==

2つのOracleTimeStampLTZの値が等しいかどうかを判別します

operator >

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleTimeStampLTZ値が等しくないかどうかを判別します

operator <

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以下かどうかを判別します

operator -

指定されたインスタンス値を指定されたOracleTimeStampLTZから減算し、新規OracleTimeStampLTZ構造を戻します(オーバーロード)

OracleTimeStampLTZ静的型変換

OracleTimeStampLTZ静的型変換を、表14-104にリストします。

表14-104 OracleTimeStampLTZ静的型変換

演算子

説明

explicit operator OracleTimeStampLTZ

インスタンス値をOracleTimeStampLTZ構造に変換します(オーバーロード)

implicit operator OracleTimeStampLTZ

インスタンス値をOracleTimeStampLTZ構造に変換します(オーバーロード)

explicit operator DateTime

OracleTimeStampLTZ値をDateTime構造に変換します

OracleTimeStampLTZプロパティ

OracleTimeStampLTZプロパティを、表14-105にリストします。

表14-105 OracleTimeStampLTZプロパティ

プロパティ

説明

BinData

Oracle TIMESTAMP WITH LOCAL TIME ZONEをOracleの内部書式で表すバイトの配列を戻します

Day

OracleTimeStampLTZのdayコンポーネントを指定します

IsNull

OracleTimeStampLTZインスタンスにNULL値があるかどうかを示します

Hour

OracleTimeStampLTZの時間コンポーネントを指定します

Millisecond

OracleTimeStampLTZのミリ秒コンポーネントを指定します

Minute

OracleTimeStampLTZの分コンポーネントを指定します

Month

OracleTimeStampLTZの月コンポーネントを指定します

Nanosecond

OracleTimeStampLTZのナノ秒コンポーネントを指定します

Second

OracleTimeStampLTZの秒コンポーネントを指定します

Value

OracleTimeStampLTZ構造に格納された日時を指定します

Year

OracleTimeStampLTZの年コンポーネントを指定します

OracleTimeStampLTZメソッド

OracleTimeStampLTZメソッドを、表14-106にリストします。

表14-106 OracleTimeStampLTZメソッド

メソッド

説明

AddDays

指定された日数を現行インスタンスに追加します

AddHours

指定された時間数を現行インスタンスに追加します

AddMilliseconds

指定されたミリ秒数を現行インスタンスに追加します

AddMinutes

指定された分数を現行インスタンスに追加します

AddMonths

指定された月数を現行インスタンスに追加します

AddNanoseconds

指定されたナノ秒数を現行インスタンスに追加します

AddSeconds

指定された秒数を現行インスタンスに追加します

AddYears

指定された年数を現行インスタンスに追加します

CompareTo

現行のOracleTimeStampLTZインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleTimeStampLTZインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetHashCode

OracleTimeStampLTZインスタンスのハッシュ・コードを戻します

GetDaysBetween

現行インスタンスからOracleTimeStampLTZを減算し、その差を表すOracleIntervalDSを戻します

GetYearsBetween

現行インスタンスからOracleTimeStampLTZを減算し、その差を表すOracleIntervalYMを戻します

GetType

System.Objectからの継承

ToOracleDate

現行のOracleTimeStampLTZ構造をOracleDate構造に変換します

ToOracleTimeStamp

現行のOracleTimeStampLTZ構造をOracleTimeStamp構造に変換します

ToOracleTimeStampTZ

現行のOracleTimeStampLTZ構造をOracleTimeStampTZ構造に変換します

ToString

現行のOracleTimeStampLTZ構造を文字列に変換します

ToUniversalTime

現在のローカル時刻を協定世界時(UTC)に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

OracleTimeStampLTZコンストラクタ

OracleTimeStampLTZコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成します。

オーバーロード・リスト:

- OracleTimeStampLTZ(DateTime)
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、指定されたDateTime値を使用して日付および時刻の値を設定します。

- OracleTimeStampLTZ(string)
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、指定された文字列を使用して日付および時刻の値を設定します。

- OracleTimeStampLTZ(int, int, int)
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月および日を使用して日付の値を設定します。

- OracleTimeStampLTZ(int, int, int, int, int, int)
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月、日、時間、分および秒を使用して、日付と時刻の値を設定します。

- OracleTimeStampLTZ(int, int, int, int, int, int, double)
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して、日付と時刻の値を設定します。

- OracleTimeStampLTZ(int, int, int, int, int, int, int)
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して、日付と時刻の値を設定します。

- OracleTimeStampLTZ(byte [ ])
このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、指定されたバイト配列に値を設定します。バイト配列は、Oracle TIMESTAMP WITH LOCAL TIME ZONE内部形式です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ(DateTime)

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、指定されたDateTime値を使用して日付および時刻の値を設定します。

宣言

// C#
public OracleTimeStampLTZ (DateTime dt);

パラメータ

- dt
指定されたDateTime値

例外

ArgumentException - dtパラメータを使用して、有効なOracleTimeStampLTZを作成することはできません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ(string)

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、指定された文字列を使用して日付および時刻の値を設定します。

宣言

// C#
public OracleTimeStampLTZ(string tsStr);

パラメータ

- tsStr
Oracle TIMESTAMP WITH LOCAL TIME ZONEを表す文字列

例外

ArgumentException - tsStrがOracle TIMESTAMP WITH LOCAL TIME ZONEの無効な文字列表現か、指定されたtsStrが、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定されたタイムスタンプの形式ではありません。このプロパティは、Oracle NLS_TIMESTAMP_FORMATパラメータを表します。

ArgumentNullException - tsStr値はNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleTimeStampLTZSample
{
static void Main()
{
// Set the nls_timestamp_format for the OracleTimeStampLTZ(string)
// constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampLTZ from a string using the format
// specified.
OracleTimeStampLTZ ts =
new OracleTimeStampLTZ("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

- 日付書式要素の詳細は、Oracle Database SQLリファレンスを参照

OracleTimeStampLTZ(int, int, int)

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月および日を使用して日付の値を設定します。

宣言

// C#
public OracleTimeStampLTZ(int year, int month, int day);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampLTZを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ(int, int, int, int, int, int)

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月、日、時間、分および秒を使用して、日付と時刻の値を設定します。

宣言

// C#
public OracleTimeStampLTZ (int year, int month, int day, int hour,
int minute, int second);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampLTZを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ(int, int, int, int, int, int, double)

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して、日付と時刻の値を設定します。

宣言

// C#
public OracleTimeStampLTZ(int year, int month, int day, int hour, int minute, int second, double millisecond);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- milliSeconds
指定されたミリ秒。millisecondの範囲は(0から999.999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampLTZを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ(int, int, int, int, int, int, int)

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して、日付と時刻の値を設定します。

宣言

// C#
public OracleTimeStampLTZ (int year, int month, int day, int hour,
int minute, int second, int nanosecond);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- ナノ秒
指定されたナノ秒。nanosecondの範囲は(0から999999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - パラメータの引数値を使用して、有効なOracleTimeStampLTZを作成することはできません(つまり、日が月の範囲を超えています)。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ(byte [ ])

このコンストラクタは、OracleTimeStampLTZ構造の新しいインスタンスを作成し、指定されたバイト配列に値を設定します。バイト配列は、Oracle TIMESTAMP WITH LOCAL TIME ZONE内部形式です。

宣言

// C#
public OracleTimeStampLTZ (byte[] bytes);

パラメータ

- bytes
Oracle内部形式でOracle TIMESTAMP WITH LOCAL TIME ZONEを表すバイト配列

例外

ArgumentException - bytesがOracle TIMESTAMP WITH LOCAL TIME ZONE内部形式ではないか、bytesが有効なOracle TIMESTAMP WITH LOCAL TIME ZONEではありません。

ArgumentNullException - bytesがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ静的フィールド

OracleTimeStampLTZ静的フィールドを、表14-107にリストします。

表14-107 OracleTimeStampLTZ静的フィールド

フィールド

説明

MaxValue

OracleTimeStampLTZ構造の最大有効日付、9999年12月31日23時59分59.999999999秒を表します

MinValue

OracleTimeStampLTZ構造の最小有効日付、-4712年1月1日0時0分0秒を表します

Null

OracleTimeStampLTZ構造のインスタンスに割り当てられるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

MaxValue

この静的フィールドは、OracleTimeStampLTZ構造の最大有効日付、9999年12月31日23時59分59.999999999秒を表します。

宣言

// C#
public static readonly OracleTimeStampLTZ MaxValue;

備考

この値は、クライアント・タイムゾーンの日付と時刻の最大値です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

MinValue

この静的フィールドは、OracleTimeStampLTZ構造の最小有効日付、-4712年1月1日0時0分0秒を表します。

宣言

// C#
public static readonly OracleTimeStampLTZ MinValue;

備考

この値は、クライアント・タイムゾーンの日付と時刻の最小値です。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Null

この静的フィールドは、OracleTimeStampLTZ構造のインスタンスに割り当てられるNULL値を表します。

宣言

// C#
public static readonly OracleTimeStampLTZ Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ静的メソッド

OracleTimeStampLTZ静的メソッドを、表14-108にリストします。

表14-108 OracleTimeStampLTZ静的メソッド

メソッド

説明

Equals

2つのOracleTimeStampLTZ値が同じかどうかを判別します(オーバーロード)

GetLocalTimeZoneName

クライアントのローカル・タイムゾーン名を取得します

GetLocalTimeZoneOffset

UTCに対するクライアントのローカル・タイムゾーン・オフセットを取得します

GetSysDate

現在の日時を表すOracleTimeStampLTZ構造を取得します

GreaterThan

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleTimeStampLTZ値が等しくないかどうかを判別します

Parse

OracleTimeStampLTZ構造を取得し、指定された文字列を使用して日時の値を設定します

SetPrecision

指定された小数秒精度を使用して、OracleTimeStampLTZの新しいインスタンスを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Equals

この静的メソッドは、2つのOracleTimeStampLTZ値が等しいかどうかを決定します。

宣言

// C#
public static bool Equals(OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZ値が等しい場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GetLocalTimeZoneName

この静的メソッドは、クライアントのローカル・タイムゾーン名を取得します。

宣言

// C#
public static string GetLocalTimeZoneName();

戻り値

ローカル・タイムゾーンを含む文字列

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GetLocalTimeZoneOffset

この静的メソッドは、協定世界時(UTC)に対するクライアントのローカル・タイムゾーン・オフセットを取得します。

宣言

// C#
public static TimeSpan GetLocalTimeZoneOffset( );

戻り値

ローカル・タイムゾーン時とタイムゾーン分を含むTimeSpan構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GetSysDate

この静的メソッドは、現在の日付と時刻を表すOracleTimeStampLTZ構造を取得します。

宣言

// C#
public static OracleTimeStampLTZ GetSysDate();

戻り値

現在の日付と時刻を表すOracleTimeStampLTZ構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GreaterThan

この静的メソッドは、2つのOracleTimeStampLTZの最初の値が、2番目の値より大きいかどうかを決定します。

宣言

// C#
public static bool GreaterThan(OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZの最初の値が2番目の値より大きい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GreaterThanOrEqual

この静的メソッドは、2つのOracleTimeStampLTZの最初の値が、2番目の値以上かどうかを決定します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZの最初の値が2番目の値以上の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

LessThan

この静的メソッドは、2つのOracleTimeStampLTZの最初の値が、2番目の値より小さいかどうかを決定します。

宣言

// C#
public static bool LessThan(OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZの最初の値が2番目の値より小さい場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

LessThanOrEqual

この静的メソッドは、2つのOracleTimeStampLTZの最初の値が、2番目の値以下かどうかを決定します。

宣言

// C#
public static bool LessThanOrEqual(OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZの最初の値が2番目の値以下の場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

NotEquals

この静的メソッドは、2つのOracleTimeStampLTZ値が等しくないかどうかを決定します。

宣言

// C#
public static bool NotEquals(OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZ値が等しくない場合は、trueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Parse

この静的メソッドは、OracleTimeStampLTZ構造を作成し、指定された文字列を使用して値を設定します。

宣言

// C#
public static OracleTimeStampLTZ Parse(string tsStr);

パラメータ

- tsStr
Oracle TIMESTAMP WITH LOCAL TIME ZONEを表す文字列

戻り値

OracleTimeStampLTZ構造

例外

ArgumentException - tsStrパラメータがOracle TIMESTAMP WITH LOCAL TIME ZONEの無効な文字列表現か、tsStrが、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定されたタイムスタンプの形式ではありません。このプロパティは、Oracle NLS_TIMESTAMP_FORMATパラメータを表します。

ArgumentNullException - tsStr値はNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class ParseSample
{
static void Main()
{
// Set the nls_timestamp_format for the Parse() method
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampLTZ from a string using the format specified.
OracleTimeStampLTZ ts =
OracleTimeStampLTZ.Parse("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

SetPrecision

この静的メソッドは、指定された小数秒精度を使用して、OracleTimeStampLTZの新しいインスタンスを戻します。

宣言

// C#
public static OracleTimeStampLTZ SetPrecision(OracleTimeStampLTZ value1,
int fracSecPrecision);

パラメータ

- value1
指定されたOracleTimeStampLTZオブジェクト

- fracSecPrecision
指定された小数秒精度。小数秒精度の範囲は(0から9)です。

戻り値

指定された小数秒精度を持つOracleTimeStampLTZ構造

例外

ArgumentOutOfRangeException - fracSecPrecisionが指定範囲を超えています。

備考

指定されたfracSecPrecisionパラメータで指定された値は、指定されたOracleTimeStampLTZ値で端数処理を実行するために使用されます。この値に応じて、ToString()によって戻される文字列に、後続のゼロが0個以上表示されます。

例

小数秒精度を5に設定してSetPrecision()を呼び出した場合、値が"December 31, 9999 23:59:59.99"のOracleTimeStampLTZは、文字列"December 31, 9999 23:59:59.99000"になります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ静的演算子

OracleTimeStampLTZ静的演算子を、表14-109にリストします。

表14-109 OracleTimeStampLTZ静的演算子

演算子

説明

operator+

指定されたインスタンス値を指定されたOracleTimeStampLTZに加え、新規OracleTimeStampLTZ構造を戻します(オーバーロード)

operator ==

2つのOracleTimeStampLTZの値が等しいかどうかを判別します

operator >

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleTimeStampLTZ値が等しくないかどうかを判別します

operator <

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleTimeStampLTZ値のうち、最初の値が2番目の値以下かどうかを判別します

operator -

指定されたインスタンス値を指定されたOracleTimeStampLTZから減算し、新規OracleTimeStampLTZ構造を戻します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator+

operator+は、指定されたOracleTimeStampLTZに指定された値を加えて、新しいOracleTimeStampLTZ構造を戻します。

オーバーロード・リスト:

- operator + (OracleTimeStampLTZ, OracleIntervalDS)
この静的演算子は、指定されたOracleTimeStampLTZに指定されたOracleIntervalDSを加えて、新しいOracleTimeStampLTZ構造を戻します。

- operator + (OracleTimeStampLTZ, OracleIntervalYM)
この静的演算子は、指定されたOracleTimeStampLTZに指定されたOracleIntervalYMを加えて、新しいOracleTimeStampLTZ構造を戻します。

- operator + (OracleTimeStampLTZ, TimeSpan)
この静的演算子は、指定されたOracleTimeStampLTZに指定されたTimeSpanを加えて、新しいOracleTimeStampLTZ構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator + (OracleTimeStampLTZ, OracleIntervalDS)

この静的演算子は、指定されたOracleTimeStampLTZに指定されたOracleIntervalDSを加えて、新しいOracleTimeStampLTZ構造を戻します。

宣言

// C#
public static operator +(OracleTimeStampLTZ value1,
OracleIntervalDS value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
OracleIntervalDS

戻り値

OracleTimeStampLTZ

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampLTZにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator + (OracleTimeStampLTZ, OracleIntervalYM)

この静的演算子は、指定されたOracleTimeStampLTZに指定されたOracleIntervalYMを加えて、新しいOracleTimeStampLTZ構造を戻します。

宣言

// C#
public static operator +(OracleTimeStampLTZ value1,
OracleIntervalYM value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
OracleIntervalYM

戻り値

OracleTimeStampLTZ

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampLTZにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator + (OracleTimeStampLTZ, TimeSpan)

この静的演算子は、指定されたOracleTimeStampLTZに指定されたTimeSpanを加えて、新しいOracleTimeStampLTZ構造を戻します。

宣言

// C#
public static operator +(OracleTimeStampLTZ value1, TimeSpan value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
TimeSpan

戻り値

OracleTimeStampLTZ

備考

OracleTimeStampLTZインスタンスにNULL値がある場合、戻されたOracleTimeStampLTZにもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator ==

この静的演算子は、2つのOracleTimeStampLTZ値が等しいかどうかを決定します。

宣言

// C#
public static bool operator == (OracleTimeStampLTZ value1,
OracleTimeStampLTZ  value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

これらの値が等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator >

この静的演算子は、2つのOracleTimeStampLTZの最初の値が、2番目の値より大きいかどうかを決定します。

宣言

// C#
public static bool operator > (OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

最初のOracleTimeStampLTZ値が2番目の値より大きい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator >=

この静的演算子は、2つのOracleTimeStampLTZの最初の値が、2番目の値以上かどうかを決定します。

宣言

// C#
public static bool operator >= (OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

最初のOracleTimeStampLTZが2番目の値以上の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator !=

この静的演算子は、2つのOracleTimeStampLTZ値が等しくないかどうかを決定します。

宣言

// C#
public static bool operator != (OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

2つのOracleTimeStampLTZ値が等しくない場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator <

この静的演算子は、2つのOracleTimeStampLTZの最初の値が、2番目の値より小さいかどうかを決定します。

宣言

// C#
public static bool operator < (OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

最初のOracleTimeStampLTZが2番目の値より小さい場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator <=

この静的演算子は、2つのOracleTimeStampLTZの最初の値が、2番目の値以下かどうかを決定します。

宣言

// C#
public static bool operator <= (OracleTimeStampLTZ value1,
OracleTimeStampLTZ value2);

パラメータ

- value1
最初のOracleTimeStampLTZ

- value2
2番目のOracleTimeStampLTZ

戻り値

最初のOracleTimeStampLTZが2番目の値以下の場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator -

operator-は、指定されたOracleTimeStampLTZから指定された値を引いて、新しいOracleTimeStampLTZ構造を戻します。

オーバーロード・リスト:

- operator - (OracleTimeStampLTZ, OracleIntervalDS)
この静的演算子は、指定されたOracleTimeStampLTZから指定されたOracleIntervalDS値を引いて、新しいOracleTimeStampLTZ構造を戻します。

- operator - (OracleTimeStampLTZ, OracleIntervalYM)
この静的演算子は、指定されたOracleTimeStampLTZから指定されたOracleIntervalYM値を引いて、新しいOracleTimeStampLTZ構造を戻します。

- operator - (OracleTimeStampLTZ, TimeSpan)
この静的演算子は、指定されたOracleTimeStampLTZから指定されたTimeSpan値を引いて、新しいOracleTimeStampLTZ構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator - (OracleTimeStampLTZ, OracleIntervalDS)

この静的演算子は、指定されたOracleTimeStampLTZから指定されたOracleIntervalDS値を引いて、新しいOracleTimeStampLTZ構造を戻します。

宣言

// C#
public static operator - (OracleTimeStampLTZ value1,
OracleIntervalDS value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
OracleIntervalDSインスタンス

戻り値

OracleTimeStampLTZ構造

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampLTZにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator - (OracleTimeStampLTZ, OracleIntervalYM)

この静的演算子は、指定されたOracleTimeStampLTZから指定されたOracleIntervalYM値を引いて、新しいOracleTimeStampLTZ構造を戻します。

宣言

// C#
public static operator - (OracleTimeStampLTZ value1,
OracleIntervalYM value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
OracleIntervalYM

戻り値

OracleTimeStampLTZ構造

備考

パラメータのいずれかにNULL値がある場合、戻されたOracleTimeStampLTZにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

operator - (OracleTimeStampLTZ, TimeSpan)

この静的演算子は、指定されたOracleTimeStampLTZから指定されたTimeSpan値を引いて、新しいOracleTimeStampLTZ構造を戻します。

宣言

// C#
public static operator -(OracleTimeStampLTZ value1, TimeSpan value2);

パラメータ

- value1
OracleTimeStampLTZ

- value2
TimeSpan

戻り値

OracleTimeStampLTZ構造

備考

OracleTimeStampLTZインスタンスにNULL値がある場合、戻されたOracleTimeStampLTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZ静的型変換

OracleTimeStampLTZ静的型変換を、表14-110にリストします。

表14-110 OracleTimeStampLTZ静的型変換

演算子

説明

explicit operator OracleTimeStampLTZ

インスタンス値をOracleTimeStampLTZ構造に変換します(オーバーロード)

implicit operator OracleTimeStampLTZ

インスタンス値をOracleTimeStampLTZ構造に変換します(オーバーロード)

explicit operator DateTime

OracleTimeStampLTZ値をDateTime構造に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

explicit operator OracleTimeStampLTZ

explicit operator OracleTimeStampLTZは、指定された値をOracleTimeStampLTZ構造に変換します。

オーバーロード・リスト:

- explicit operator OracleTimeStampLTZ(OracleTimeStamp)
この静的な型変換演算子は、OracleTimeStamp値をOracleTimeStampLTZ構造に変換します。

- explicit operator OracleTimeStampLTZ(OracleTimeStampTZ)
この静的な型変換演算子は、OracleTimeStampTZ値をOracleTimeStampLTZ構造に変換します。

- explicit operator OracleTimeStampLTZ(string)
この静的な型変換演算子は、指定された文字列をOracleTimeStampLTZ構造に変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

explicit operator OracleTimeStampLTZ(OracleTimeStamp)

この静的な型変換演算子は、OracleTimeStamp値をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStampLTZ (OracleTimeStamp value1);

パラメータ

- value1
OracleTimeStamp

戻り値

OracleTimeStampTZ構造の日付と時刻を含むOracleTimeStampLTZ構造

備考

OracleTimeStamp構造にNULL値がある場合、戻されたOracleTimeStampLTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

explicit operator OracleTimeStampLTZ(OracleTimeStampTZ)

この静的な型変換演算子は、OracleTimeStampTZ値をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStampLTZ
(OracleTimeStampTZ value1);

パラメータ

- value1
OracleTimeStampTZインスタンス

戻り値

OracleTimeStampTZ構造(クライアントのローカル・タイムゾーンに正規化されます)の日付と時刻を含むOracleTimeStampLTZ構造です。

備考

OracleTimeStampTZ構造にNULL値がある場合、戻されたOracleTimeStampLTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

explicit operator OracleTimeStampLTZ(string)

この静的な型変換演算子は、指定された文字列をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStampLTZ (string tsStr);

パラメータ

- tsStr
Oracle TIMESTAMP WITH LOCAL TIME ZONEの文字列表現

戻り値

OracleTimeStampLTZ

例外

ArgumentException - tsStrパラメータがOracle TIMESTAMP WITH LOCAL TIME ZONEの無効な文字列表現か、tsStrが、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定されたタイムスタンプの形式ではありません。このプロパティは、Oracle NLS_TIMESTAMP_FORMATパラメータを表します。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class OracleTimeStampLTZSample
{
static void Main()
{
// Set the nls_timestamp_format for the OracleTimeStampLTZ(string)
// constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampLTZ from a string using the format specified.
OracleTimeStampLTZ ts =
new OracleTimeStampLTZ("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

- 日時書式要素の詳細は、Oracle Database SQLリファレンスを参照

implicit operator OracleTimeStampLTZ

implicit operator OracleTimeStampLTZは、指定された構造をOracleTimeStampLTZ構造に変換します。

オーバーロード・リスト:

- implicit operator OracleTimeStampLTZ(OracleDate)
この静的な型変換演算子は、OracleDate値をOracleTimeStampLTZ構造に変換します。

- implicit operator OracleTimeStampLTZ(DateTime)
この静的な型変換演算子は、DateTime構造をOracleTimeStampLTZ構造に変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

implicit operator OracleTimeStampLTZ(OracleDate)

この静的な型変換演算子は、OracleDate値をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public static implicit operator OracleTimeStampLTZ(OracleDate value1);

パラメータ

- value1
OracleDate

戻り値

戻されたOracleTimeStampLTZ構造には、OracleDate構造の日付と時刻が含まれます。

備考

OracleDate構造にNULL値がある場合、戻されたOracleTimeStampLTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

implicit operator OracleTimeStampLTZ(DateTime)

この静的な型変換演算子は、DateTime構造をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public static implicit operator OracleTimeStampLTZ(DateTime value1);

パラメータ

- value1
DateTime構造

戻り値

OracleTimeStampLTZ構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

explicit operator DateTime

この静的な型変換演算子は、OracleTimeStampLTZ値をDateTime構造に変換します。

宣言

// C#
public static explicit operator DateTime(OracleTimeStampLTZ value1);

パラメータ

- value1
OracleTimeStampLTZインスタンス

戻り値

現行インスタンスの日付と時刻を含むDateTime

例外

OracleNullValueException - OracleTimeStampLTZ構造にNULL値があります。

備考

OracleTimeStampLTZ値の精度は、変換時に失われる可能性があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZプロパティ

OracleTimeStampLTZプロパティを、表14-111にリストします。

表14-111 OracleTimeStampLTZプロパティ

プロパティ

説明

BinData

Oracle TIMESTAMP WITH LOCAL TIME ZONEをOracleの内部書式で表すバイトの配列を戻します

Day

OracleTimeStampLTZのdayコンポーネントを指定します

IsNull

OracleTimeStampLTZインスタンスにNULL値があるかどうかを示します

Hour

OracleTimeStampLTZの時間コンポーネントを指定します

Millisecond

OracleTimeStampLTZのミリ秒コンポーネントを指定します

Minute

OracleTimeStampLTZの分コンポーネントを指定します

Month

OracleTimeStampLTZの月コンポーネントを指定します

Nanosecond

OracleTimeStampLTZのナノ秒コンポーネントを指定します

Second

OracleTimeStampLTZの秒コンポーネントを指定します

Value

OracleTimeStampLTZ構造に格納された日時を指定します

Year

OracleTimeStampLTZの年コンポーネントを指定します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

BinData

このプロパティは、Oracle内部形式でOracle TIMESTAMP WITH LOCAL TIME ZONEを表すバイトの配列を戻します。

宣言

// C#
public byte[] BinData {get;}

プロパティ値

Oracle TIMESTAMP WITH LOCAL TIME ZONE内部形式を表すバイト配列

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Day

このプロパティは、OracleTimeStampLTZの日コンポーネントを指定します。

宣言

// C#
public int Day{get;}

プロパティ値

日を表す数値。Dayの範囲は(1から31)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値が含まれる場合はtrue、それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Hour

このプロパティは、OracleTimeStampLTZの時間コンポーネントを指定します。

宣言

// C#
public int Hour{get;}

プロパティ値

時間を表す数値。Hourの範囲は(0から23)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Millisecond

このプロパティは、OracleTimeStampLTZのミリ秒コンポーネントを取得します。

宣言

// C#
public double Millisecond{get;}

プロパティ値

ミリ秒を表す数値。Millisecondの範囲は(0から999.999999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Minute

このプロパティは、OracleTimeStampLTZの分コンポーネントを取得します。

宣言

// C#
public int Minute{get;}

プロパティ値

分を表す数値。Minuteの範囲は(0から59)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Month

このプロパティは、OracleTimeStampLTZの月コンポーネントを取得します。

宣言

// C#
public int Month{get;}

プロパティ値

月を表す数値。Monthの範囲は(1から12)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Nanosecond

このプロパティは、OracleTimeStampLTZのナノ秒コンポーネントを取得します。

宣言

// C#
public int Nanosecond{get;}

プロパティ値

ナノ秒を表す数値。Nanosecondの範囲は(0から999999999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Second

このプロパティは、OracleTimeStampLTZの秒コンポーネントを取得します。

宣言

// C#
public int Second{get;}

プロパティ値

秒を表す数値。Secondの範囲は(0から59)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Value

このプロパティは、OracleTimeStampLTZ構造に格納された日付と時刻を指定します。

宣言

// C#
public DateTime Value{get;}

プロパティ値

DateTime

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Year

このプロパティは、OracleTimeStampLTZの年コンポーネントを取得します。

宣言

// C#
public int Year{get;}

プロパティ値

年を表す数値。Yearの範囲は(-4712から9999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampLTZメソッド

OracleTimeStampLTZメソッドを、表14-112にリストします。

表14-112 OracleTimeStampLTZメソッド

メソッド

説明

AddDays

指定された日数を現行インスタンスに追加します

AddHours

指定された時間数を現行インスタンスに追加します

AddMilliseconds

指定されたミリ秒数を現行インスタンスに追加します

AddMinutes

指定された分数を現行インスタンスに追加します

AddMonths

指定された月数を現行インスタンスに追加します

AddNanoseconds

指定されたナノ秒数を現行インスタンスに追加します

AddSeconds

指定された秒数を現行インスタンスに追加します

AddYears

指定された年数を現行インスタンスに追加します

CompareTo

現行のOracleTimeStampLTZインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleTimeStampLTZインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetHashCode

OracleTimeStampLTZインスタンスのハッシュ・コードを戻します

GetDaysBetween

現行インスタンスからOracleTimeStampLTZを減算し、その差を表すOracleIntervalDSを戻します

GetYearsBetween

現行インスタンスからOracleTimeStampLTZを減算し、その差を表すOracleIntervalYMを戻します

GetType

System.Objectからの継承

ToOracleDate

現行のOracleTimeStampLTZ構造をOracleDate構造に変換します

ToOracleTimeStamp

現行のOracleTimeStampLTZ構造をOracleTimeStamp構造に変換します

ToOracleTimeStampTZ

現行のOracleTimeStampLTZ構造をOracleTimeStampTZ構造に変換します

ToString

現行のOracleTimeStampLTZ構造を文字列に変換します

ToUniversalTime

現在のローカル時刻を協定世界時(UTC)に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddDays

このメソッドは、現行インスタンスに指定された日数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddDays(double days);

パラメータ

- days
指定された日数。範囲は(-1,000,000,000 < days < 1,000,000,000)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddHours

このメソッドは、現行インスタンスに指定された時間数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddHours(double hours);

パラメータ

- hours
指定された時間数。範囲は(-24,000,000,000 < hours < 24,000,000,000)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddMilliseconds

このメソッドは、現行インスタンスに指定されたミリ秒数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddMilliseconds(double milliseconds);

パラメータ

- milliseconds
指定されたミリ秒数。範囲は(-8.64 * 1016< milliseconds < 8.64 * 1016)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddMinutes

このメソッドは、現行インスタンスに指定された分数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddMinutes(double minutes);

パラメータ

- minutes
指定された分数。範囲は(-1,440,000,000,000 < minutes < 1,440,000,000,000)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddMonths

このメソッドは、現行インスタンスに指定された月数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddMonths(long months);

パラメータ

- months
指定された月数。範囲は(-12,000,000,000 < months < 12,000,000,000)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddNanoseconds

このメソッドは、現行インスタンスに指定されたナノ秒数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddNanoseconds(long nanoseconds);

パラメータ

- nanoseconds
指定されたナノ秒数

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddSeconds

このメソッドは、現行インスタンスに指定された秒数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddSeconds(double seconds);

パラメータ

- seconds
指定された秒数。範囲は(-8.64 * 1013< seconds < 8.64 * 1013)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

AddYears

このメソッドは、現行インスタンスに指定された年数を加えます。

宣言

// C#
public OracleTimeStampLTZ AddYears(int years);

パラメータ

- years
指定された年数。範囲は(-999,999,999 <= years < = 999,999,999)です。

戻り値

OracleTimeStampLTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

CompareTo

このメソッドは、現行のOracleTimeStampLTZインスタンスとオブジェクトを比較して、その相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
現行のOracleTimeStampLTZインスタンスと比較されるオブジェクト

戻り値

メソッドが戻す数値は次のとおりです。

- ゼロ未満:現行のOracleTimeStampLTZインスタンス値がobj値より小さい場合

- ゼロ:現行のOracleTimeStampLTZインスタンス値がobj値と等しい場合

- ゼロ超過:現行のOracleTimeStampLTZインスタンス値がobj値より大きい場合

実装

IComparable

例外

ArgumentException - objパラメータがOracleTimeStampLTZ型ではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleTimeStampLTZ間で行う必要があります。たとえば、OracleTimeStampLTZインスタンスとOracleBinaryインスタンスを比較することはできません。OracleTimeStampLTZを別の型と比較すると、ArgumentExceptionが表示されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

Equals

Objectをオーバーライドします。

このメソッドは、オブジェクトが現行のOracleTimeStampLTZインスタンスと同じ日付および時刻を持っているかどうかを決定します。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
現行のOracleTimeStampLTZインスタンスと比較されるオブジェクト

戻り値

objがOracleTimeStampLTZ型で、同じ日付および時刻を表す場合はtrue、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampLTZは、NULL値を持つOracleTimeStampLTZより大きくなります。

- NULL値を含む2つのOracleTimeStampLTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドは、OracleTimeStampLTZインスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表す数値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GetDaysBetween

このメソッドは、現行インスタンスからOracleTimeStampLTZ値を引いて、その差を表すOracleIntervalDSを戻します。

宣言

// C#
public OracleIntervalDS GetDaysBetween(OracleTimeStampLTZ value1);

パラメータ

- value1
減算されるOracleTimeStampLTZ値

戻り値

2つのOracleTimeStampLTZ値の時間隔を表すOracleIntervalDS

備考

現行のインスタンスまたはパラメータのいずれかにNULL値がある場合、戻されたOracleIntervalDSにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

GetYearsBetween

このメソッドは、現行インスタンスからOracleTimeStampLTZ値を引いて、時間間隔を表すOracleIntervalYMを戻します。

宣言

// C#
public OracleIntervalYM GetYearsBetween(OracleTimeStampLTZ value1);

パラメータ

- value1
減算されるOracleTimeStampLTZ値

戻り値

2つのOracleTimeStampLTZ値の時間隔を表すOracleIntervalYM

備考

現行のインスタンスまたはパラメータのいずれかにNULL値がある場合、戻されたOracleIntervalYMにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

ToOracleDate

このメソッドは、現行のOracleTimeStampLTZ構造をOracleDate構造に変換します。

宣言

// C#
public OracleDate ToOracleDate();

戻り値

戻されたOracleDate構造には、現行インスタンスの日付と時刻が含まれます。

備考

OracleTimeStampLTZ値の精度は、変換時に失われる可能性があります。

現行インスタンスにNULL値がある場合、戻されたOracleDate構造の値にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

ToOracleTimeStamp

このメソッドは、現行のOracleTimeStampLTZ構造をOracleTimeStamp構造に変換します。

宣言

// C#
public OracleTimeStamp ToOracleTimeStamp();

戻り値

戻されたOracleTimeStampには、現行インスタンスの日付と時刻が含まれます。

備考

現行インスタンスにNULL値がある場合、戻されたOracleTimeStamp構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

ToOracleTimeStampTZ

このメソッドは、現行のOracleTimeStampLTZ構造をOracleTimeStampTZ構造に変換します。

宣言

// C#
public OracleTimeStampTZ ToOracleTimeStampTZ();

戻り値

戻されたOracleTimeStampTZには、現行インスタンスの日付と時刻が含まれ、スレッドからタイムゾーンがOracleGlobalization.TimeZoneに設定されます。

備考

現行インスタンスにNULL値がある場合、戻されたOracleTimeStampTZ構造の値にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

ToString

Objectをオーバーライドします。

このメソッドは、現行のOracleTimeStampLTZ構造を文字列に変換します。

宣言

// C#
public override string ToString();

戻り値

現行のOracleTimeStampLTZ構造と同じ日付と時刻を表すstring

備考

戻された値は、スレッドのOracleGlobalization.TimeStampFormatプロパティで指定された形式のOracleTimeStampLTZの文字列表現です。

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Types;
using Oracle.DataAccess.Client;

class ToStringSample
{
static void Main()
{
// Set the nls_timestamp_format for the OracleTimeStampLTZ(string)
// constructor
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampLTZ from a string using the format
// specified.
OracleTimeStampLTZ ts =
new OracleTimeStampLTZ("11-NOV-1999 11:02:33.444 AM");

// Set the nls_timestamp_format for the ToString() method
info.TimeStampFormat = "YYYY-MON-DD HH:MI:SS.FF AM";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM"
Console.WriteLine(ts.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

ToUniversalTime

このメソッドは、現在のローカル時刻を協定世界時(UTC)に変換します。

宣言

// C#
public OracleTimeStampTZ ToUniversalTime();

戻り値

OracleTimeStampTZ構造

備考

現行インスタンスにNULL値がある場合、戻されたOracleTimeStampTZ構造の値にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampLTZ構造

- OracleTimeStampLTZメンバー

OracleTimeStampTZ構造

OracleTimeStampTZ構造は、データベースに格納されるか、またはデータベースから取得されるOracle TIMESTAMP WITH TIME ZONEデータ型を表します。各OracleTimeStampTZには、年、月、日、時、分、秒、ナノ秒およびタイムゾーンの情報が格納されます。

クラスの継承

System.Object

System.ValueType

Oracle.DataAccess.Types.OracleTimeStampTZ

宣言

// ADO.NET 2.0: C#
public struct OracleTimeStampTZ : IComparable, INullable, IXmlSerializable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleTimeStampTZSample
{
static void Main()
{
// Set the nls parameters for the current thread
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeZone = "US/Eastern";
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
info.TimeStampTZFormat = "DD-MON-YYYY HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// Create an OracleTimeStampTZ in US/Pacific time zone
OracleTimeStampTZ tstz1=new OracleTimeStampTZ("11-NOV-1999 "+
"11:02:33.444 AM US/Pacific");

// Note that ToOracleTimeStampTZ uses the thread's time zone region,
// "US/Eastern"
OracleTimeStamp ts = new OracleTimeStamp("11-NOV-1999 11:02:33.444 AM");
OracleTimeStampTZ tstz2 = ts.ToOracleTimeStampTZ();

// Calculate the difference between tstz1 and tstz2
OracleIntervalDS idsDiff = tstz1.GetDaysBetween(tstz2);

// Display information
Console.WriteLine("tstz1.TimeZone = " + tstz1.TimeZone);

// Prints "US/Pacific"
Console.WriteLine("tstz2.TimeZone = " + tstz2.TimeZone);

// Prints "US/Eastern"
Console.WriteLine("idsDiff.Hours = " + idsDiff.Hours); // Prints 3
Console.WriteLine("idsDiff.Minutes = " + idsDiff.Minutes); // Prints 0
}
}

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZメンバー

- OracleTimeStampTZコンストラクタ

- OracleTimeStampTZ静的フィールド

- OracleTimeStampTZ静的メソッド

- OracleTimeStampTZ静的演算子

- OracleTimeStampTZ静的型変換

- OracleTimeStampTZプロパティ

- OracleTimeStampTZメソッド

OracleTimeStampTZメンバー

OracleTimeStampTZメンバーを次の表にリストします。

OracleTimeStampTZコンストラクタ

OracleTimeStampTZコンストラクタを、表14-113にリストします。

表14-113 OracleTimeStampTZコンストラクタ

コンストラクタ

説明

OracleTimeStampTZコンストラクタ

OracleTimeStampTZ構造の新しいインスタンスをインスタンス化します(オーバーロード)

OracleTimeStampTZ静的フィールド

OracleTimeStampTZ静的フィールドを、表14-114にリストします。

表14-114 OracleTimeStampTZ静的フィールド

フィールド

説明

MaxValue

UTCでのOracleTimeStampTZ構造の最大有効日付、9999年12月31日23時59分59.999999999秒を表します

MinValue

UTCでのOracleTimeStampTZ構造の最小有効日付、-4712年1月1日0時0分0秒を表します

Null

OracleTimeStampTZ構造のインスタンスに割り当てられるNULL値を表します

OracleTimeStampTZ静的メソッド

OracleTimeStampTZ静的メソッドを、表14-115にリストします。

表14-115 OracleTimeStampTZ静的メソッド

メソッド

説明

Equals

2つのOracleTimeStampTZ値が等しいかどうかを判別します(オーバーロード)

GetSysDate

現在の日時を表すOracleTimeStampTZ構造を取得します

GreaterThan

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleTimeStampTZ値が等しくないかどうかを判別します

Parse

OracleTimeStampTZ構造を取得し、指定された文字列を使用して日時の値を設定します

SetPrecision

指定された小数秒精度を使用して、OracleTimeStampTZの新しいインスタンスを戻します

OracleTimeStampTZ静的演算子

OracleTimeStampTZ静的演算子を、表14-116にリストします。

表14-116 OracleTimeStampTZ静的演算子

演算子

説明

operator+

指定されたインスタンス値を指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します(オーバーロード)

operator ==

2つのOracleTimeStampTZの値が等しいかどうかを判別します

operator >

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleTimeStampTZ値が等しくないかどうかを判別します

operator <

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以下かどうかを判別します

operator -

指定されたインスタンス値を指定されたOracleTimeStampTZから減算し、新規OracleTimeStampTZ構造を戻します(オーバーロード)

OracleTimeStampTZ静的型変換

OracleTimeStampTZ静的型変換を、表14-117にリストします。

表14-117 OracleTimeStampTZ静的型変換

演算子

説明

explicit operator OracleTimeStampTZ

インスタンス値をOracleTimeStampTZ構造に変換します(オーバーロード)

implicit operator OracleTimeStampTZ

インスタンス値をOracleTimeStampTZ構造に変換します(オーバーロード)

explicit operator DateTime

OracleTimeStampTZ値をDateTime構造に変換します

OracleTimeStampTZプロパティ

OracleTimeStampTZプロパティを、表14-118にリストします。

表14-118 OracleTimeStampTZプロパティ

プロパティ

説明

BinData

OracleのTIMESTAMP WITH TIME ZONEをOracleの内部書式で表すバイトの配列を戻します

Day

OracleTimeStampTZの日のコンポーネントを現行のタイムゾーンで指定します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Hour

OracleTimeStampTZの時間のコンポーネントを現行のタイムゾーンで指定します

Millisecond

OracleTimeStampTZのミリ秒のコンポーネントを現行のタイムゾーンで指定します

Minute

OracleTimeStampTZの分のコンポーネントを現行のタイムゾーンで指定します

Month

OracleTimeStampTZの月のコンポーネントを現行のタイムゾーンで指定します

Nanosecond

OracleTimeStampTZのナノ秒のコンポーネントを現行のタイムゾーンで指定します

Second

OracleTimeStampTZの秒のコンポーネントを現行のタイムゾーンで指定します

TimeZone

OracleTimeStampTZインスタンスのタイムゾーンを戻します

Value

OracleTimeStampTZ構造に格納されている日付および時間を現行のタイムゾーンで戻します

Year

OracleTimeStampTZの年コンポーネントを指定します

OracleTimeStampTZメソッド

OracleTimeStampTZメソッドを、表14-119にリストします。

表14-119 OracleTimeStampTZメソッド

メソッド

説明

AddDays

指定された日数を現行インスタンスに追加します

AddHours

指定された時間数を現行インスタンスに追加します

AddMilliseconds

指定されたミリ秒数を現行インスタンスに追加します

AddMinutes

指定された分数を現行インスタンスに追加します

AddMonths

指定された月数を現行インスタンスに追加します

AddNanoseconds

指定されたナノ秒数を現行インスタンスに追加します

AddSeconds

指定された秒数を現行インスタンスに追加します

AddYears

指定された年数を現行インスタンスに追加します

CompareTo

現行のOracleTimeStampTZインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトの日時が現行のOracleTimeStampTZインスタンスのものと同じかどうかを判別します

GetDaysBetween

現行インスタンスからOracleTimeStampTZを減算し、その間隔を表すOracleIntervalDSを戻します

GetHashCode

OracleTimeStampTZインスタンスのハッシュ・コードを戻します

GetTimeZoneOffset

現行のOracleTimeStampTZのタイムゾーン情報を時間と分で取得します

GetYearsBetween

現行インスタンスからOracleTimeStampTZを引き、その間隔を表すOracleIntervalYMを戻します

GetType

System.Objectからの継承

ToLocalTime

現行のOracleTimeStampTZインスタンスをローカル時間に変換します

ToOracleDate

現行のOracleTimeStampTZ構造をOracleDate構造に変換します

ToOracleTimeStampLTZ

現行のOracleTimeStampTZ構造をOracleTimeStampLTZ構造に変換します

ToOracleTimeStamp

現行のOracleTimeStampTZ構造をOracleTimeStamp構造に変換します

ToString

現行のOracleTimeStampTZ構造を文字列に変換します

ToUniversalTime

現行の日時を協定世界時(UTC)に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

OracleTimeStampTZコンストラクタ

OracleTimeStampTZコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成します。

オーバーロード・リスト:

- OracleTimeStampTZ(DateTime)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、指定されたDateTime値を使用して日付および時間の値を設定します。

- OracleTimeStampTZ(DateTime, string)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、指定されたDateTime値およびタイムゾーン・データを使用して日付および時間の値を設定します。

- OracleTimeStampTZ(string)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、指定された文字列を使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月および日を使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, string)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日およびタイムゾーン・データを使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, int, int, int)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分および秒を使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, int, int, int, string)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒およびタイムゾーン・データを使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, int, int, int, double)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒およびミリ秒を使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, int, int, int, double, string)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒、ミリ秒およびタイムゾーン・データを使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, int, int, int, int)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して日付および時間の値を設定します。

- OracleTimeStampTZ(int, int, int, int, int, int, int, string)
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒、ナノ秒およびタイムゾーン・データを使用して日付および時間の値を設定します。

- OracleTimeStampTZ(byte [ ])
このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、その値を内部のOracleのTIMESTAMP WITH TIME ZONE書式を表す指定されたバイト配列に設定します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(DateTime)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、指定されたDateTime値を使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ (DateTime dt);

パラメータ

- dt
指定されたDateTime値

備考

タイムゾーンは、スレッドOracleGlobalization.TimeZoneに設定されます。

例外

ArgumentException - 有効なOracleTimeStampTZの構成にdtパラメータを使用することはできません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(DateTime, string)

このコンストラクタは、指定されたDateTime値とタイムゾーン・データを使用してOracleTimeStampTZ構造の新規インスタンスを作成します。

宣言

// C#
public OracleTimeStampTZ (DateTime value1, string timeZone);

パラメータ

- value1
指定されたDateTime値

- timeZone
指定されたタイムゾーンのデータ。

例外

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません。

備考

timeZoneは、時間オフセット(7:00など)か、US/PacificのようなV$TIMEZONE_NAMESで指定される有効なタイムゾーンのリージョン名です。タイムゾーンの略称はサポートされていません

タイムゾーンがNULLの場合、スレッドのOracleGlobalization.TimeZoneが使用されます。

注意:
PSTは、タイムゾーンのリージョン名および略称のため、OracleTimeStampTZによって認証されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(string)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、指定された文字列を使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ (string tsStr);

パラメータ

- tsStr
OracleのTIMESTAMP WITH TIME ZONEを表す文字列

例外

ArgumentException - tsStrがOracleのTIMESTAMP WITH TIME ZONEを表す文字列として無効であるか、tsStrがスレッドのOracleGlobalization.TimeStampTZFormatプロパティによって指定されたタイムスタンプ書式ではありません。

ArgumentNullException - tsStr値はNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleTimeStampTZSample
{
static void Main()
{
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampTZFormat = "DD-MON-YYYY HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampTZ from a string using the format specified.
OracleTimeStampTZ tstz = new OracleTimeStampTZ("11-NOV-1999" +
"11:02:33.444 AM US/Pacific");

// Set the nls_timestamp_tz_format for the ToString() method
info.TimeStampTZFormat = "YYYY-MON-DD HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM US/Pacific"
Console.WriteLine(tstz.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

- 日付書式要素の詳細は、Oracle Database SQLリファレンスを参照

OracleTimeStampTZ(int, int, int)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月および日を使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外です)。

備考

タイムゾーンは、スレッドOracleGlobalization.TimeZoneに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, string)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日およびタイムゾーン・データを使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day,
string timeZone);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- timeZone
指定されたタイムゾーンのデータ。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外であるか、タイムゾーンが無効です)。

備考

timeZoneは、時間オフセット(7:00など)か、US/PacificのようなV$TIMEZONE_NAMESで指定される有効なタイムゾーンのリージョン名です。タイムゾーンの略称はサポートされていません

タイムゾーンがNULLの場合、スレッドのOracleGlobalization.TimeZoneが使用されます。

注意:
PSTは、タイムゾーンのリージョン名および略称のため、OracleTimeStampTZによって認証されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, int, int, int)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分および秒を使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day, int hour,
int minute,  int second);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外です)。

備考

タイムゾーンは、スレッドOracleGlobalization.TimeZoneに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, int, int, int, string)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒およびタイムゾーン・データを使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ (int year, int month, int day, int hour,
int minute, int second, string timeZone);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- timeZone
指定されたタイムゾーンのデータ。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外であるか、タイムゾーンが無効です)。

備考

timeZoneは、時間オフセット(7:00など)か、US/PacificのようなV$TIMEZONE_NAMESで指定される有効なタイムゾーンのリージョン名です。タイムゾーンの略称はサポートされていません

タイムゾーンがNULLの場合、スレッドのOracleGlobalization.TimeZoneが使用されます。

注意:
PSTは、タイムゾーンのリージョン名および略称のため、OracleTimeStampTZによって認証されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, int, int, int, double)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒およびミリ秒を使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day, int hour,
int minute, int second, double millisecond);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- millisecond
指定されたミリ秒。millisecondの範囲は(0から999.999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外です)。

備考

タイムゾーンは、スレッドOracleGlobalization.TimeZoneに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, int, int, int, double, string)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒、ミリ秒およびタイムゾーン・データを使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day, int hour,
int minute,   int second, double millisecond, string timeZone);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- millisecond
指定されたミリ秒。millisecondの範囲は(0から999.999999)です。

- timeZone
指定されたタイムゾーンのデータ。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外であるか、タイムゾーンが無効です)。

備考

timeZoneは、時間オフセット(7:00など)か、US/PacificのようなV$TIMEZONE_NAMESで指定される有効なタイムゾーンのリージョン名です。タイムゾーンの略称はサポートされていません

タイムゾーンがNULLの場合、スレッドのOracleGlobalization.TimeZoneが使用されます。

注意:
PSTは、タイムゾーンのリージョン名および略称のため、OracleTimeStampTZによって認証されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, int, int, int, int)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒およびナノ秒を使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day, int hour,
int minute, int second, int nanosecond);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- ナノ秒
指定されたナノ秒。nanosecondの範囲は(0から999999999)です。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外です)。

備考

タイムゾーンは、スレッドOracleGlobalization.TimeZoneに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(int, int, int, int, int, int, int, string)

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、年、月、日、時間、分、秒、ナノ秒およびタイムゾーン・データを使用して日付および時間の値を設定します。

宣言

// C#
public OracleTimeStampTZ(int year, int month, int day, int hour,
int minute, int second, int nanosecond, string timeZone);

パラメータ

- year
指定された年。yearの範囲は(-4712から9999)です。

- month
指定された月。monthの範囲は(1から12)です。

- day
指定された日付。dayの範囲は(1から31)です。

- 時間
指定された時間。hourの範囲は(0から23)です。

- 分
指定された分。minuteの範囲は(0から59)です。

- 秒
指定された秒。secondの範囲は(0から59)です。

- ナノ秒
指定されたナノ秒。nanosecondの範囲は(0から999999999)です。

- timeZone
指定されたタイムゾーンのデータ。

例外

ArgumentOutOfRangeException - 1つ以上のパラメータの引数が、指定範囲を超えています。

ArgumentException - 有効なOracleTimeStampTZの構成にパラメータの引数値を使用することはできません(つまり、日が月の範囲外であるか、タイムゾーンが無効です)。

備考

timeZoneは、時間オフセット(7:00など)か、US/PacificのようなV$TIMEZONE_NAMESで指定される有効なタイムゾーンのリージョン名です。タイムゾーンの略称はサポートされていません

タイムゾーンがNULLの場合、スレッドのOracleGlobalization.TimeZoneが使用されます。

注意:
PSTは、タイムゾーンのリージョン名および略称のため、OracleTimeStampTZによって認証されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ(byte [ ])

このコンストラクタはOracleTimeStampTZ構造の新規インスタンスを作成し、その値を内部のOracleのTIMESTAMP WITH TIME ZONE書式を表す指定されたバイト配列に設定します。

宣言

// C#
public OracleTimeStampLTZ (byte[] bytes);

パラメータ

- bytes
OracleのTIMESTAMP WITH TIME ZONEをOracleの内部書式で表す指定されたバイト配列です。

例外

ArgumentException - bytesが内部のOracleのTIMESTAMP WITH TIME ZONE書式でないか、bytesが有効なOracleのTIMESTAMP WITH TIME ZONEではありません。

ArgumentNullException - bytesがNULLです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ静的フィールド

OracleTimeStampTZ静的フィールドを、表14-120にリストします。

表14-120 OracleTimeStampTZ静的フィールド

フィールド

説明

MaxValue

UTCでのOracleTimeStampTZ構造の最大有効日付、9999年12月31日23時59分59.999999999秒を表します

MinValue

UTCでのOracleTimeStampTZ構造の最小有効日付、-4712年1月1日0時0分0秒を表します

Null

OracleTimeStampTZ構造のインスタンスに割り当てられるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

MaxValue

この静的フィールドは、UTCでのOracleTimeStampTZ構造の最大有効日時、9999年12月31日23時59分59.999999999秒を表します。

宣言

// C#
public static readonly OracleTimeStampTZ MaxValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

MinValue

この静的フィールドは、UTCでのOracleTimeStampTZ構造の最小有効日時、-4712年1月1日0時0分0秒を表します。

宣言

// C#
public static readonly OracleTimeStampTZ MinValue;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Null

この静的フィールドは、OracleTimeStampTZ構造のインスタンスに割当て可能なNULL値を表します。

宣言

// C#
public static readonly OracleTimeStampTZ Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ静的メソッド

OracleTimeStampTZ静的メソッドを、表14-121にリストします。

表14-121 OracleTimeStampTZ静的メソッド

メソッド

説明

Equals

2つのOracleTimeStampTZ値が等しいかどうかを判別します(オーバーロード)

GetSysDate

現在の日時を表すOracleTimeStampTZ構造を取得します

GreaterThan

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

GreaterThanOrEqual

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以上かどうかを判別します

LessThan

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

LessThanOrEqual

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以下かどうかを判別します

NotEquals

2つのOracleTimeStampTZ値が等しくないかどうかを判別します

Parse

OracleTimeStampTZ構造を取得し、指定された文字列を使用して日時の値を設定します

SetPrecision

指定された小数秒精度を使用して、OracleTimeStampTZの新しいインスタンスを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Equals

この静的メソッドは、2つのOracleTimeStampTZの値が等しいかどうかを判断します。

宣言

// C#
public static bool Equals(OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの値が等しい場合はtrueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GetSysDate

この静的メソッドは、現行の日付と時間を表すOracleTimeStampTZ構造を取得します。

宣言

// C#
public static OracleTimeStampTZ GetSysDate();

戻り値

現行の日付と時間を表すOracleTimeStampTZ構造

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GreaterThan

この静的メソッドは、2つのOracleTimeStampTZの1番目の値が2番目の値より大きいかどうかを判断します。

宣言

// C#
public static bool GreaterThan(OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの1番目の値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GreaterThanOrEqual

この静的メソッドは、2つのOracleTimeStampTZの1番目の値が2番目の値以上であるかどうかを判断します。

宣言

// C#
public static bool GreaterThanOrEqual(OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの1番目の値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

LessThan

この静的メソッドは、2つのOracleTimeStampTZの1番目の値が2番目の値より小さいかどうかを判断します。

宣言

// C#
public static bool LessThan(OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの1番目の値が2番目の値より小さい場合はtrueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

LessThanOrEqual

この静的メソッドは、2つのOracleTimeStampTZの1番目の値が2番目の値以下であるかどうかを判断します。

宣言

// C#
public static bool LessThanOrEqual(OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの1番目の値が2番目の値以下である場合はtrueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

NotEquals

この静的メソッドは、2つのOracleTimeStampTZの値が等しくないかどうかを判断します。

宣言

// C#
public static bool NotEquals(OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの値が等しくない場合はtrueを戻します。それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Parse

この静的メソッドはOracleTimeStampTZ構造を戻し、その日付および時間の値を指定された文字列を使用して設定します。

宣言

// C#
public static OracleTimeStampTZ Parse(string tsStr);

パラメータ

- tsStr
OracleのTIMESTAMP WITH TIME ZONEを表す文字列

戻り値

OracleTimeStampTZ構造

例外

ArgumentException - tsStrがOracleのTIMESTAMP WITH TIME ZONEを表す文字列として無効であるか、tsStrがOracle NLS_TIMESTAMP_TZ_FORMATパラメータを表すスレッドのOracleGlobalization.TimeStampTZFormatプロパティによって指定されたタイムスタンプ書式ではありません。

ArgumentNullException - tsStr値はNULLです。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class ParseSample
{
static void Main()
{
// Set the nls_timestamp_tz_format for the Parse() method
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampTZFormat = "DD-MON-YYYY HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampTZ from a string using the format specified.
OracleTimeStampTZ tstz = OracleTimeStampTZ.Parse("11-NOV-1999 " +
"11:02:33.444 AM US/Pacific");

// Set the nls_timestamp_tz_format for the ToString() method
info.TimeStampTZFormat = "YYYY-MON-DD HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// Prints "1999-NOV-11 11:02:33.444000000 AM US/Pacific"
Console.WriteLine(tstz.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

SetPrecision

この静的メソッドは、指定された小数秒精度でOracleTimeStampTZの新規インスタンスを戻します。

宣言

// C#
public static OracleTimeStampTZ SetPrecision(OracleTimeStampTZ value1,
int fracSecPrecision);

パラメータ

- value1
指定されたOracleTimeStampTZオブジェクト

- fracSecPrecision
指定された小数秒精度。小数秒精度の範囲は(0から9)です。

戻り値

指定された小数秒精度でのOracleTimeStampTZ構造

例外

ArgumentOutOfRangeException - fracSecPrecisionが指定範囲を超えています。

備考

fracSecPrecisionに指定する値は、OracleTimeStampTZ値での四捨五入操作の実行に使用されます。この値に応じて、ToString()によって戻される文字列に、後続のゼロが0個以上表示されます。

例

OracleTimeStampTZの値がDecember 31, 9999 23:59:59.99 US/Pacificである場合、小数秒精度を5に設定してSetPrecision()をコールすると、文字列December 31, 9999 23:59:59.99000 US/Pacificが戻されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ静的演算子

OracleTimeStampTZ静的演算子を、表14-122にリストします。

表14-122 OracleTimeStampTZ静的演算子

演算子

説明

operator+

指定されたインスタンス値を指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します(オーバーロード)

operator ==

2つのOracleTimeStampTZの値が等しいかどうかを判別します

operator >

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より大きいかどうかを判別します

operator >=

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以上かどうかを判別します

operator !=

2つのOracleTimeStampTZ値が等しくないかどうかを判別します

operator <

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値より小さいかどうかを判別します

operator <=

2つのOracleTimeStampTZ値のうち、最初の値が2番目の値以下かどうかを判別します

operator -

指定されたインスタンス値を指定されたOracleTimeStampTZから減算し、新規OracleTimeStampTZ構造を戻します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator +

operator+は指定された構造を指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

オーバーロード・リスト:

- operator +(OracleTimeStampTZ, OracleIntervalDS)
この静的演算子は指定されたOracleIntervalDSを指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

- operator +(OracleTimeStampTZ, OracleIntervalYM)
この静的演算子は指定されたOracleIntervalYMを指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

- operator +(OracleTimeStampTZ, TimeSpan)
この静的演算子は指定されたTimeSpanを指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator +(OracleTimeStampTZ, OracleIntervalDS)

この静的演算子は指定されたOracleIntervalDSを指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

宣言

// C#
public static operator +(OracleTimeStampTZ value1,
OracleIntervalDS value2);

パラメータ

- value1
OracleTimeStampTZ

- value2
OracleIntervalDS

戻り値

OracleTimeStampTZ

備考

いずれかのパラメータにNULL値がある場合、戻されたOracleTimeStampTZにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator +(OracleTimeStampTZ, OracleIntervalYM)

この静的演算子は指定されたOracleIntervalYMを指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

宣言

// C#
public static operator +(OracleTimeStampTZ value1,
OracleIntervalYM value2);

パラメータ

- value1
OracleTimeStampTZ

- value2
OracleIntervalYM

戻り値

OracleTimeStampTZ

備考

いずれかのパラメータにNULL値がある場合、戻されたOracleTimeStampTZにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator +(OracleTimeStampTZ, TimeSpan)

この静的演算子は指定されたTimeSpanを指定されたOracleTimeStampTZに加え、新規OracleTimeStampTZ構造を戻します。

宣言

// C#
public static operator +(OracleTimeStampTZ value1, TimeSpan value2);

パラメータ

- value1
OracleTimeStampTZ

- value2
TimeSpan

戻り値

OracleTimeStampTZ

備考

OracleTimeStampTZインスタンスにNULL値がある場合、戻されたOracleTimeStampTZにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator ==

この静的演算子は、2つのOracleTimeStampTZの値が等しいかどうかを判断します。

宣言

// C#
public static bool operator == (OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

等しい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator >

この静的演算子は、2つのOracleTimeStampTZの1番目の値が2番目の値より大きいかどうかを判断します。

宣言

// C#
public static bool operator > (OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

1番目のOracleTimeStampTZの値が2番目の値より大きい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator >=

この静的演算子は、2つのOracleTimeStampTZの1番目の値が2番目の値以上であるかどうかを判断します。

宣言

// C#
public static bool operator >= (OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

1番目のOracleTimeStampTZの値が2番目の値以上である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator !=

この静的演算子は、2つのOracleTimeStampTZの値が等しくないかどうかを判断します。

宣言

// C#
public static bool operator != (OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

2つのOracleTimeStampTZの値が等しくない場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator <

この静的演算子は、2つのOracleTimeStampTZの1番目の値が2番目の値より小さいかどうかを判断します。

宣言

// C#
public static bool operator < (OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

1番目のOracleTimeStampTZの値が2番目の値より小さい場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator <=

この静的演算子は、2つのOracleTimeStampTZの1番目の値が2番目の値以下であるかどうかを判断します。

宣言

// C#
public static bool operator <= (OracleTimeStampTZ value1,
OracleTimeStampTZ value2);

パラメータ

- value1
最初のOracleTimeStampTZ

- value2
2番目のOracleTimeStampTZ

戻り値

1番目のOracleTimeStampTZの値が2番目の値以下である場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator -

operator-は指定された値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

オーバーロード・リスト:

- operator - (OracleTimeStampTZ, OracleIntervalDS)
この静的演算子は指定されたOracleIntervalDS値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

- operator - (OracleTimeStampTZ, OracleIntervalYM)
この静的演算子は指定されたOracleIntervalYM値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

- operator - (OracleTimeStampTZ value1, TimeSpan value2)
この静的演算子は指定されたTimeSpan値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator - (OracleTimeStampTZ, OracleIntervalDS)

この静的演算子は指定されたOracleIntervalDS値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

宣言

// C#
public static operator - (OracleTimeStampTZ value1,
OracleIntervalDS value2);

パラメータ

- value1
OracleTimeStampTZ

- value2
OracleIntervalDS

戻り値

OracleTimeStampTZ構造

備考

いずれかのパラメータにNULL値がある場合、戻されたOracleTimeStampTZにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator - (OracleTimeStampTZ, OracleIntervalYM)

この静的演算子は指定されたOracleIntervalYM値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

宣言

// C#
public static operator - (OracleTimeStampTZ value1,
OracleIntervalYM value2);

パラメータ

- value1
OracleTimeStampTZ

- value2
OracleIntervalYM

戻り値

OracleTimeStampTZ構造

備考

いずれかのパラメータにNULL値がある場合、戻されたOracleTimeStampTZにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

operator - (OracleTimeStampTZ value1, TimeSpan value2)

この静的演算子は指定されたTimeSpan値を指定されたOracleTimeStampTZ値から差し引き、新規OracleTimeStampTZ構造を戻します。

宣言

// C#
public static operator - (OracleTimeStampTZ value1, TimeSpan value2);

パラメータ

- value1
OracleTimeStampTZ

- value2
TimeSpan

戻り値

OracleTimeStampTZ構造

備考

OracleTimeStampTZインスタンスにNULL値がある場合、戻されたOracleTimeStampTZ構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZ静的型変換

OracleTimeStampTZ静的型変換を、表14-123にリストします。

表14-123 OracleTimeStampTZ静的型変換

演算子

説明

explicit operator OracleTimeStampTZ

インスタンス値をOracleTimeStampTZ構造に変換します(オーバーロード)

implicit operator OracleTimeStampTZ

インスタンス値をOracleTimeStampTZ構造に変換します(オーバーロード)

explicit operator DateTime

OracleTimeStampTZ値を現行のタイムゾーンのDateTime構造に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

explicit operator OracleTimeStampTZ

explicit operator OracleTimeStampTZは、インスタンス値をOracleTimeStampTZ構造に変換します。

オーバーロード・リスト:

- explicit operator OracleTimeStampTZ(OracleTimeStamp)
この静的型変換演算子は、OracleTimeStamp値をOracleTimeStampTZ構造に変換します。

- explicit operator OracleTimeStampTZ(OracleTimeStampLTZ)
この静的型変換演算子は、OracleTimeStampLTZ値をOracleTimeStampTZ構造に変換します。

- explicit operator OracleTimeStampTZ(string)
この静的型変換演算子は、指定された文字列の値をOracleTimeStampTZ構造に変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

explicit operator OracleTimeStampTZ(OracleTimeStamp)

この静的型変換演算子は、OracleTimeStamp値をOracleTimeStampTZ構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStampTZ(OracleTimeStamp value1);

パラメータ

- value1
OracleTimeStamp

戻り値

戻されたOracleTimeStampTZには、OracleTimeStampからの日付および時間と、スレッドのOracleGlobalization.TimeZoneからのタイムゾーンが含まれています。

備考

OracleTimeStamp構造のOracleTimeStampTZ構造への変換に、スレッドのOracleGlobalization.TimeZoneが使用されます。

OracleTimeStamp構造にNULL値がある場合、戻されたOracleTimeStampTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

explicit operator OracleTimeStampTZ(OracleTimeStampLTZ)

この静的型変換演算子は、OracleTimeStampLTZ値をOracleTimeStampTZ構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStampTZ(OracleTimeStampLTZ value1);

パラメータ

- value1
OracleTimeStampLTZ

戻り値

戻されたOracleTimeStampTZには、OracleTimeStampLTZからの日付および時間と、スレッドのOracleGlobalization.TimeZoneからのタイムゾーンが含まれています。

備考

OracleTimeStampLTZ構造にNULL値がある場合、戻されたOracleTimeStampTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

explicit operator OracleTimeStampTZ(string)

この静的型変換演算子は、指定された文字列の値をOracleTimeStampTZ構造に変換します。

宣言

// C#
public static explicit operator OracleTimeStampTZ(string tsStr);

パラメータ

- tsStr
OracleのTIMESTAMP WITH TIME ZONEを表す文字列

戻り値

OracleTimeStampTZ値

例外

ArgumentException - tsStrがOracleのTIMESTAMP WITH TIME ZONEを表す文字列として無効であるか、tsStrがOracle NLS_TIMESTAMP_TZ_FORMATパラメータを表すスレッドのOracleGlobalization.TimeStampTZFormatプロパティによって指定されたタイムスタンプ書式ではありません。

備考

月および日付に使用されている名称および略称は、スレッドのOracleGlobalizationオブジェクトのDateLanguageおよびCalendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class OracleTimeStampTZSample
{
static void Main()
{
// Set the nls_timestamp_tz_format for the explicit operator
// OracleTimeStampTZ(string)
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeStampTZFormat = "DD-MON-YYYY HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// construct OracleTimeStampTZ from a string using the format specified.
OracleTimeStampTZ tstz = new OracleTimeStampTZ("11-NOV-1999" +
"11:02:33.444 AM US/Pacific");

// Set the nls_timestamp_tz_format for the ToString() method
info.TimeStampTZFormat = "YYYY-MON-DD HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);
Console.WriteLine(tstz.ToString());
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

implicit operator OracleTimeStampTZ

implicit operator OracleTimeStampTZは、DateTime構造をOracleTimeStampTZ構造に変換します。

オーバーロード・リスト:

- implicit operator OracleTimeStampTZ(OracleDate)
この静的型変換演算子は、OracleDate値をOracleTimeStampTZ構造に変換します。

- implicit operator OracleTimeStampTZ(DateTime)
この静的型変換演算子は、DateTime構造をOracleTimeStampTZ構造に変換します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

implicit operator OracleTimeStampTZ(OracleDate)

この静的型変換演算子は、OracleDate値をOracleTimeStampTZ構造に変換します。

宣言

// C#
public static implicit operator OracleTimeStampTZ(OracleDate value1);

パラメータ

- value1
OracleDate

戻り値

戻されたOracleTimeStampTZには、OracleDateからの日付および時間と、スレッドのOracleGlobalization.TimeZoneからのタイムゾーンが含まれています。

備考

OracleDate構造のOracleTimeStampTZ構造への変換に、スレッドのOracleGlobalization.TimeZoneが使用されます。OracleDate構造にNULL値がある場合、戻されたOracleTimeStampTZ構造にもNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

implicit operator OracleTimeStampTZ(DateTime)

この静的型変換演算子は、DateTime構造をOracleTimeStampTZ構造に変換します。

宣言

// C#
public static implicit operator OracleTimeStampTZ (DateTime value1);

パラメータ

- value1
DateTime構造

戻り値

戻されたOracleTimeStampTZには、DateTimeからの日付および時間と、スレッドのOracleGlobalization.TimeZoneからのタイムゾーンが含まれています。

備考

DateTime構造のOracleTimeStampTZ構造への変換に、スレッドのOracleGlobalization.TimeZoneが使用されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

explicit operator DateTime

この静的型変換演算子は、OracleTimeStampTZ値をDateTime構造に変換し、タイムゾーン情報を切り捨てます。

宣言

// C#
public static explicit operator DateTime(OracleTimeStampTZ value1);

パラメータ

- value1
OracleTimeStampTZ

戻り値

現行インスタンスでの日付および時間を含むDateTimeですが、現行インスタンスのタイムゾーン情報は切り捨てられています。

例外

OracleNullValueException - OracleTimeStampTZ構造にNULL値があります。

備考

OracleTimeStampTZ値の精度が変換中に失われる場合があり、現行インスタンスのタイムゾーン情報は切り捨てられます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZプロパティ

OracleTimeStampTZプロパティを、表14-124にリストします。

表14-124 OracleTimeStampTZプロパティ

プロパティ

説明

BinData

OracleのTIMESTAMP WITH TIME ZONEをOracleの内部書式で表すバイトの配列を戻します

Day

OracleTimeStampTZの日のコンポーネントを現行のタイムゾーンで指定します

IsNull

現行インスタンスにNULL値があるかどうかを示します

Hour

OracleTimeStampTZの時間のコンポーネントを現行のタイムゾーンで指定します

Millisecond

OracleTimeStampTZのミリ秒のコンポーネントを現行のタイムゾーンで指定します

Minute

OracleTimeStampTZの分のコンポーネントを現行のタイムゾーンで指定します

Month

OracleTimeStampTZの月のコンポーネントを現行のタイムゾーンで指定します

Nanosecond

OracleTimeStampTZのナノ秒のコンポーネントを現行のタイムゾーンで指定します

Second

OracleTimeStampTZの秒のコンポーネントを現行のタイムゾーンで指定します

TimeZone

OracleTimeStampTZインスタンスのタイムゾーンを戻します

Value

OracleTimeStampTZ構造に格納されている日付および時間を現行のタイムゾーンで戻します

Year

OracleTimeStampTZの年コンポーネントを指定します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

BinData

このプロパティは、OracleのTIMESTAMP WITH TIME ZONEをOracleの内部書式で表すバイトの配列を戻します。

宣言

// C#
public byte[] BinData {get;}

プロパティ値

OracleのTIMESTAMP WITH TIME ZONEをOracleの内部書式で表す指定されたバイト配列です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Day

このプロパティは、OracleTimeStampTZの日のコンポーネントを現行のタイムゾーンで指定します。

宣言

// C#
public int Day{get;}

プロパティ値

日を表す数値。Dayの範囲は(1から31)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

IsNull

このプロパティは現行インスタンスにNULL値があるかどうかを示します。

宣言

// C#
public bool IsNull{get;}

プロパティ値

現行インスタンスにNULL値がある場合はtrueを戻します。それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Hour

このプロパティは、OracleTimeStampTZの時間のコンポーネントを現行のタイムゾーンで指定します。

宣言

// C#
public int Hour{get;}

プロパティ値

時間を表す数値。Hourの範囲は(0から23)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Millisecond

このプロパティは、OracleTimeStampTZのミリ秒のコンポーネントを現行のタイムゾーンで取得します。

宣言

// C#
public double Millisecond{get;}

プロパティ値

ミリ秒を表す数値。Millisecondの範囲は(0から999.999999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Minute

このプロパティは、OracleTimeStampTZの分のコンポーネントを現行のタイムゾーンで取得します。

宣言

// C#
public int Minute{get;}

プロパティ値

分を表す数値。Minuteの範囲は(0から59)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Month

このプロパティは、OracleTimeStampTZの月のコンポーネントを現行のタイムゾーンで取得します。

宣言

// C#
public int Month{get;}

プロパティ値

月を表す数値。Monthの範囲は(1から12)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Nanosecond

このプロパティは、OracleTimeStampTZのナノ秒のコンポーネントを現行のタイムゾーンで取得します。

宣言

// C#
public int Nanosecond{get;}

プロパティ値

ナノ秒を表す数値。Nanosecondの範囲は(0から999999999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Second

このプロパティは、OracleTimeStampTZの秒のコンポーネントを現行のタイムゾーンで取得します。

宣言

// C#
public int Second{get;}

プロパティ値

秒を表す数値。Secondの範囲は(0から59)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

TimeZone

このプロパティは、OracleTimeStampTZインスタンスのタイムゾーンを戻します。

宣言

// C#
public string TimeZone{get;}

プロパティ値

タイムゾーンを表す文字列

備考

コンストラクタにタイムゾーンが指定されていない場合、このプロパティはデフォルトでスレッドのOracleGlobalization.TimeZoneに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

Value

このプロパティは、OracleTimeStampTZ構造に格納されている日付および時間を現行のタイムゾーンで戻します。

宣言

// C#
public DateTime Value{get;}

プロパティ値

現行のタイムゾーンでのDateTime

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Year

このプロパティは、OracleTimeStampTZの年のコンポーネントを現行のタイムゾーンで設定します。

宣言

// C#
public int Year{get;}

プロパティ値

年を表す数値。Yearの範囲は(-4712から9999)です。

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

OracleTimeStampTZメソッド

OracleTimeStampTZメソッドを、表14-125にリストします。

表14-125 OracleTimeStampTZメソッド

メソッド

説明

AddDays

指定された日数を現行インスタンスに追加します

AddHours

指定された時間数を現行インスタンスに追加します

AddMilliseconds

指定されたミリ秒数を現行インスタンスに追加します

AddMinutes

指定された分数を現行インスタンスに追加します

AddMonths

指定された月数を現行インスタンスに追加します

AddNanoseconds

指定されたナノ秒数を現行インスタンスに追加します

AddSeconds

指定された秒数を現行インスタンスに追加します

AddYears

指定された年数を現行インスタンスに追加します

CompareTo

現行のOracleTimeStampTZインスタンスをオブジェクトと比較し、相対値を表す整数を戻します

Equals

オブジェクトに現行のOracleTimeStampTZインスタンスと同じ日時があるかどうかを判別します(オーバーロード)

GetDaysBetween

現行インスタンスからOracleTimeStampTZを減算し、その間隔を表すOracleIntervalDSを戻します

GetHashCode

OracleTimeStampTZインスタンスのハッシュ・コードを戻します

GetTimeZoneOffset

現行のOracleTimeStampTZのタイムゾーン情報を時間と分で取得します

GetYearsBetween

現行インスタンスからOracleTimeStampTZを引き、その間隔を表すOracleIntervalYMを戻します

GetType

System.Objectからの継承

ToLocalTime

現行のOracleTimeStampTZインスタンスをローカル時間に変換します

ToOracleDate

現行のOracleTimeStampTZ構造をOracleDate構造に変換します

ToOracleTimeStampLTZ

現行のOracleTimeStampTZ構造をOracleTimeStampLTZ構造に変換します

ToOracleTimeStamp

現行のOracleTimeStampTZ構造をOracleTimeStamp構造に変換します

ToString

現行のOracleTimeStampTZ構造を文字列に変換します

ToUniversalTime

現行の日時を協定世界時(UTC)に変換します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddDays

このメソッドは、現行インスタンスに指定された日数を加えます。

宣言

// C#
public OracleTimeStampTZ AddDays(double days);

パラメータ

- days
指定された日数。範囲は(-1,000,000,000 < days < 1,000,000,000)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddHours

このメソッドは、現行インスタンスに指定された時間数を加えます。

宣言

// C#
public OracleTimeStampTZ AddHours(double hours);

パラメータ

- hours
指定された時間数。範囲は(-24,000,000,000 < hours < 24,000,000,000)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddMilliseconds

このメソッドは、現行インスタンスに指定されたミリ秒数を加えます。

宣言

// C#
public OracleTimeStampTZ AddMilliseconds(double milliseconds);

パラメータ

- milliseconds
指定されたミリ秒数。範囲は(-8.64 * 1016< milliseconds < 8.64 * 1016)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddMinutes

このメソッドは、現行インスタンスに指定された分数を加えます。

宣言

// C#
public OracleTimeStampTZ AddMinutes(double minutes);

パラメータ

- minutes
指定された分数。範囲は(-1,440,000,000,000 < minutes < 1,440,000,000,000)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddMonths

このメソッドは、現行インスタンスに指定された月数を加えます。

宣言

// C#
public OracleTimeStampTZ AddMonths(long months);

パラメータ

- months
指定された月数。範囲は(-12,000,000,000 < months < 12,000,000,000)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddNanoseconds

このメソッドは、現行インスタンスに指定されたナノ秒数を加えます。

宣言

// C#
public OracleTimeStampTZ AddNanoseconds(long nanoseconds);

パラメータ

- nanoseconds
指定されたナノ秒数

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddSeconds

このメソッドは、現行インスタンスに指定された秒数を加えます。

宣言

// C#
public OracleTimeStampTZ AddSeconds(double seconds);

パラメータ

- seconds
指定された秒数。範囲は(-8.64 * 1013< seconds < 8.64 * 1013)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

AddYears

このメソッドは、現行インスタンスに指定された年数を加えます。

宣言

// C#
public OracleTimeStampTZ AddYears(int years);

パラメータ

- years
指定された年数。範囲は(-999,999,999 <= years < = 999,999,999)です。

戻り値

OracleTimeStampTZ

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

ArgumentOutofRangeException - 引数値が指定範囲を超えています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

CompareTo

このメソッドは現行のOracleTimeStampTZインスタンスをオブジェクトと比較し、これらの相対値を表す整数を戻します。

宣言

// C#
public int CompareTo(object obj);

パラメータ

- obj
現行のOracleTimeStampTZインスタンスと比較されるオブジェクト

戻り値

メソッドが戻す数値は次のとおりです。

ゼロ未満:現行のOracleTimeStampTZインスタンス値がobj値より小さい場合

ゼロ:現行のOracleTimeStampTZインスタンス値がobj値と等しい場合

ゼロ超過:現行のOracleTimeStampTZインスタンス値がobj値より大きい場合

実装

IComparable

例外

ArgumentException - objがタイプOracleTimeStampTZではありません。

備考

次のルールが、このメソッドの動作に適用されます。

- 比較はOracleTimeStampTZ間で行う必要があります。たとえば、OracleTimeStampTZインスタンスとOracleBinaryインスタンスを比較することはできません。OracleTimeStampTZが別のタイプと比較されると、ArgumentExceptionがスローされます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

Equals

Objectをオーバーライドします。

このメソッドは、オブジェクトの日付と時間が現行のOracleTimeStampTZインスタンスのものと同じかどうかを判断します。

宣言

// C#
public override bool Equals(object obj);

パラメータ

- obj
現行のOracleTimeStampTZインスタンスと比較されるオブジェクト

戻り値

objがタイプOracleTimeStampTZであり、同じ日付と時間を表す場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

次のルールが、このメソッドの動作に適用されます。

- 値を持つすべてのOracleTimeStampTZは、NULL値を持つOracleTimeStampTZより大きくなります。

- NULL値を含む2つのOracleTimeStampTZは等しくなります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GetDaysBetween

このメソッドはOracleTimeStampTZ値を現行インスタンスから差し引き、時間間隔を表すOracleIntervalDSを戻します。

宣言

// C#
public OracleIntervalDS GetDaysBetween(OracleTimeStampTZ value1);

パラメータ

- value1
差し引かれるOracleTimeStampTZ値

戻り値

2つのOracleTimeStampTZ値の間隔を表すOracleIntervalDS

備考

現行のインスタンスまたはパラメータのいずれかにNULL値がある場合、戻されたOracleIntervalDSにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GetHashCode

Objectをオーバーライドします。

このメソッドは、OracleTimeStampTZインスタンスのハッシュ・コードを戻します。

宣言

// C#
public override int GetHashCode();

戻り値

ハッシュ・コードを表す数値

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GetTimeZoneOffset

このメソッドは、現行のOracleTimeStampTZのタイムゾーンの時間と分の部分を取得します。

宣言

// C#
public TimeSpan GetTimeZoneOffset();

戻り値

TimeSpan

例外

OracleNullValueException - 現行インスタンスにはNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

GetYearsBetween

このメソッドはOracleTimeStampTZ値を現行インスタンスから差し引き、時間間隔を表すOracleIntervalYMを戻します。

宣言

// C#
public OracleIntervalYM GetYearsBetween(OracleTimeStampTZ val);

パラメータ

- val
差し引かれるOracleTimeStampTZ値

戻り値

2つのOracleTimeStampTZ値の間隔を表すOracleIntervalYM

備考

現行のインスタンスまたはパラメータのいずれかにNULL値がある場合、戻されたOracleIntervalYMにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

ToLocalTime

このメソッドは、現行のOracleTimeStampTZインスタンスをローカル時間に変換します。

宣言

// C#
public OracleTimeStampLTZ ToLocalTime();

戻り値

日付および時間を含む。OracleTimeStampLTZ現行インスタンスのクライアントのローカル・タイムゾーンに正規化されています。

備考

現行インスタンスにNULL値がある場合、戻されたOracleTimeStampLTZにNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

ToOracleDate

このメソッドは、現行のOracleTimeStampTZ構造をOracleDate構造に変換します。

宣言

// C#
public OracleDate ToOracleDate();

戻り値

戻されたOracleDateには現行インスタンスでの日付および時間が含まれていますが、現行インスタンスのタイムゾーン情報は切り捨てられています。

備考

OracleTimeStampTZ値の精度が変換中に失われる場合があり、現行インスタンスのタイムゾーン情報は切り捨てられます。

現行インスタンスにNULL値がある場合、戻されたOracleDate構造の値にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

ToOracleTimeStampLTZ

このメソッドは、現行のOracleTimeStampTZ構造をOracleTimeStampLTZ構造に変換します。

宣言

// C#
public OracleTimeStampLTZ ToOracleTimeStampLTZ();

戻り値

戻されたOracleTimeStampLTZには日付および時間が含まれています。現行インスタンスのクライアントのローカル・タイムゾーンに正規化されています。

備考

現行インスタンスの値にNULL値がある場合、戻されたOracleTimeStampLTZ構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

ToOracleTimeStamp

このメソッドは、現行のOracleTimeStampTZ構造をOracleTimeStamp構造に変換します。

宣言

// C#
public OracleTimeStamp ToOracleTimeStamp();

戻り値

戻されたOracleTimeStampには現行インスタンスでの日付および時間が含まれていますが、タイムゾーン情報は切り捨てられています。

備考

現行インスタンスの値にNULL値がある場合、戻されたOracleTimeStamp構造にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

ToString

Objectをオーバーライドします。

このメソッドは、現行のOracleTimeStampTZ構造を文字列に変換します。

宣言

// C#
public override string ToString();

戻り値

現行のOracleTimeStampTZ構造と同じ日付と時刻を表すstring

備考

戻された値は、スレッドのOracleGlobalization.TimeStampTZFormatプロパティで指定された書式を使用して、OracleTimeStampTZを文字列で表したものです。月および日付に使用されている名称および略称は、スレッドのOracleGlobalization.DateLanguageおよびOracleGlobalization.Calendarプロパティで指定されている言語による表記です。スレッドのグローバリゼーション・プロパティのいずれかがNULLまたは空の文字列に設定されている場合、クライアントのコンピュータの設定が使用されます。

例

// C#

using System;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class ToStringSample
{
static void Main()
{
// Set the nls parameters for the current thread
OracleGlobalization info = OracleGlobalization.GetClientInfo();
info.TimeZone = "US/Eastern";
info.TimeStampFormat = "DD-MON-YYYY HH:MI:SS.FF AM";
info.TimeStampTZFormat = "DD-MON-YYYY HH:MI:SS.FF AM TZR";
OracleGlobalization.SetThreadInfo(info);

// Create an OracleTimeStampTZ in US/Pacific time zone
OracleTimeStampTZ tstz1=new OracleTimeStampTZ("11-NOV-1999 "+
"11:02:33.444 AM US/Pacific");

// Note that ToOracleTimeStampTZ uses the thread's time zone region,
// "US/Eastern"
OracleTimeStamp ts = new OracleTimeStamp("11-NOV-1999 11:02:33.444 AM");
OracleTimeStampTZ tstz2 = ts.ToOracleTimeStampTZ();

// Calculate the difference between tstz1 and tstz2
OracleIntervalDS idsDiff = tstz1.GetDaysBetween(tstz2);

// Prints "US/Pacific"
Console.WriteLine("tstz1.TimeZone = " + tstz1.TimeZone);

// Prints "US/Eastern"
Console.WriteLine("tstz2.TimeZone = " + tstz2.TimeZone);

// Prints 3
Console.WriteLine("idsDiff.Hours = " + idsDiff.Hours);

// Prints 0
Console.WriteLine("idsDiff.Minutes = " + idsDiff.Minutes);
}
}

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

- 「OracleGlobalizationクラス」

- 「グローバリゼーション・サポート」

ToUniversalTime

このメソッドは、現行の日時を協定世界時(UTC)に変換します。

宣言

// C#
public OracleTimeStampTZ ToUniversalTime();

戻り値

OracleTimeStampTZ構造

備考

現行インスタンスにNULL値がある場合、戻されたOracleTimeStampTZ構造の値にNULL値があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTimeStampTZ構造

- OracleTimeStampTZメンバー

INullableインタフェース

INullableインタフェースは、ODP.NETタイプにNULL値があるかどうかを判定するために使用されます。

宣言

// C#
public interface INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- INullableインタフェース・メンバー

- INullableインタフェース・プロパティ

INullableインタフェース・メンバー

INullableメンバーは次の表にリストされています。

INullableインタフェース・プロパティ

INullableインタフェース・プロパティを、表14-126にリストします。

表14-126 INullableインタフェース・プロパティ

パブリック・プロパティ

説明

IsNull

ODP.NETタイプにNULL値があるかどうかを示します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- INullableインタフェース

INullableインタフェース・プロパティ

INullableインタフェース・プロパティを、表14-126にリストします。

表14-127 INullableインタフェース・プロパティ

パブリック・プロパティ

説明

IsNull

ODP.NETタイプにNULL値があるかどうかを示します

IsNull

このプロパティはODP.NETタイプにNULL値があるかどうかを示します。

宣言

// C#
bool IsNull {get;}

プロパティ値

ODP.NETタイプにNULL値がある場合はtrueを戻します。それ以外の場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- INullableインタフェース

- INullableインタフェース・メンバー

15 Oracle Data Provider for .NETタイプの例外

この項では、ODP.NETタイプの例外について説明します。

この章の内容は次のとおりです。

- OracleTypeExceptionクラス

- OracleNullValueExceptionクラス

- OracleTruncateExceptionクラス

OracleTypeExceptionクラス

OracleTypeExceptionは、ODP.NETタイプのクラスで発生する例外を処理するためのベース例外クラスです。

クラスの継承

System.Object

System.Exception

System.SystemException

Oracle.DataAccess.Types.OracleTypeException

宣言

// C#
public class OracleTypeException : SystemException

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionメンバー

- OracleTypeExceptionコンストラクタ

- OracleTypeException静的メソッド

- OracleTypeExceptionプロパティ

- OracleTypeExceptionメソッド

OracleTypeExceptionメンバー

次の表に、OracleTypeExceptionメンバーを示します。

OracleTypeExceptionコンストラクタ

OracleTypeExceptionコンストラクタを、表15-1にリストします。

表15-1 OracleTypeExceptionコンストラクタ

コンストラクタ

説明

OracleTypeExceptionコンストラクタ

OracleTypeExceptionクラスの新規インスタンスを作成します(オーバーロード)

OracleTypeException静的メソッド

OracleTypeException静的メソッドを、表15-2にリストします。

表15-2 OracleTypeException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleTypeExceptionプロパティ

OracleTypeExceptionプロパティを、表15-3にリストします。

表15-3 OracleTypeExceptionプロパティ

プロパティ

説明

HelpLink

System.SystemException.Exceptionからの継承

InnerException

System.SystemException.Exceptionからの継承

Message

例外時に出されるエラー・メッセージを指定します

Source

エラーを生成するデータ・プロバイダの名前を指定します

StackTrace

System.SystemException.Exceptionからの継承

TargetSite

System.SystemException.Exceptionからの継承

OracleTypeExceptionメソッド

OracleTypeExceptionメソッドを、表15-4にリストします。

表15-4 OracleTypeExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.SystemException.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

System.SystemException.Exceptionからの継承

GetType

System.Objectからの継承

ToString

この例外の完全修飾名を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

OracleTypeExceptionコンストラクタ

OracleTypeExceptionコンストラクタでは、OracleTypeExceptionクラスの新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleTypeException(string)
このコンストラクタでは、指定されたエラー・メッセージ、errMessageが含まれる、OracleTypeExceptionクラスの新規インスタンスが作成されます。

- OracleTypeException(SerializationInfo, StreamingContext)
このコンストラクタでは、指定されたシリアライズ情報siおよび指定されたストリーム・コンテキストscを使用して、OracleTypeExceptionクラスの新規インスタンスを作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

OracleTypeException(string)

このコンストラクタでは、指定されたエラー・メッセージ、errMessageが含まれる、OracleTypeExceptionクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleTypeException (string errMessage);

パラメータ

- errMessage
指定されたエラー・メッセージ

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

OracleTypeException(SerializationInfo, StreamingContext)

このコンストラクタでは、指定されたシリアライズ情報siおよび指定されたストリーム・コンテキストscを使用して、OracleTypeExceptionクラスの新規インスタンスを作成します。

宣言

// C#
protected OracleTypeException (SerializationInfo si, StreamingContext sc);

パラメータ

- si
指定されたserialization information。

- sc
指定されたstreaming context。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

OracleTypeException静的メソッド

OracleTypeException静的メソッドを、表15-5にリストします。

表15-5 OracleTypeException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

OracleTypeExceptionプロパティ

OracleTypeExceptionプロパティを、表15-6にリストします。

表15-6 OracleTypeExceptionプロパティ

プロパティ

説明

HelpLink

System.SystemException.Exceptionからの継承

InnerException

System.SystemException.Exceptionからの継承

Message

例外時に出されるエラー・メッセージを指定します

Source

エラーを生成するデータ・プロバイダの名前を指定します

StackTrace

System.SystemException.Exceptionからの継承

TargetSite

System.SystemException.Exceptionからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

Message

Exceptionをオーバーライドします

このプロパティは、例外時に出されるエラー・メッセージを指定します。

宣言

// C#
public override string Message {get;}

プロパティ値

エラー・メッセージ。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

Source

Exceptionをオーバーライドします

このプロパティは、エラーを生成するデータ・プロバイダの名前を指定します。

宣言

// C#
public override string Source {get;}

プロパティ値

Oracle Data Provider for .NET。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

OracleTypeExceptionメソッド

OracleTypeExceptionメソッドを、表15-7にリストします。

表15-7 OracleTypeExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.SystemException.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

System.SystemException.Exceptionからの継承

GetType

System.Objectからの継承

ToString

この例外の完全修飾名を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

ToString

Exceptionをオーバーライドします

このメソッドにより、この例外の完全修飾名、Messageプロパティ内のエラー・メッセージ、InnerException.ToString()メッセージおよびスタック・トレースを戻します。

宣言

// C#
public override string ToString();

戻り値

この例外の完全修飾名を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTypeExceptionクラス

- OracleTypeExceptionメンバー

OracleNullValueExceptionクラス

OracleNullValueExceptionは、NULL値が含まれるODP.NETタイプ構造にアクセスを試みたときに表示される例外を表します。

クラスの継承

System.Object

System.Exception

System.SystemException

System.OracleTypeException

Oracle.DataAccess.Types.OracleNullValueException

宣言

// C#
public sealed class OracleNullValueException : OracleTypeException

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionメンバー

- OracleNullValueExceptionコンストラクタ

- OracleNullValueException静的メソッド

- OracleNullValueExceptionプロパティ

- OracleNullValueExceptionメソッド

OracleNullValueExceptionメンバー

OracleNullValueExceptionメンバーは、次の各表にリストしています。

OracleNullValueExceptionコンストラクタ

OracleNullValueExceptionコンストラクタを、表15-8にリストします。

表15-8 OracleNullValueExceptionコンストラクタ

コンストラクタ

説明

OracleNullValueExceptionコンストラクタ

OracleNullValueExceptionクラスの新規インスタンスを作成します(オーバーロード)

OracleNullValueException静的メソッド

OracleNullValueException静的メソッドを、表15-9にリストします。

表15-9 OracleNullValueException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleNullValueExceptionプロパティ

OracleNullValueExceptionプロパティを、表15-10にリストします。

表15-10 OracleNullValueExceptionプロパティ

プロパティ

説明

HelpLink

System.SystemException.Exceptionからの継承

InnerException

System.SystemException.Exceptionからの継承

Message

OracleTypeExceptionからの継承

Source

OracleTypeExceptionからの継承

StackTrace

System.SystemException.Exceptionからの継承

TargetSite

System.SystemException.Exceptionからの継承

OracleNullValueExceptionメソッド

OracleNullValueExceptionメソッドを、表15-11にリストします。

表15-11 OracleNullValueExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.SystemException.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

System.SystemException.Exceptionからの継承

GetType

System.Objectからの継承

ToString

OracleTypeExceptionからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionクラス

OracleNullValueExceptionコンストラクタ

OracleNullValueExceptionコンストラクタでは、OracleNullValueExceptionクラスの新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleNullValueException()
このコンストラクタでは、デフォルトのプロパティが設定されたOracleNullValueExceptionクラスの新規インスタンスが作成されます。

- OracleNullValueException(string)
このコンストラクタでは、指定されたエラー・メッセージ、errMessageが含まれる、OracleNullValueExceptionクラスの新規インスタンスが作成されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionクラス

- OracleNullValueExceptionメンバー

OracleNullValueException()

このコンストラクタでは、デフォルトのプロパティが設定されたOracleNullValueExceptionクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleNullValueException();

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionクラス

- OracleNullValueExceptionメンバー

OracleNullValueException(string)

このコンストラクタでは、指定されたエラー・メッセージ、errMessageが含まれる、OracleNullValueExceptionクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleNullValueException (string errMessage);

パラメータ

- errMessage
指定されたエラー・メッセージ

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionクラス

- OracleNullValueExceptionメンバー

OracleNullValueException静的メソッド

OracleNullValueException静的メソッドを、表15-12にリストします。

表15-12 OracleNullValueException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionクラス

- OracleNullValueExceptionメンバー

OracleNullValueExceptionプロパティ

OracleNullValueExceptionプロパティを、表15-13にリストします。

表15-13 OracleNullValueExceptionプロパティ

プロパティ

説明

HelpLink

System.SystemException.Exceptionからの継承

InnerException

System.SystemException.Exceptionからの継承

Message

OracleTypeExceptionからの継承

Source

OracleTypeExceptionからの継承

StackTrace

System.SystemException.Exceptionからの継承

TargetSite

System.SystemException.Exceptionからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleNullValueExceptionクラス

- OracleNullValueExceptionメンバー

OracleNullValueExceptionメソッド

OracleNullValueExceptionメソッドを、表15-14にリストします。

表15-14 OracleNullValueExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.SystemException.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

System.SystemException.Exceptionからの継承

GetType

System.Objectからの継承

ToString

OracleTypeExceptionからの継承

OracleTruncateExceptionクラス

OracleTruncateExceptionクラスは、ODP.NETタイプのクラスで切捨てが行われた場合に表示される例外を表します。

クラスの継承

System.Object

System.Exception

System.SystemException

System.OracleTypeException

Oracle.DataAccess.Types.OracleTruncateException

宣言

// C#
public sealed class OracleTruncateException : OracleTypeException

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionメンバー

- OracleTruncateExceptionコンストラクタ

- OracleTruncateException静的メソッド

- OracleTruncateExceptionプロパティ

- OracleTruncateExceptionメソッド

OracleTruncateExceptionメンバー

次の表に、OracleTruncateExceptionメンバーを示します。

OracleTruncateExceptionコンストラクタ

OracleTruncateExceptionコンストラクタを、表15-15にリストします。

表15-15 OracleTruncateExceptionコンストラクタ

コンストラクタ

説明

OracleTruncateExceptionコンストラクタ

OracleTruncateExceptionクラスの新規インスタンスを作成します(オーバーロード)

OracleTruncateException静的メソッド

OracleTruncateException静的メソッドを、表15-16にリストします。

表15-16 OracleTruncateException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleTruncateExceptionプロパティ

OracleTruncateExceptionプロパティを、表15-17にリストします。

表15-17 OracleTruncateExceptionプロパティ

プロパティ

説明

HelpLink

System.SystemException.Exceptionからの継承

InnerException

System.SystemException.Exceptionからの継承

Message

OracleTypeExceptionからの継承

Source

OracleTypeExceptionからの継承

StackTrace

System.SystemException.Exceptionからの継承

TargetSite

System.SystemException.Exceptionからの継承

OracleTruncateExceptionメソッド

OracleTruncateExceptionメソッドを、表15-18にリストします。

表15-18 OracleTruncateExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.SystemException.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

System.SystemException.Exceptionからの継承

GetType

System.Objectからの継承

ToString

OracleTypeExceptionからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

OracleTruncateExceptionコンストラクタ

OracleTruncateExceptionコンストラクタでは、OracleTruncateExceptionクラスの新規インスタンスが作成されます。

オーバーロード・リスト:

- OracleTruncateException()
このコンストラクタでは、デフォルトのプロパティが設定されたOracleTruncateExceptionクラスの新規インスタンスが作成されます。

- OracleTruncateException(string)
このコンストラクタでは、指定されたエラー・メッセージ、errMessageが含まれる、OracleTruncateExceptionクラスの新規インスタンスが作成されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

OracleTruncateException()

このコンストラクタでは、デフォルトのプロパティが設定されたOracleTruncateExceptionクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleTruncateException();

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

OracleTruncateException(string)

このコンストラクタでは、指定されたエラー・メッセージ、errMessageが含まれる、OracleTruncateExceptionクラスの新規インスタンスが作成されます。

宣言

// C#
public OracleTruncateException (string errMessage);

パラメータ

- errMessage
指定されたエラー・メッセージ

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

OracleTruncateException静的メソッド

OracleTruncateException静的メソッドを、表15-19にリストします。

表15-19 OracleTruncateException静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

OracleTruncateExceptionプロパティ

OracleTruncateExceptionプロパティを、表15-20にリストします。

表15-20 OracleTruncateExceptionプロパティ

プロパティ

説明

HelpLink

System.SystemException.Exceptionからの継承

InnerException

System.SystemException.Exceptionからの継承

Message

OracleTypeExceptionからの継承

Source

OracleTypeExceptionからの継承

StackTrace

System.SystemException.Exceptionからの継承

TargetSite

System.SystemException.Exceptionからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

OracleTruncateExceptionメソッド

OracleTruncateExceptionメソッドを、表15-21にリストします。

表15-21 OracleTruncateExceptionメソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

GetBaseException

System.SystemException.Exceptionからの継承

GetHashCode

System.Objectからの継承

GetObjectData

System.SystemException.Exceptionからの継承

GetType

System.Objectからの継承

ToString

OracleTypeExceptionからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleTruncateExceptionクラス

- OracleTruncateExceptionメンバー

16 Oracle Data Provider for .NETのUDT関連クラス

この章では、Oracleユーザー定義のデータ型(UDT)のサポートを提供する、Oracle Data Provider for .NETのオブジェクト関連クラスおよびインタフェースについて説明します。

サンプルはORACLE_BASE\ORACLE_HOME\ODP.NET\Samples\UDTディレクトリに提供されています。

- OracleCustomTypeMappingAttributeクラス

- OracleObjectMappingAttributeクラス

- OracleArrayMappingAttributeクラス

- IOracleCustomTypeインタフェース

- IOracleCustomTypeFactoryインタフェース

- IOracleArrayTypeFactoryインタフェース

- OracleUdtクラス

- OracleRefクラス

- OracleUdtFetchOptionの列挙

- OracleUdtStatusの列挙

OracleCustomTypeMappingAttributeクラス

OracleCustomTypeMappingAttributeクラスは、カスタム・タイプがOracle UDTを表すために使用されるとき、カスタム・タイプ・ファクトリ・クラスまたはODP.NETで使用される情報の構造体をマークするために使用されます。

クラスの継承

System.Object

System.Attribute

System.OracleCustomTypeMappingAttribute

宣言

// C#
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct,
AllowMultiple=false, Inherited=true)]
public sealed class OracleCustomTypeMappingAttribute : Attribute

備考

OracleCustomTypeMapping属性をカスタム・タイプ・ファクトリ・クラスで指定して、対応するカスタム・タイプを表すOracle UDTを示す必要があります。Oracle UDTはschema_name.type_nameの書式で指定できます。

アプリケーションが使用する各Oracle UDTに対して、カスタム・タイプ・ファクトリは一意である必要があります。

- Oracleオブジェクト型
カスタム・タイプ・ファクトリは、その他のOracleオブジェクト型を表すのに使用できないカスタム・タイプを戻します。

- Oracleコレクション型
カスタム・タイプ・ファクトリは、その他のOracleコレクション型が使用できるカスタム・タイプを戻す場合があります。配列タイプがOracleコレクションを表すために使用されるとき、つまりint[]がNUMBERのコレクションを表すときに共通なことです。

OracleCustomTypeMappingAttributeが指定されていない場合、カスタム・タイプ・マッピングはXML構成ファイル(Windowsアプリケーションにはapp.config、Webアプリケーションにはweb.configおよびmachine.configなど)から指定する必要があります

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeメンバー

- OracleCustomTypeMappingAttributeコンストラクタ

- OracleCustomTypeMappingAttribute静的メソッド

- OracleCustomTypeMappingAttributeメソッド

OracleCustomTypeMappingAttributeメンバー

OracleCustomTypeMappingAttributeメンバーは次の表にリスト表示されています。

OracleCustomTypeMappingAttributeコンストラクタ

OracleCustomTypeMappingAttributeコンストラクタを、表16-1に表示します。

表16-1 OracleCustomTypeMappingAttributeコンストラクタ

コンストラクタ

説明

OracleCustomTypeMappingAttributeコンストラクタ

OracleCustomTypeMappingAttributeクラスの新規インスタンスをインスタンス化します

OracleCustomTypeMappingAttribute静的メソッド

OracleCustomTypeMappingAttribute静的メソッドを、表16-2にリストします。

表16-2 OracleCustomTypeMappingAttribute静的メソッド

メソッド

説明

Equals

System.Attributeからの継承

GetCustomAttribute

System.Attributeからの継承

GetCustomAttributes

System.Attributeからの継承

IsDefined

System.Attributeからの継承

ReferenceEquals

System.Attributeからの継承

OracleCustomTypeMappingAttributeプロパティ

OracleCustomTypeMappingAttributeプロパティを、表16-3にリストします。

表16-3 OracleCustomTypeMappingAttributeプロパティ

プロパティ

説明

UdtTypeName

カスタム・クラスをマップするOracleユーザー定義のタイプ名を指定します

TypeId

System.Attributeからの継承

OracleCustomTypeMappingAttributeメソッド

OracleCustomTypeMappingAttributeメソッドを、表16-4にリストします。

表16-4 OracleCustomTypeMappingAttributeメソッド

メソッド

説明

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ToString

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

OracleCustomTypeMappingAttributeコンストラクタ

OracleCustomTypeMappingAttributeコンストラクタでは、OracleCustomTypeMappingAttributeクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleCustomTypeMappingAttribute(string)
このコンストラクタでは、指定されたOracleユーザー定義のタイプ名を使用してOracleCustomTypeMappingAttributeを作成および初期化します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメソッド

OracleCustomTypeMappingAttribute(string)

このコンストラクタでは、指定されたOracleユーザー定義のタイプ名を使用してOracleCustomTypeMappingAttributeを作成および初期化します。

宣言

// C#
public OracleCustomTypeMappingAttribute(string udtTypeName)

パラメータ

- udtTypeName
カスタム・クラスをマップするOracleユーザー定義のタイプ名。

備考

udtTypeNameパラメータは大/小文字を区別します。udtTypeNameはschema_name.type_nameの形式で指定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメンバー

OracleCustomTypeMappingAttribute静的メソッド

OracleCustomTypeMappingAttribute静的メソッドを、表16-5にリストします。

表16-5 OracleCustomTypeMappingAttribute静的メソッド

メソッド

説明

Equals

System.Attributeからの継承

GetCustomAttribute

System.Attributeからの継承

GetCustomAttributes

System.Attributeからの継承

IsDefined

System.Attributeからの継承

ReferenceEquals

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメンバー

OracleCustomTypeMappingAttributeプロパティ

OracleCustomTypeMappingAttributeプロパティを、表16-6にリストします。

表16-6 OracleCustomTypeMappingAttributeプロパティ

プロパティ

説明

UdtTypeName

カスタム・クラスをマップするOracleユーザー定義のタイプ名を指定します

TypeId

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメンバー

UdtTypeName

このプロパティは、カスタム・クラスをマップするOracleユーザー定義のタイプ名を指定します。

宣言

// C#
public string UdtTypeName {get; set;}

プロパティ値

Oracleユーザー定義のタイプ名を表す文字列。

備考

UdtTypeNameパラメータは大/小文字を区別します。schema_name.type_nameの形式で指定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメンバー

OracleCustomTypeMappingAttributeメソッド

OracleCustomTypeMappingAttributeメソッドを、表16-7にリストします。

表16-7 OracleCustomTypeMappingAttributeメソッド

メソッド

説明

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ToString

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleCustomTypeMappingAttributeクラス

- OracleCustomTypeMappingAttributeメンバー

OracleObjectMappingAttributeクラス

OracleObjectMappingAttributeクラスは、カスタム・タイプがOracleオブジェクト型を表す際に、ODP.NETが使用する情報でカスタム・クラス・フィールドまたはプロパティをマークします。

クラスの継承

System.Object

System.Attribute

System.OracleObjectMappingAttribute

宣言

// C#
[AttributeUsageAttribute(AttributeTargets.Field|AttributeTargets.Property, AllowMultiple=false, Inherited=true)]

public sealed class OracleObjectMappingAttribute : Attribute

備考

OracleObjectMappingAttributeは、Oracleオブジェクト型を表すカスタム・タイプのメンバーで指定されます。この属性は、カスタム・クラス・フィールドまたはプロパティがマップするOracleオブジェクト内の属性名またはゼロベースの索引を指定する必要があります。また、これにより、カスタム・タイプは、Oracleオブジェクト型とは異なるフィールド名またはプロパティ名を宣言できます。

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeメンバー

- OracleObjectMappingAttributeコンストラクタ

- OracleObjectMappingAttribute静的メソッド

- OracleObjectMappingAttributeプロパティ

- OracleObjectMappingAttributeメソッド

OracleObjectMappingAttributeメンバー

OracleObjectMappingAttributeメンバーは次の表にリストされています。

OracleObjectMappingAttributeコンストラクタ

OracleObjectMappingAttributeコンストラクタを、表16-8に示します。

表16-8 OracleObjectMappingAttributeコンストラクタ

コンストラクタ

説明

OracleObjectMappingAttributeコンストラクタ

OracleObjectMappingAttributeクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleObjectMappingAttribute静的メソッド

OracleObjectMappingAttribute静的メソッドを、表16-9にリストします。

表16-9 OracleObjectMappingAttribute静的メソッド

メソッド

説明

Equals

System.Attributeからの継承

GetCustomAttribute

System.Attributeからの継承

GetCustomAttributes

System.Attributeからの継承

IsDefined

System.Attributeからの継承

ReferenceEquals

System.Attributeからの継承

OracleObjectMappingAttributeプロパティ

OracleObjectMappingAttributeプロパティを、表16-10にリストします。

表16-10 OracleObjectMappingAttributeプロパティ

プロパティ

説明

AttributeIndex

取得する必要のあるOracleオブジェクトの属性の索引を指定します

AttributeName

取得の必要があるOracleオブジェクト属性の名前を指定します

TypeId

System.Attributeからの継承

OracleObjectMappingAttributeメソッド

OracleObjectMappingAttributeメソッドを、表16-11にリストします。

表16-11 OracleObjectMappingAttributeメソッド

メソッド

説明

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ToString

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

OracleObjectMappingAttributeコンストラクタ

OracleObjectMappingAttributeコンストラクタは、OracleObjectMappingAttributeクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleObjectMappingAttribute(string)
このコンストラクタでは、指定したOracleオブジェクトの属性名を使用してOracleObjectMappingAttributeオブジェクトを作成し初期化します。

- OracleObjectMappingAttribute(int)
このコンストラクタでは、指定したOracleオブジェクトの属性索引を使用してOracleObjectMappingAttributeを作成し初期化します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

OracleObjectMappingAttribute(string)

このコンストラクタでは、指定したOracleオブジェクトの属性名を使用してOracleObjectMappingAttributeオブジェクトを作成し初期化します。

宣言

// C#
public OracleObjectMappingAttribute(string attrName);

パラメータ

- attrName
マップするOracleオブジェクトの属性名。

備考

attrNameパラメータは大/小文字を区別します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

OracleObjectMappingAttribute(int)

このコンストラクタでは、指定したOracleオブジェクトの属性索引を使用してOracleObjectMappingAttributeオブジェクトを作成し初期化します。

宣言

// C#
public OracleObjectMappingAttribute(int attrIndex);

パラメータ

- attrIndex
マップするゼロベースのOracleオブジェクトの属性の索引。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

OracleObjectMappingAttribute静的メソッド

OracleObjectMappingAttribute静的メソッドを、表16-12にリストします。

表16-12 OracleObjectMappingAttribute静的メソッド

メソッド

説明

Equals

System.Attributeからの継承

GetCustomAttribute

System.Attributeからの継承

GetCustomAttributes

System.Attributeからの継承

IsDefined

System.Attributeからの継承

ReferenceEquals

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

OracleObjectMappingAttributeプロパティ

OracleObjectMappingAttributeプロパティを、表16-13にリストします。

表16-13 OracleObjectMappingAttributeプロパティ

プロパティ

説明

AttributeIndex

取得する必要のあるOracleオブジェクトの属性の索引を指定します

AttributeName

取得する必要のあるOracleオブジェクトの属性名を指定します

TypeId

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

AttributeIndex

このプロパティは、取得する必要のあるOracleオブジェクトの属性の索引を指定します。

宣言

// C#
public int AttributeIndex {get;}

プロパティ値

ゼロベースのOracleオブジェクトのタイプ属性の索引。

備考

AttributeIndexプロパティは、カスタム・クラス・フィールドまたはプロパティにマップするOracleオブジェクト型属性の索引を指定します。これにより、カスタム・クラスでOracleオブジェクトと異なるフィールドまたはプロパティ名を宣言できます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

AttributeName

このプロパティは、取得する必要のあるOracleオブジェクトの属性名を指定します。

宣言

// C#
public string AttributeName {get;}

プロパティ値

Oracleオブジェクト型の属性名。

備考

AttributeNameプロパティは、カスタム・クラス・フィールドまたはプロパティにマップするOracleオブジェクト型の属性名を指定します。これによりカスタム・クラスでOracleオブジェクトと異なるフィールドまたはプロパティ名を宣言できます。

指定した属性名は大/小文字を区別します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

OracleObjectMappingAttributeメソッド

OracleObjectMappingAttributeメソッドを、表16-14にリストします。

表16-14 OracleObjectMappingAttributeメソッド

メソッド

説明

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ToString

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleObjectMappingAttributeクラス

- OracleObjectMappingAttributeメンバー

OracleArrayMappingAttributeクラス

OracleArrayMappingAttributeクラスは、カスタム・タイプがOracleコレクション型を表すとき、ODP.NETが使用する情報でカスタム・クラスのフィールドまたはプロパティをマークする必要があります。

クラスの継承

System.Object

System.Attribute

System.OracleArrayMappingAttribute

宣言

[AttributeUsageAttribute(AttributeTargets.Field|AttributeTargets.Property, AllowMultiple=false, Inherited=true)]

// C#
public sealed class OracleArrayMappingAttribute : Attribute

備考

カスタム・タイプがOracleコレクションを表す場合、OracleArrayMappingAttributeオブジェクトを指定する必要があります。この属性はコレクション要素を保存するカスタム・クラス・メンバーにのみ適用されます。

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeメンバー

- OracleArrayMappingAttributeコンストラクタ

- OracleArrayMappingAttribute静的メソッド

- OracleArrayMappingAttributeプロパティ

- OracleArrayMappingAttributeメソッド

OracleArrayMappingAttributeメンバー

OracleArrayMappingAttributeメンバーは次の表にリストされています。

OracleArrayMappingAttributeコンストラクタ

OracleArrayMappingAttributeコンストラクタを、表16-15にリストします。

表16-5 OracleArrayMappingAttributeコンストラクタ

コンストラクタ

説明

OracleArrayMappingAttributeコンストラクタ

OracleArrayMappingAttributeクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleArrayMappingAttribute静的メソッド

OracleArrayMappingAttribute静的メソッドを、表16-16にリストします。

表16-16 OracleArrayMappingAttribute静的メソッド

メソッド

説明

Equals

System.Attributeからの継承

GetCustomAttribute

System.Attributeからの継承

GetCustomAttributes

System.Attributeからの継承

IsDefined

System.Attributeからの継承

ReferenceEquals

System.Attributeからの継承

OracleArrayMappingAttributeプロパティ

OracleArrayMappingAttributeプロパティを、表16-17にリストします。

表16-17 OracleArrayMappingAttributeプロパティ

プロパティ

説明

TypeId

System.Attributeからの継承

OracleArrayMappingAttributeメソッド

OracleArrayMappingAttributeメソッドを、表16-18にリストします。

表16-18 OracleArrayMappingAttributeメソッド

メソッド

説明

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ToString

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeクラス

OracleArrayMappingAttributeコンストラクタ

OracleArrayMappingAttributeコンストラクタでは、OracleArrayMappingAttributeクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleArrayMappingAttribute()
このコンストラクタでは、OracleArrayMappingAttributeオブジェクトを作成および初期化します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeクラス

- OracleArrayMappingAttributeメンバー

OracleArrayMappingAttribute()

このコンストラクタでは、OracleArrayMappingAttributeオブジェクトを作成および初期化します。

宣言

// C#
public OracleArrayMappingAttribute();

備考

カスタム・クラスがOracleコレクション型を表す場合は、OracleArrayMappingAttributeオブジェクトを適用して、コレクション要素を格納するカスタム・クラス・フィールドまたはプロパティを指定する必要があります。

OracleArrayMappingAttributeは、カスタム・クラス内の1つのフィールドまたはプロパティにのみ適用できます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeクラス

- OracleArrayMappingAttributeメンバー

OracleArrayMappingAttribute静的メソッド

OracleArrayMappingAttribute静的メソッドを、表16-19にリストします。

表16-19 OracleArrayMappingAttribute静的メソッド

メソッド

説明

Equals

System.Attributeからの継承

GetCustomAttribute

System.Attributeからの継承

GetCustomAttributes

System.Attributeからの継承

IsDefined

System.Attributeからの継承

ReferenceEquals

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeクラス

- OracleArrayMappingAttributeメンバー

OracleArrayMappingAttributeプロパティ

OracleArrayMappingAttributeプロパティを、表16-20にリストします。

表16-20 OracleArrayMappingAttributeプロパティ

プロパティ

説明

TypeId

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeクラス

- OracleArrayMappingAttributeメンバー

OracleArrayMappingAttributeメソッド

OracleArrayMappingAttributeメソッドを、表16-21にリストします。

表16-21 OracleArrayMappingAttributeメソッド

メソッド

説明

Equals

System.Attributeからの継承

GetHashCode

System.Attributeからの継承

GetType

System.Attributeからの継承

IsDefaultAttribute

System.Attributeからの継承

Match

System.Attributeからの継承

ToString

System.Attributeからの継承

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleArrayMappingAttributeクラス

- OracleArrayMappingAttributeメンバー

IOracleCustomTypeインタフェース

IOracleCustomTypeはカスタム・タイプとOracleオブジェクトまたはコレクション・タイプ間の変換に関するインタフェースです。

宣言

// C#
public interface IOracleCustomType

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeメンバー

- IOracleCustomTypeインタフェース・メソッド

IOracleCustomTypeメンバー

IOracleCustomTypeメンバーは次の表にリストされています。

IOracleCustomTypeインタフェース・メソッド

IOracleCustomTypeインタフェース・メソッドを、表16-22にリストします。

表16-22 IOracleCustomTypeインタフェース・メソッド

インタフェース・メソッド

説明

FromCustomObject

Oracleオブジェクト属性を設定する値を戻します

ToCustomObject

カスタム・タイプに設定する属性値を含むOracleオブジェクトを提供します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeインタフェース

IOracleCustomTypeインタフェース・メソッド

IOracleCustomTypeインタフェース・メソッドを、表16-23にリストします。

表16-23 IOracleCustomTypeインタフェース・メソッド

インタフェース・メソッド

説明

FromCustomObject

Oracleオブジェクト属性を設定する値を戻します

ToCustomObject

カスタム・タイプに設定する属性値を含むOracleオブジェクトを提供します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeインタフェース

- IOracleCustomTypeメンバー

FromCustomObject

このインタフェース・メソッドは、指定されたOracle UDTに属性または要素値をそれぞれ設定して、Oracleオブジェクトまたはコレクションを作成します。

宣言

// C#
void FromCustomObject(OracleConnection con, IntPtr pUdt);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
作成されるOracleオブジェクトまたはコレクションへのOPAQUE型のポインタ。

備考

FromCustomObjectメソッドは、OracleUdt.SetValueメソッドから属性または要素値をそれぞれ設定して、カスタム・オブジェクトからOracleオブジェクトまたはコレクションを構築する際に使用されます。

OracleUdt.SetValueメソッドの呼出しは次のとおりです。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、OracleUdt.SetValueメソッドは、非NULL属性値の設定が必要となるたびに呼び出されます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、OracleUdt.SetValueメソッドへの1回のコールによってコレクション要素値が指定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeインタフェース

- IOracleCustomTypeメンバー

ToCustomObject

このインタフェースは、指定されたOracle UDTを使用してカスタム・オブジェクトを初期化します。

宣言

// C#
void ToCustomObject (OracleConnection con, IntPtr pUdt);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

備考

ToCustomObjectメソッドは、OracleUdt.GetValueメソッドから属性または要素値をそれぞれ取得して、指定したOracleオブジェクトまたはコレクションからカスタム・オブジェクトを初期化する際に使用されます。

OracleUdt.GetValueメソッドは次のように呼び出されます。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、OracleUdt.GetValueメソッドは、属性値が取得されるたびに呼び出される必要があります。

- カスタム・タイプがOracleコレクション型を表す場合、OracleUdt.GetValueメソッドを1回コールするとコレクション要素値を取得します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeインタフェース

- IOracleCustomTypeメンバー

IOracleCustomTypeFactoryインタフェース

ODP.NETはIOracleCustomTypeFactoryインタフェースを使用して、Oracleオブジェクトまたはコレクションを表すカスタム・オブジェクトを作成します。

宣言

// C#
public interface IOracleCustomTypeFactory

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeFactoryメンバー

- IOracleCustomTypeFactoryインタフェース・メソッド

IOracleCustomTypeFactoryメンバー

IOracleCustomTypeFactoryメンバーは次の表にリスト表示されています。

IOracleCustomTypeFactoryインタフェース・メソッド

IOracleCustomTypeFactoryインタフェース・メソッドを、表16-24にリストします。

表16-24 IOracleCustomTypeFactoryインタフェース・メソッド

パブリック・メソッド

説明

CreateObject

Oracleオブジェクトまたはコレクションを表す新規のカスタム・オブジェクトを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeFactoryインタフェース

IOracleCustomTypeFactoryインタフェース・メソッド

IOracleCustomTypeFactoryインタフェース・メソッドを、表16-25にリストします。

表16-25 IOracleCustomTypeFactoryインタフェース・メソッド

パブリック・メソッド

説明

CreateObject

Oracleオブジェクトまたはコレクションを表す新規のカスタム・オブジェクトを戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeFactoryインタフェース

- IOracleCustomTypeFactoryメンバー

CreateObject

このインタフェース・メソッドは、Oracleオブジェクトまたはコレクションを表す新規のカスタム・オブジェクトを戻します。

宣言

// C#
IOracleCustomType CreateObject();

戻り値

IOracleCustomTypeオブジェクト。

備考

CreateObjectメソッドは、Oracleオブジェクトまたはコレクションを表すカスタム・オブジェクトの新規インスタンスを作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleCustomTypeFactoryインタフェース

- IOracleCustomTypeFactoryメンバー

IOracleArrayTypeFactoryインタフェース

ODP.NETはIOracleArrayTypeFactoryインタフェースを使用して、Oracleコレクションを表す配列を作成します。

宣言

// C#
public interface IOracleArrayTypeFactory

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleArrayTypeFactoryメンバー

- IOracleArrayTypeFactoryインタフェース・メソッド

IOracleArrayTypeFactoryメンバー

IOracleArrayTypeFactoryメンバーは次の表にリスト表示されています。

IOracleArrayTypeFactoryインタフェース・メソッド

IOracleArrayTypeFactoryインタフェース・メソッドを、表16-26にリストします。

表16-26 IOracleArrayTypeFactoryインタフェース・メソッド

パブリック・メソッド

説明

CreateArray

Oracleコレクション要素を格納する新規配列を指定された長さで戻します

CreateStatusArray

コレクション要素のNULLステータスの格納に使用される、新規に割り当てられたOracleUdtStatus配列を指定された長さで戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleArrayTypeFactoryインタフェース

IOracleArrayTypeFactoryインタフェース・メソッド

IOracleArrayTypeFactoryインタフェース・メソッドを、表16-27にリストします。

表16-27 IOracleArrayTypeFactoryインタフェース・メソッド

パブリック・メソッド

説明

CreateArray

Oracleコレクション要素を格納する新規配列を指定された長さで戻します

CreateStatusArray

コレクション要素のNULLステータスの格納に使用される、新規に割り当てられたOracleUdtStatus配列を指定された長さで戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleArrayTypeFactoryインタフェース

- IOracleArrayTypeFactoryメンバー

CreateArray

このインタフェース・メソッドは、Oracleコレクション要素を格納する新規配列を指定された長さで戻します。

宣言

// C#
Array CreateArray(int numElems);

パラメータ

- numElems
戻されるコレクション要素の数。

戻り値

System.Arrayオブジェクト。

備考

Oracleコレクション型は、次のいずれかの状態で表示されます。

- 適切なタイプの配列として。このタイプはコレクション要素を表す必要があります。

- 適切なタイプの配列を含むカスタム・タイプとして。

いずれの場合でも、CreateArrayメソッドは、コレクション要素を格納する配列を指定された長さで作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleArrayTypeFactoryインタフェース

- IOracleArrayTypeFactoryメンバー

CreateStatusArray

このメソッドは、コレクション要素のNULLステータスの格納に使用される、新規に割り当てられたOracleUdtStatus配列を指定された長さで戻します。

宣言

// C#
Array CreateStatusArray(int numElems);

パラメータ

- numElems
戻されるコレクション要素の数。

戻り値

System.Arrayとしての多次元OracleUdtStatus配列。

備考

Oracleコレクション型は、次の状態で表示されます。

- 適切なタイプの配列として。このタイプはコレクション要素を表す必要があります。

- 適切なタイプの配列を含むカスタム・タイプとして。

いずれの場合でも、CreateStatusArrayメソッドは、コレクション要素のNULLステータスを格納するOracleUdtStatus配列を指定された長さで作成します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- IOracleArrayTypeFactoryインタフェース

- IOracleArrayTypeFactoryメンバー

- 「OracleUdtFetchOptionの列挙」

OracleUdtクラス

OracleUdtクラスは、カスタム・タイプからOracle UDTを変換、またはその逆を実行する際に使用される静的メソッドを定義します。

クラスの継承

System.Object

System.OracleUdt

宣言

public sealed class OracleUdt

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtメンバー

- OracleUDT静的メソッド

OracleUdtメンバー

OracleUdt静的メソッドを、表16-28にリストします。

表16-28 OracleUdt静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

GetValue

指定されたOracle UDTからの属性または要素を取得します(オーバーロード)

IsDBNull

取得される指定属性がNULLかどうかを示します(オーバーロード)

SetValue

指定されたOracle UDTに対する属性または要素を設定します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

OracleUDT静的メソッド

OracleUDTメソッドを、表16-29にリストします。

表16-29 OracleUdt静的メソッド

静的メソッド

説明

Equals

System.Objectからの継承

GetValue

指定されたOracle UDTからの属性または要素を取得します(オーバーロード)

IsDBNull

取得される指定属性がNULLかどうかを示します(オーバーロード)

SetValue

指定されたOracle UDTに対する属性または要素を設定します(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

GetValue

GetValueメソッドは、指定されたOracle UDTから属性または要素を取得します。

オーバーロード・リスト:

- GetValue(OracleConnection, IntPtr, string)
このメソッドは、指定属性名を使用した指定Oracle UDTから属性または要素を取得します。

- GetValue(OracleConnection, IntPtr, int)
このメソッドは、指定された索引を使用した指定Oracle UDTから属性または要素を取得します。

- GetValue(OracleConnection, IntPtr, string, out object)
このメソッドは、指定Oracleオブジェクトの指定コレクション属性の要素または指定Oracleコレクションの要素のいずれかを戻します。

- GetValue(OracleConnection, IntPtr, int, out object)
このメソッドは、指定Oracleオブジェクトの指定コレクション属性の要素または指定Oracleコレクションの要素のいずれかを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- 「OracleUdtメンバー」

GetValue(OracleConnection, IntPtr, string)

このメソッドは、指定属性名を使用した指定Oracle UDTから属性または要素を取得します。

宣言

public static object GetValue(OracleConnection con, IntPtr pUdt, string attrName);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのポインタ。

- attrName
取得される大/小文字を区別する属性の名前。Oracleコレクションを表すカスタム・タイプからコレクション要素を取得する場合、NULLを指定します。

戻り値

戻された属性またはコレクション要素を表すオブジェクト。

例外

ArgumentException - 指定された名前は無効な属性名です。

備考

IOracleCustomType.ToCustomObjectメソッドは、OracleUdt.GetValueメソッドを呼び出し、conおよびpUdtパラメータを渡します。OracleUdt.GetValueメソッドは次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、指定属性名の戻されるタイプは、カスタム・クラスまたは構造体のメンバーのタイプであり、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、戻されるタイプは、OracleArrayMappingAttributeオブジェクトが適用されたカスタム・クラスまたは構造体のメンバーのタイプです。

NULL属性値の場合、タイプの適切なNULL表現を戻します。たとえば、カスタム・タイプおよびプロバイダ固有のタイプを表す属性の場合、タイプの静的Nullプロパティを戻します。Nullableタイプを表す属性の場合、たとえばSystem.StringおよびSystem.ArrayタイプにはNULLを戻し、Int32およびDateTimeのような他の残りのビルトイン・タイプには、DBNull.Valueを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

- 「OracleUdtFetchOptionの列挙」

GetValue(OracleConnection, IntPtr, int)

このメソッドは、指定された索引を使用した指定Oracle UDTから属性または要素を取得します。

宣言

// C#
public static object GetValue(OracleConnection con, IntPtr pUdt, int attrIndex,);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのポインタ。

- attrIndex
取得される属性のゼロベースの索引。Oracleコレクションを表すカスタム・タイプからコレクション要素を取得する場合、0を指定する必要があります。

戻り値

戻された属性またはコレクション要素を表すオブジェクト。

例外

ArgumentOutOfRangeException - 指定された索引は無効な属性索引です。

備考

IOracleCustomType.ToCustomObjectメソッドは、OracleUdt.GetValueメソッドを呼び出し、conおよびpUdtパラメータを渡します。OracleUdt.GetValueメソッドは次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、指定された属性索引の戻されるタイプは、カスタム・クラスまたは構造体のメンバーのタイプであり、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、戻されるタイプは、OracleArrayMappingAttributeオブジェクトが適用されたカスタム・クラスまたは構造体のメンバーのタイプです。

NULL属性値の場合、タイプの適切なNULL表現を戻します。たとえば、カスタム・タイプおよびプロバイダ固有のタイプを表す属性の場合、タイプの静的Nullプロパティを戻します。Nullableタイプを表す属性の場合、たとえばSystem.StringおよびSystem.ArrayタイプにはNULLを戻し、Int32およびDateTimeのような他の残りのビルトイン・タイプには、DBNull.Valueを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

- 「OracleUdtFetchOptionの列挙」

GetValue(OracleConnection, IntPtr, string, out object)

このメソッドは、指定Oracleオブジェクトの指定コレクション属性の要素または指定Oracleコレクションの要素のいずれかを戻します。

宣言

// C#
public static object GetValue(OracleConnection con, IntPtr pUdt, string attrName,
out object statusArray);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrName
取得される大/小文字を区別する属性の名前。Oracleコレクションを表すカスタム・タイプからコレクション要素を取得する場合に、NULLを指定する必要があります。

- statusArray - OracleUdtStatus配列であり、取得されたコレクション要素に対してNULLステータスを戻します。

戻り値

戻された属性またはコレクション要素を表すオブジェクト。

例外

ArgumentException - 指定された名前は無効な属性名です。

備考

IOracleCustomType.ToCustomObjectメソッドは、OracleUdt.GetValueメソッドを呼び出し、conおよびpUdtパラメータを渡します。OracleUdt.GetValueメソッドは次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、指定属性名の戻されるタイプは、カスタム・クラスまたは構造体のメンバーのタイプであり、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、戻されるタイプは、OracleArrayMappingAttributeオブジェクトが適用されたカスタム・クラスまたは構造体のメンバーのタイプです。

NULL属性値の場合、タイプの適切なNULL表現を戻します。たとえば、カスタム・タイプおよびプロバイダ固有のタイプを表す属性の場合、タイプの静的Nullプロパティを戻します。Nullableタイプを表す属性の場合、たとえばSystem.StringおよびSystem.ArrayタイプにはNULLを戻し、Int32およびDateTimeのような他の残りのビルトイン・タイプには、DBNull.Valueを戻します。

戻されたコレクションがNULLでない場合、出力statusArrayパラメータはコレクション要素ごとにNULLステータスが指定されて移入されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

- 「OracleUdtFetchOptionの列挙」

GetValue(OracleConnection, IntPtr, int, out object)

このメソッドは、指定Oracleオブジェクトの指定コレクション属性の要素または指定Oracleコレクションの要素のいずれかを戻します。

宣言

// C#
public static object GetValue(OracleConnection con, IntPtr pUdt, int attrIndex,
out object statusArray);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrIndex
取得される属性のゼロベースの索引。Oracleコレクションを表すカスタム・タイプからコレクション要素を取得する場合、0を指定します。

- statusArray
OracleUdtStatus配列で、取得されたコレクション要素に対してNULLステータスを戻します。

戻り値

戻された属性またはコレクション要素を表すオブジェクト。

例外

ArgumentOutOfRangeException - 指定された索引は無効な属性索引です。

備考

IOracleCustomType.ToCustomObjectメソッドは、OracleUdt.GetValueメソッドを呼び出し、conおよびpUdtパラメータを渡します。OracleUdt.GetValueメソッドは次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、指定された属性索引の戻されるタイプは、カスタム・クラスまたは構造体のメンバーのタイプであり、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、戻されるタイプは、OracleArrayMappingAttributeオブジェクトが適用されたカスタム・クラスまたは構造体のメンバーのタイプです。

NULL属性値の場合、タイプの適切なNULL表現を戻します。たとえば、カスタム・タイプおよびプロバイダ固有のタイプを表す属性の場合、タイプの静的Nullプロパティを戻します。Nullableタイプを表す属性の場合、たとえばSystem.StringおよびSystem.ArrayタイプにはNULLを戻し、Int32およびDateTimeのような他の残りのビルトイン・タイプには、DBNull.Valueを戻します。

戻されたコレクションがNULLでない場合、出力statusArrayパラメータはコレクション要素ごとにNULLステータスが指定されて移入されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

- 「OracleUdtFetchOptionの列挙」

IsDBNull

IsDBNullメソッドは、取得される指定属性がNULLかどうかを示します。

オーバーロード・リスト:

- IsDBNull(OracleConnection, IntPtr, string)
このメソッドは、OracleConnection、ポインタおよび属性名が指定し、取得する属性がNULLかどうかを示します。

- IsDBNull(OracleConnection, IntPtr, int)
このメソッドは、OracleConnection、ポインタおよび属性索引が指定し、取得する属性がNULLかどうかを示します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

- 「OracleUdtFetchOptionの列挙」

IsDBNull(OracleConnection, IntPtr, string)

このメソッドは、OracleConnection、ポインタおよび属性名が指定し、取得する属性がNULLかどうかを示します。

宣言

// C#
public static bool IsDBNull(OracleConnection con, IntPtr pUdt, string attrName);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのポインタ。

- attrName
大/小文字を区別する属性名。

戻り値

指定された属性がNULLの場合はTrue、それ以外はfalseです。

例外

ArgumentException - 指定された名前は無効な属性名です。

備考

このメソッドは、IOracleCustomType.ToCustomObjectメソッドから呼び出されます。IOracleCustomType.ToCustomObjectメソッドからOracleUdt.IsDBNullメソッドへconおよびpUdtパラメータを渡します。attrNameパラメータは大/小文字を区別します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

IsDBNull(OracleConnection, IntPtr, int)

このメソッドは、OracleConnection、ポインタおよび属性索引が指定し、取得する属性がNULLかどうかを示します。

宣言

// C#
public static bool IsDBNull(OracleConnection con, IntPtr pUdt, int attrIndex);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrIndex
ゼロベースの属性の索引。

戻り値

指定された属性がNULLの場合はTrue、それ以外はfalseです。

例外

ArgumentOutOfRangeException - 指定された索引は無効な属性索引です

備考

このメソッドは、IOracleCustomType.ToCustomObjectメソッドから呼び出されます。IOracleCustomType.ToCustomObjectメソッドからOracleUdt.IsDBNullメソッドへconおよびpUdtパラメータを渡します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

SetValue

SetValueメソッドは、指定されたOracle UDTに属性または要素を設定します。

オーバーロード・リスト:

- SetValue(OracleConnection, IntPtr, string, object)
このメソッドは、指定された属性名および値を使用して、指定Oracle UDTに属性または要素を設定します。

- SetValue(OracleConnection, IntPtr, int, object)
このメソッドは、指定された索引および値を使用して、指定Oracle UDTに属性または要素を設定します。

- SetValue(OracleConnection, IntPtr, string, object, object)
このメソッドは、コレクション要素の指定されたNULLステータスを使用して、指定Oracleオブジェクトの指定コレクション属性または指定Oracleコレクションの要素のいずれかを指定した値に設定します。

- SetValue(OracleConnection, IntPtr, int, object, object)
このメソッドは、コレクション要素の指定されたNULLステータスを使用して、指定Oracleオブジェクトの指定コレクション属性または指定Oracleコレクションの要素のいずれかを指定した値に設定します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- OracleUdtメンバー

SetValue(OracleConnection, IntPtr, string, object)

このメソッドは、指定された属性名および値を使用して、指定Oracle UDTに属性または要素を設定します。

宣言

// C#
public static void SetValue(OracleConnection con, IntPtr pUdt, string attrName,
object value);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrName
設定される属性名。Oracleコレクションを表すカスタム・タイプからのコレクション要素を設定するためにNULLを指定します。

- value
設定される属性またはコレクション値。

例外

ArgumentException - 指定した値は適切な型ではありません。

備考

IOracleCustomType.FromCustomObjectメソッドは、OracleUdt.SetValueを呼び出してconおよびpUdtパラメータを渡します。OracleUdt.SetValueメソッドは、次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされるカスタム・クラスまたは構造体のメンバーのタイプが、指定した属性の名前に対して受け入れられます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、OracleArrayMappingAttributeオブジェクトが適用されるカスタム・クラスまたは構造体のメンバーのタイプが受け入れられます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- 「OracleUdtメンバー」

SetValue(OracleConnection, IntPtr, int, object)

このメソッドは、指定された索引および値を使用して、指定Oracle UDTに属性または要素を設定します。

宣言

// C#
public static void SetValue(OracleConnection con, IntPtr pUdt, int attrIndex, object value);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrIndex
設定される属性の索引。Oracleコレクションを表すカスタム・タイプからのコレクション要素を設定するために0を指定します。

- value
設定される属性またはコレクション値。

例外

ArgumentException - 指定した値は適切な型ではありません。

備考

IOracleCustomType.FromCustomObjectメソッドは、OracleUdt.SetValueを呼び出してconおよびpUdtパラメータを渡します。OracleUdt.SetValueメソッドは、次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされるカスタム・クラスまたは構造体のメンバーのタイプが、指定した属性索引のタイプに対して受け入れられます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、OracleArrayMappingAttributeオブジェクトが適用されるカスタム・クラスまたは構造体のメンバーのタイプが受け入れられます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- 「OracleUdtメンバー」

SetValue(OracleConnection, IntPtr, string, object, object)

このメソッドは、コレクション要素の指定されたNULLステータスを使用して、指定Oracleオブジェクトの指定コレクション属性または指定Oracleコレクションの要素のいずれかを指定した値に設定します。

宣言

// C#
public static void SetValue(OracleConnection con, IntPtr pUdt, string attrName,
object value, object statusArray);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrName
設定される属性名。Oracleコレクションを表すカスタム・タイプからのコレクション要素を設定するためにNULLを指定します。

- value
設定される属性またはコレクション値。

- statusArray
コレクション要素のNULLステータス。

例外

ArgumentException - 指定した値は適切な型ではありません。

備考

IOracleCustomType.FromCustomObjectメソッドは、OracleUdt.SetValueを呼び出してconおよびpUdtパラメータを渡します。OracleUdt.SetValueメソッドは、次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされるカスタム・クラスまたは構造体のメンバーのタイプが、指定した属性の名前に対して受け入れられます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、OracleArrayMappingAttributeオブジェクトが適用されるカスタム・クラスまたは構造体のメンバーのタイプが受け入れられます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- 「OracleUdtメンバー」

SetValue(OracleConnection, IntPtr, int, object, object)

このメソッドは、コレクション要素の指定されたNULLステータスを使用して、指定Oracleオブジェクトの指定コレクション属性または指定Oracleコレクションの要素のいずれかを指定した値に設定します。

宣言

// C#
public static void SetValue(OracleConnection con, IntPtr pUdt, int attrIndex,
object value, object statusArray);

パラメータ

- con
OracleConnectionインスタンス。

- pUdt
Oracle UDTへのOPAQUE型のポインタ。

- attrIndex
設定される属性の索引。Oracleコレクションを表すカスタム・タイプからのコレクション要素を設定するために0を指定します。

- value
設定される属性またはコレクション値。

- statusArray
コレクション要素のNULLステータス。

例外

ArgumentException - 指定した値は適切な型ではありません。

備考

IOracleCustomType.FromCustomObjectメソッドは、OracleUdt.SetValueを呼び出してconおよびpUdtパラメータを渡します。OracleUdt.SetValueメソッドは、次のタイプのオブジェクトを戻します。

- Oracleオブジェクト型
カスタム・タイプがOracleオブジェクト型を表す場合、OracleObjectMappingAttributeオブジェクトを使用して属性にマップされるカスタム・クラスまたは構造体のメンバーのタイプが、指定した属性索引のタイプに対して受け入れられます。

- Oracleコレクション型
カスタム・タイプがOracleコレクション型を表す場合、OracleArrayMappingAttributeオブジェクトが適用されるカスタム・クラスまたは構造体のメンバーのタイプが受け入れられます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleUdtクラス

- 「OracleUdtメンバー」

OracleRefクラス

OracleRefインスタンスは、データベース内にある永続的でスタンドアロンの参照可能なオブジェクトを参照するOracle REFを表します。OracleRefオブジェクトは、Oracle REFを挿入、更新および削除するメソッドを提供します。

クラスの継承

System.Object

System.MarshalByRefObject

Oracle.DataAccess.Types.OracleRef

宣言

// C#
public sealed class OracleRef : MarshalByRefObject,ICloneable, IDisposable,
INullable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

データベース内の同一のOracleオブジェクトを参照する2つ以上のOracleRefオブジェクトが、同一のOracleConnectionを介して取得される場合、参照オブジェクトでの操作を同期化する必要があります。

要件

ネームスペース: Oracle.DataAccess.Types

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefメンバー

- OracleRefコンストラクタ

- OracleRef静的メソッド

- OracleRefインスタンス・プロパティ

- Oracle Refインスタンス・メソッド

OracleRefメンバー

OracleRefメンバーは次の表にリストされています。

OracleRefコンストラクタ

OracleRefコンストラクタを、表16-30に示します。

表16-30 OracleRefコンストラクタ

コンストラクタ

説明

OracleRefコンストラクタ

OracleRefクラスの新規インスタンスをインスタンス化します(オーバーロード)

OracleRef静的フィールド

OracleRef静的メソッドを、表16-31にリストします。

表16-31 OracleRef静的フィールド

静的フィールド

説明

Null

OracleRefインスタンスに割り当てることができるNULL値を表します

OracleRef静的メソッド

OracleRef静的メソッドを、表16-32にリストします。

表16-32 OracleRef静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

OracleRefインスタンス・プロパティ

OracleRefインスタンス・プロパティを、表16-33にリストします。

表16-33 OracleRefインスタンス・プロパティ

プロパティ

説明

Connection

OracleRefが使用する接続を参照します

HasChanges

OracleRefが使用する接続を参照します

IsLocked

REFがロックされているかどうかを示します

IsNull

Oracle REFがNULLかどうかを示します

ObjectTableName

REFに関連付けられている完全修飾オブジェクト表名を戻します

Value

このOracle REFの.NET参照を戻します

OracleRefインスタンス・メソッド

OracleRefインスタンス・メソッドを、表16-34にリストします。

表16-34 OracleRefインスタンス・メソッド

メソッド

説明

Clone

REFを複製します

Delete

データベースから参照オブジェクトを削除します

Dispose

OracleRefインスタンスに割り当てられたリソースを解放します

Equals

System.Objectからの継承

Flush

データベースへのREFオブジェクトの変更をフラッシュします

GetCustomObject

カスタム・タイプとして指定されたREF参照オブジェクトを戻します(オーバーロード)

GetCustomObjectForUpdate

カスタム・タイプとして指定されたREF参照オブジェクトを戻します(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

IsEqual

2つのOracleREFオブジェクトを比較します

Lock

データベースのREFをロックします

ToString

System.Objectからの継承

Update

指定カスタム・オブジェクトを使用して、データベースの指定されたREFが参照するオブジェクトを更新します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

OracleRefコンストラクタ

OracleRefコンストラクタでは、OracleRefクラスの新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleRef(OracleConnection, string)
このコンストラクタでは、データベースのREFインスタンスを表す接続文字列および16進文字列を使用してOracleRefクラスのインスタンスを作成します。

- OracleRef(OracleConnection, string, string)
このコンストラクタでは、指定したOracleConnectionオブジェクト、ユーザー定義のタイプ名およびオブジェクト表名を使用してOracleRefクラスのインスタンスを作成します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

OracleRef(OracleConnection, string)

このコンストラクタでは、データベースのREFインスタンスを表す接続文字列および16進文字列を使用してOracleRefクラスのインスタンスを作成します。

宣言

// C#
public OracleRef(OracleConnection con, string hexStr);

パラメータ

- con
OracleConnectionインスタンス。

- hexStr
データベース内のREFインスタンスを表す16進文字列。

例外

ArgumentException - 16進文字列がデータベース内の有効なREFを表しません。

ArgumentNullException - 接続文字列または16進文字列はNULLです。

InvalidOperationException - OracleConnectionオブジェクトがオープンされていません

備考

OracleRefインスタンスが作成されると、データベース内の特定の表を参照します。

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

OracleRef(OracleConnection, string, string)

このコンストラクタでは、指定したOracleConnectionオブジェクト、ユーザー定義のタイプ名およびオブジェクト表名を使用してOracleRefクラスのインスタンスを作成します。

宣言

// C#
public OracleRef(OracleConnection con, string udtTypeName, string objTabName);

パラメータ

- con
OracleConnectionインスタンス。

- udtTypeName
ユーザー定義のタイプ名。

- objTabName
オブジェクト表名。

例外

ArgumentException - オブジェクト・タイプ名およびオブジェクト表名が無効です。

ArgumentNullException - オブジェクト・タイプ名およびオブジェクト表名がNULLです。

InvalidOperationException - OracleConnectionオブジェクトがオープンされていません

備考

OracleRefインスタンスが作成されると、このOracleRefインスタンスは、データベース内の特定の表に関連付けられます。つまり、永続的なREFを表します。

このコンストラクタはオブジェクト表への参照を作成します。ただし、オブジェクトがデータベースにフラッシュされないかぎり、つまり、OracleRef.FlushまたはOracleConnection.FlushCacheメソッドがOracleRef接続でコールされないかぎり、データベース表にエントリは作成されません。このため、データベースからオブジェクトの最新のコピーのロックまたはフェッチなど、オブジェクトをフラッシュする前にオブジェクトのデータベース・コピーで操作しようとするとOracleExceptionとなります。

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

- 「FlushCache」

OracleRef静的フィールド

OracleRef静的フィールドを、表16-35にリストします。

表16-35 OracleRef静的フィールド

静的フィールド

説明

Null

OracleRefインスタンスに割り当てることができるNULL値を表します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Null

この静的フィールドは、OracleRefインスタンスに割り当てることができるNULL値を表します。

宣言

// C#
public static readonly OracleRef Null;

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

OracleRef静的メソッド

OracleRef静的メソッドを、表16-36にリストします。

表16-36 OracleRef静的メソッド

メソッド

説明

Equals

System.Objectからの継承(オーバーロード)

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

OracleRefインスタンス・プロパティ

OracleRefインスタンス・プロパティを、表16-37にリストします。

表16-37 OracleRefインスタンス・プロパティ

プロパティ

説明

Connection

OracleRefが使用する接続を参照します

HasChanges

OracleRefが使用する接続を参照します

IsLocked

REFがロックされているかどうかを示します

IsNull

Oracle REFがNULLかどうかを示します

ObjectTableName

REFに関連付けられている完全修飾オブジェクト表名を戻します

Value

このOracle REFの.NET参照を戻します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Connection

このインスタンス・プロパティは、OracleRefで使用される接続を参照します。

宣言

// C#
public OracleConnection Connection{get;}

プロパティ値

REFに関連したOracleConnectionオブジェクト。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

Disposeメソッドが呼び出されると、このプロパティはnullに設定されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

HasChanges

このインスタンス・プロパティは、オブジェクト・キャッシュでOracle REFが参照するオブジェクト内にデータベースにフラッシュされる変更があるかどうかを示します。

宣言

// C#
public bool HasChanges {get;}

プロパティ値

オブジェクト・キャッシュでOracle REFが参照するオブジェクトにデータベースにフラッシュされる変更がある場合、trueを戻します。それ以外の場合は、falseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このプロパティは、オブジェクト・キャッシュ内の参照オブジェクトのコピーが更新または削除された場合、trueを戻します。

オブジェクト・キャッシュ内の参照オブジェクトのコピーがない場合、データベース内の参照オブジェクトの最新のコピーが、オブジェクト・キャッシュでキャッシュされ、falseが戻されます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

IsLocked

このインスタンス・プロパティは、REFがロックされるかどうかを示します。

宣言

// C#
public bool IsLocked {get;}

プロパティ値

REFがロックされる場合、trueを戻します。それ以外の場合、falseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

IsNull

このインスタンス・プロパティは、Oracle REFがNULLかどうかを示します。

宣言

// C#
public bool IsNull {get;}

プロパティ値

REFがNULLの場合、trueを戻します。それ以外の場合、falseを戻します。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

Oracle REFがNULLの場合、このプロパティはtrueを戻します。それ以外の場合、falseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

ObjectTableName

このインスタンス・プロパティでは、REFに関連付けられた完全修飾のオブジェクト表名を戻します。

宣言

// C#
public string ObjectTableName{get;}

プロパティ値

REFに関連付けられた完全修飾のオブジェクト表名。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

オブジェクト表名の形式は、schema_Name.Table_Nameです。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Value

このインスタンス・プロパティは、このOracle REFの.NET表現を戻します。

宣言

// C#
public string Value{get;}

プロパティ値

Oracle REFの.NET表現。

例外

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

このプロパティは、REFを表す16進文字列を戻します。

戻された文字列でOracleRef(OracleConnection,string)コンストラクタを使用して、新規OracleRefインスタンスを作成できます。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

- 「OracleRef(OracleConnection, string)」

Oracle Refインスタンス・メソッド

OracleRefインスタンス・メソッドを、表16-38にリストします。

表16-38 OracleRefインスタンス・メソッド

メソッド

説明

Clone

REFを複製します

Delete

データベースから参照オブジェクトを削除します

Dispose

OracleRefインスタンスに割り当てられたリソースを解放します

Equals

System.Objectからの継承

Flush

データベースへのREFオブジェクトの変更をフラッシュします

GetCustomObject

カスタム・タイプとして指定されたREF参照オブジェクトを戻します(オーバーロード)

GetCustomObjectForUpdate

カスタム・タイプとして指定されたREF参照オブジェクトを戻します(オーバーロード)

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

IsEqual

2つのOracleREFオブジェクトを比較します

Lock

データベースのREFをロックします

ToString

System.Objectからの継承

Update

指定カスタム・オブジェクトを使用して、データベースの指定されたREFが参照するオブジェクトを更新します

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Clone

このインスタンス・メソッドはREFを複製します。

宣言

// C#
public OracleRef Clone();

戻り値

現在のインスタンスの複製。

実装

ICloneable

例外

InvalidOperationException - 関連する接続がオープンされていません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Delete

このメソッドは、データベースから参照オブジェクトを削除します。

宣言

// C#
public void Delete(bool bFlush);

パラメータ

- bFlush
ただちにREFをフラッシュするかどうか指定するbool。

備考

このメソッドは、削除する指定済REFをマークします。

bFlushの値をtrueまたはfalseに設定すると、次のようになります。

- True
指定したREFが参照するオブジェクトは、データベースからただちに削除されます。

オブジェクトをフラッシュする前に、アプリケーションはOracleConnectionオブジェクト上でBeginTransactionメソッドを実行して明示的にトランザクションを開始する必要があります。これは、フラッシュされるオブジェクトがアプリケーションによりロックされていない場合は、オブジェクトに対して暗黙的に排他的ロックが取得されるためです。ロックが解除されるのは、トランザクションがコミットまたはロールバックする場合にかぎります。

- False
後続のFlushメソッドが指定されたREFに対して呼び出される場合や、FlushCacheメソッドがOracleRefで呼び出される場合、またはFlushCacheメソッドがOracleRef接続で呼び出される場合にかぎり、REFが参照するオブジェクトはデータベースからただちに削除されません。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

- OracleConnectionの「FlushCache」

Dispose

このインスタンス・メソッドは、OracleRefインスタンスに割り当てられたリソースを解放します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

オブジェクトは、処理後は再度使用できません。アクセスできるプロパティはありますが、それらの値は最新ではない可能性があります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Flush

このインスタンス・メソッドは、データベースのREFオブジェクトで行った更新または削除などの変更をフラッシュします。

宣言

// C#
public void Flush();

例外

InvalidOperationException - 関連する接続がオープンされていません。

備考

オブジェクトをフラッシュする前に、アプリケーションはOracleConnectionオブジェクト上でBeginTransactionメソッドを実行して明示的にトランザクションを開始する必要があります。これは、フラッシュされるオブジェクトがアプリケーションによりロックされていない場合は、オブジェクトに対して暗黙的に排他的ロックが取得されるためです。ロックが解除されるのは、トランザクションがコミットまたはロールバックする場合にかぎります。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

GetCustomObject

GetCustomObjectメソッドは、カスタム・タイプとして指定したREFが参照するオブジェクトを戻します。

オーバーロード・リスト

- GetCustomObject(OracleUdtFetchOption)
このメソッドは、指定したフェッチ・オプションを使用して、カスタム・タイプとして指定したREFが参照するオブジェクトを戻します。

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

GetCustomObject(OracleUdtFetchOption)

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

宣言

// C#
public object GetCustomObject(OracleUdtFetchOption fetchOption);

パラメータ

- fetchOption
OracleUdtFetchOption値。

戻り値

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

例外

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

備考

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

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

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

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

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

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

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

- 「OracleUdtFetchOptionの列挙」

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

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

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

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

- 「OracleUdtFetchOptionの列挙」

GetCustomObjectForUpdate

GetCustomObjectForUpdateメソッドは、カスタム・タイプとして指定したREFが参照するオブジェクトを戻します。

- GetCustomObjectForUpdate(bool)
このメソッドは、データベース内で指定したREFをロックし、指定したwaitオプションを使用して、カスタム・タイプとして指定したREFを参照するオブジェクトを戻します。

- GetCustomObjectForUpdate(bool, int)
このメソッドは、データベース内で指定したREFをロックし、指定したwaitオプションおよび深さレベルを使用して、カスタム・タイプとして指定したREFを参照するオブジェクトを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

GetCustomObjectForUpdate(bool)

このメソッドは、データベース内で指定したREFをロックし、指定したwaitオプションを使用して、カスタム・タイプとして指定したREFが参照するオブジェクトを戻します。

宣言

// C#
public object GetCustomObjectForUpdate(bool bWait);

パラメータ

- bWait
REFがno-waitオプションでロックされるかどうかを指定します。waitがtrueに設定されている場合、このメソッドを起動しても、REFがロックされるまで値は戻りません。

戻り値

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

例外

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

OracleException - bWaitがfalseに設定されており、ロックを取得できません。

備考

このメソッドは、OracleRef接続で登録したカスタム・タイプで定義した参照オブジェクトの最新のコピーをカスタム・タイプとして戻します。

OracleRefのFlushまたはOracleConnectionのFlushCacheメソッドを使用してREFをフラッシュした後、REFで適切にロックを解除するには、アプリケーションはトランザクションをコミットまたはロールバックする必要があります。このため、このメソッドを呼び出す前に、OracleConnectionオブジェクトでBeginTransactionメソッドを実行して、明示的にトランザクションを開始する必要があります。

このメソッドはネットワーク・ラウンドトリップを作成してデータベース内のREFをロックします。このコールの後、プログラマは関連付けられた行オブジェクトを排他的に変更できます。その後で、OracleRefのFlushメソッドまたはOracleConnectionのFlushCacheメソッドへのコールを実行すると、データベースへの変更がフラッシュされます。

trueが渡されると、このメソッドはロックが取得されるまでブロックされます。falseが渡される場合は、このメソッドはただちに値を戻します。ロックが取得できない場合は、OracleExceptionがスローされます。

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

GetCustomObjectForUpdate(bool, int)

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

宣言

public object GetCustomObjectForUpdate(bool bWait, int depthlevel);

パラメータ

- bWait
no-waitオプションでREFがロックされるかどうかを指定するブール値。waitがtrueに設定されている場合、このメソッドを起動しても、REFがロックされるまで値は戻りません。

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

戻り値

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

例外

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

OracleException - bWaitがfalseに設定されており、ロックを取得できません。

備考

このメソッドは、OracleRef接続で登録したカスタム・タイプで定義した参照オブジェクトの最新のコピーをカスタム・タイプとして戻します。

OracleRefのFlushまたはOracleConnectionのFlushCacheメソッドを使用してREFをフラッシュした後、REFで適切にロックを解除するには、アプリケーションはトランザクションをコミットまたはロールバックする必要があります。このため、このメソッドを呼び出す前に、OracleConnectionオブジェクトでBeginTransactionメソッドを実行して、明示的にトランザクションを開始する必要があります。

このメソッドはネットワーク・ラウンドトリップを作成してデータベース内のREFをロックします。このコールの後、プログラマは関連付けられた行オブジェクトを排他的に変更できます。その後で、OracleRefのFlushメソッドまたはOracleConnectionのFlushCacheメソッドへのコールを実行すると、データベースへの変更がフラッシュされます。

trueが渡されると、このメソッドはロックが取得されるまでブロックされます。falseが渡される場合は、このメソッドはただちに値を戻します。ロックが取得できない場合は、OracleExceptionがスローされます。

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

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

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

IsEqual

このインスタンス・メソッドは、2つのOracleREFオブジェクトを比較します。

宣言

// C#
public bool IsEqual(OracleRef oraRef);

パラメータ

- oraRef
指定されたOracleRefオブジェクト。

戻り値

bool

備考

OracleRefインスタンスおよびOracleRefパラメータの両方が同じオブジェクトを参照する場合、このインスタンス・メソッドは、trueを戻します。それ以外の場合、falseを戻します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Lock

このインスタンス・メソッドは、データベース内のREFをロックします。

宣言

// C#
public bool Lock(bool bWait);

パラメータ

- bWait
ロックがno-waitオプションに設定されるかどうかを指定します。bWaitがtrueに設定されている場合、このメソッドを呼び出してもREFがロックされるまで値は戻りません。

戻り値

ロックが取得されているかどうかを示すブール値。

例外

InvalidOperationException - 関連する接続がオープンされていません。

ObjectDisposedException - オブジェクトはすでに処理されています。

備考

OracleRefのFlush起動またはFlushCacheメソッドの後に、アプリケーションで適切にREFのロックを解除するには、アプリケーションがトランザクションをコミットまたはロールバックする必要があります。このため、OracleRefオブジェクトのロックを起動する前に、OracleConnectionオブジェクトのBeginTransactionメソッドを明示的に実行する必要があります。

このインスタンス・メソッドは、ネットワーク・ラウンドトリップを作成して、データベース内のREFをロックします。このコールの後、プログラマは、関連した行オブジェクトの属性値を排他的に変更できます。OracleRefのFlushインスタンス・メソッドまたはOracleConnectionのFlushCacheメソッドへのコールにより、データベースへの変更がフラッシュされます。

trueが渡されると、ロックが取得されるまでこのメソッドはブロックされ、値を戻しません。結果として、戻り値は常にtrueになります。

falseが渡される場合は、このメソッドはただちに値を戻します。ロックが取得されると戻り値はtrueを示し、ロックが取得されない場合は、戻り値はfalseを示します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

Update

このメソッドは、指定したカスタム・オブジェクトを使用して、データベース内で指定したREFが参照するオブジェクトを更新します。

宣言

// C#
public void Update(object customObject, bool bFlush);

パラメータ

- customObject
参照オブジェクトの更新に使用されるカスタム・オブジェクト。

- bFlush
変更をただちにフラッシュする必要がある場合に指定するブール値。bFlushがtrueに設定されている場合、このメソッドの起動により変更はだたちにフラッシュされます。

例外

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

備考

このメソッドは、更新に指定したREFをマークします。bFlushの値がtrueまたはfalseに設定されると、次のようになります。

- True
指定したREFが参照するオブジェクトは、データベース内でただちに更新されます。

オブジェクトをフラッシュする前に、アプリケーションはOracleConnectionオブジェクト上でBeginTransactionメソッドを実行して明示的にトランザクションを開始する必要があります。これは、フラッシュされるオブジェクトがアプリケーションによりロックされていない場合は、オブジェクトに対して暗黙的に排他的ロックが取得されるためです。ロックが解除されるのは、トランザクションがコミットまたはロールバックする場合にかぎります。

- False
後続のFlushメソッドが指定されたREFに対して呼び出される場合、またはFlushCacheメソッドが指定された接続に対して呼び出される場合にかぎり、REFが参照するオブジェクトは、データベース内でただちに更新されません。

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

OracleUdtFetchOptionの列挙

OracleUdtFetchOptionの列挙値は、参照可能なオブジェクトのコピーの取得方法を指定します。

表16-39では、すべてのOracleUdtFetchOptionの列挙値と、それぞれの列挙値の説明をリストします。

表16-39 OracleUdtFetchOptionの列挙値

メンバー名

説明

Cache

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

Server

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

TransactionCache

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

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

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

OracleUdtStatusの列挙

OracleUdtStatusの列挙値は、オブジェクト属性またはコレクション要素の状態を指定します。オブジェクト属性またはコレクション要素は、有効な値またはNULL値になります。

表16-40では、すべてのOracleUdtStatusの列挙値と、それぞれの列挙値の説明をリストします。

表16-40 OracleUdtStatusの列挙値

メンバー名

説明

Null

オブジェクト属性またはコレクション要素がNULLであることを示します。

NotNull

オブジェクト属性またはコレクション要素に存在する非NULL値を示します。

関連項目:

- Oracle.DataAccess.Typesネームスペース

- OracleRefクラス

- OracleRefメンバー

17 Oracle Data Provider for .NETの一括コピー・クラス

この章では、Oracle Data Provider for .NETによる一括コピー操作のサポートについて説明します。

注意:
Oracle Data Provider for .NETの一括コピー操作では、UDTタイプの列のロードはサポートされません。

この章の内容は次のとおりです。

- OracleBulkCopyクラス

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyOptionsの列挙

- OracleRowsCopiedEventHandlerデリゲート

- OracleRowsCopiedEventArgsクラス

OracleBulkCopyクラス

OracleBulkCopyオブジェクトは別のデータ・ソースからOracle表にデータを効率的に一括ロードまたはコピーします。

クラスの継承

System.Object

System.OracleBulkCopy

宣言

// C#
public sealed class OracleBulkCopy : IDisposable

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleBulkCopyクラスは、Oracle Database表にのみデータを書き込む際に使用できます。ただし、データ・ソースに制限はありません。データがDataTableインスタンスにロードされるか、IDataReaderインスタンスで読込み可能であるかぎりデータ・ソースは使用されます。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyメンバー

- OracleBulkCopyコンストラクタ

- OracleBulkCopyプロパティ

- OracleBulkCopyパブリック・メソッド

- OracleBulkCopyイベント

OracleBulkCopyメンバー

OracleBulkCopyメンバーは次の表にリストされています。

OracleBulkCopyコンストラクタ

OracleBulkCopyコンストラクタを、表17-1にリストします。

表17-1 OracleBulkCopyコンストラクタ

コンストラクタ

説明

OracleBulkCopyコンストラクタ

OracleBulkCopyコンストラクタでは、OracleBulkCopyクラスの新規インスタンスを作成します

OracleBulkCopyプロパティ

OracleBulkCopyプロパティを、表17-2にリストします。

表17-2 OracleBulkCopyプロパティ

プロパティ

説明

BatchSize

バッチとしてデータベースに送信される行数を指定します

BulkCopyOptions

一括コピー操作の動作を識別するOracleBulkCopyOptionsの列挙値を指定します

BulkCopyTimeout

中断される前に一括コピー操作が完了するまでの秒数を指定します

ColumnMappings

データ・ソースと保存先表間の列マッピングを指定します

Connection

Oracle Databaseが一括コピー操作の実行に使用するOracleConnectionオブジェクトを指定します

DestinationTableName

データがロードされるデータベース表を指定します

NotifyAfter

通知イベントが生成される前に処理された行数を定義します

OracleBulkCopyパブリック・メソッド

OracleBulkCopyパブリック・メソッドを、表17-3にリストします。

表17-3 OracleBulkCopyパブリック・メソッド

メソッド

説明

Close

OracleBulkCopyインスタンスをクローズします

Dispose

オブジェクトにより割り当てられたリソースまたはメモリーを解除します

WriteToServer

保存先表に行をコピーします

OracleBulkCopyイベント

OracleBulkCopyイベントを、表17-4にリストします。

表17-4 OracleBulkCopyイベント

イベント

説明

OracleRowsCopied

OracleBulkCopy.NotifyAfterプロパティで指定された行数が処理されるたびにトリガーされます

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

OracleBulkCopyコンストラクタ

OracleBulkCopyコンストラクタでは、OracleBulkCopyクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleBulkCopy(OracleConnection)
このコンストラクタでは、指定された接続とOracleBulkCopyOptionsのデフォルト値を使用してOracleBulkCopyクラスの新規インスタンスがインスタンス化されます。

- OracleBulkCopy(string)
このコンストラクタでは、指定されたconnectionStringおよびOracleBulkCopyOptionsのデフォルト値に基づいてOracleBulkCopyの新規インスタンスがインスタンス化されます。

- OracleBulkCopy(OracleConnection, OracleBulkCopyOptions)
このコンストラクタでは、指定された接続オブジェクトとOracleBulkCopyOptionsの値を使用してOracleBulkCopyの新規インスタンスがインスタンス化されます。

- OracleBulkCopy(string, OracleBulkCopyOptions)
このコンストラクタでは、指定されたconnectionStringおよびOracleBulkCopyOptionsの値に基づいてOracleConnectionの新規インスタンスがインスタンス化されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

OracleBulkCopy(OracleConnection)

このコンストラクタでは、指定された接続とデフォルトのOracleBulkCopyOptionsの列挙値を使用してOracleBulkCopyクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopy(OracleConnection connection);

パラメータ

- connection
一括コピー操作を実行するOracleConnectionのオープン・インスタンス。

例外

ArgumentNullException - connectionパラメータがNULLです。

InvalidOperationException - 接続がオープン状態ではありません。

備考

このコンストラクタに渡される接続オブジェクトはオープンされている必要があります。OracleBulkCopyインスタンスがクローズされると、オープンのままとなります。

このコンストラクタでは、デフォルトの列挙値OracleBulkCopyOptions.Defaultが使用されます。

Connectionプロパティは指定した接続に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「OracleBulkCopyOptionsの列挙」

OracleBulkCopy(string)

このコンストラクタでは、指定されたconnectionStringに基づいて最初にOracleConnectionオブジェクトを作成し、次にOracleConnectionオブジェクトおよびOracleBulkCopyOptionsデフォルト値を使用して新規のOracleBulkCopyを初期化して、OracleBulkCopyクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopy(string connectionString);

パラメータ

- connectionString
Oracle Databaseへの接続および一括コピー操作の実行に使用される接続情報。

例外

ArgumentNullException - connectionStringパラメータがNullです。

ArgumentException - connectionStringパラメータが空です。

備考

WriteToServerメソッドは、接続がまだオープンでない場合に接続を開きます。OracleBulkCopyインスタンスがクローズされると、接続も自動的にクローズされます。

このコンストラクタでは、デフォルトの列挙値OracleBulkCopyOptions.Defaultが使用されます。

Connectionプロパティは、指定したconnectionStringを使用して初期化されるOracleConnectionオブジェクトに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「OracleBulkCopyOptionsの列挙」

OracleBulkCopy(OracleConnection, OracleBulkCopyOptions)

このコンストラクタでは、指定された接続オブジェクトとOracleBulkCopyOptionsの値を使用してOracleBulkCopyの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopy(OracleConnection connection, OracleBulkCopyOptions      copyOptions);

パラメータ

- connection
一括コピー操作を実行するOracleConnectionオブジェクトのオープン・インスタンス。

- copyOptions
OracleBulkCopyオブジェクトの動作を識別するOracleBulkCopyOptionsの列挙値の組合せ。

例外

ArgumentNullException - connectionパラメータがNULLです。

InvalidOperationException - 接続がオープン状態ではありません。

備考

このコンストラクタに渡される接続はオープンされている必要があります。OracleBulkCopyインスタンスがクローズされると、オープンのままとなります。

Connectionプロパティは指定した接続に設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「OracleBulkCopyOptionsの列挙」

OracleBulkCopy(string, OracleBulkCopyOptions)

このコンストラクタでは、指定されたconnectionStringに基づいて最初にOracleConnectionオブジェクトを作成し、次にOracleConnectionオブジェクトおよび指定されたOracleBulkCopyOptionsの列挙値を使用して新規のOracleBulkCopyを初期化して、OracleBulkCopyクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopy(string connectionString, OracleBulkCopyOptions copyOptions);

パラメータ

- connectionString
一括コピー操作を実行するためにOracle Databaseに接続する際に使用される接続情報。

- copyOptions
一括コピー操作の動作を識別するOracleBulkCopyOptionsの列挙値の組合せ。

例外

ArgumentNullException - connectionStringはNullです。

ArgumentException - connectionStringパラメータが空です。

備考

このコンストラクタでは、OracleConnectionクラスの新規インスタンスを使用してOracleBulkCopyクラスの新規インスタンスを初期化します。OracleBulkCopyインスタンスはcopyOptionsパラメータで指定されたオプションに従って動作します。

OracleBulkCopyインスタンスがクローズされると、接続も自動的にクローズされます。

Connectionプロパティは、指定したconnectionStringを使用して初期化されるOracleConnectionオブジェクトに設定されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「OracleBulkCopyOptionsの列挙」

OracleBulkCopyプロパティ

OracleBulkCopyプロパティを、表17-5にリストします。

表17-5 OracleBulkCopyプロパティ

プロパティ

説明

BatchSize

バッチとしてデータベースに送信される行数を指定します

BulkCopyOptions

一括コピー操作の動作を識別するOracleBulkCopyOptionsの列挙値を指定します

BulkCopyTimeout

中断される前に一括コピー操作が完了するまでの秒数を指定します

ColumnMappings

データ・ソースと保存先表間の列マッピングを指定します

Connection

Oracle Databaseが一括コピー操作の実行に使用するOracleConnectionオブジェクトを指定します

DestinationTableName

データがロードされるデータベース表を指定します

NotifyAfter

通知イベントが生成される前に処理された行数を定義します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

BatchSize

このプロパティは、バッチとしてデータベースに送信される行数を指定します。

宣言

// C#
public int BatchSize {get; set;}

プロパティ値

バッチとしてデータベースに送信される行数の整数値。

例外

ArgumentOutOfRangeException - バッチ・サイズがゼロ未満です。

備考

デフォルト値はゼロで、複数のバッチでは行はデータベースに送信されないことを示します。行セット全体が1回のバッチで送信されます。

バッチは、BatchSizeの行数が処理されるか、データベースに送信する行がなくなると完了します。

- BatchSize > 0で、UseInternalTransaction一括コピー・オプションが指定されていると、各一括コピー操作のバッチがトランザクション内に発生します。一括コピー操作の実行に使用される接続がすでにトランザクションの一部である場合、InvalidOperationException例外が発生します。

- BatchSize > 0でUseInternalTransactionオプションが指定されていない場合は、行はサイズBatchSizeの複数のバッチではデータベースに送信されませんが、トランザクション関連のアクションは実行されません。

BatchSizeプロパティの設定はいつでも可能です。一括コピーがすでに実行中である場合、現在のバッチ・サイズは前のバッチ・サイズによって決定されます。後続のバッチには新規のバッチ・サイズが使用されます。

BatchSizeプロパティが最初はゼロで、WriteToServer操作の実行中に変更された場合、その操作は単一バッチとしてデータにロードされます。同じOracleBulkCopyインスタンス上で実行される次回以降のWriteToServer操作では、新規のBatchSizeが使用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「OracleBulkCopyOptionsの列挙」

BulkCopyOptions

このプロパティはOracleBulkCopyOptionsの列挙値を指定し、一括コピー操作の動作を決定します。

宣言

// C#
public OracleBulkCopyOptions BulkCopyOptions {get; set;}

プロパティ値

一括コピー操作の動作を定義するOracleBulkCopyOptionsの列挙オブジェクト。

例外

ArgumentNullException - 一括コピー・オプション・セットはNULLです。

備考

このプロパティのデフォルト値はOracleBulkCopyOptions.Defaultの値です。このプロパティは、一括コピー操作のバッチ間の一括コピー・オプションの変更に使用できます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「OracleBulkCopyOptionsの列挙」

BulkCopyTimeout

このプロパティは、中断される前に一括コピー操作が完了するまでの秒数を指定します。

宣言

// C#
public int BulkCopyTimeout {get; set;}

プロパティ値

一括コピー操作がタイムアウトした後の秒数の整数値。

例外

ArgumentOutOfRangeException - タイムアウト値はゼロ未満に設定されています。

備考

デフォルト値は30秒です。

BatchSize>0の場合、前のバッチでデータベースに送信された行はコミットされたままです。現在のバッチで処理される行はデータベースに送信されません。BatchSize=0である場合データベースに送信される行はありません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

ColumnMappings

このプロパティは、データ・ソースと保存先表間の列マッピングを指定します。

宣言

// C#
public OracleBulkCopyColumnMappingCollection ColumnMappings {get;}

プロパティ値

ソースと保存先表間の列マッピングを定義するOracleBulkCopyColumnMappingCollectionオブジェクト。

備考

ColumnMappingsコレクションは、データ・ソースおよび保存先表がそれぞれ同じ列数で、各ソース列の順序位置が対応する保存先列の順序位置に一致する場合は必要ありません。しかし、列の数が違ったり順序位置が一致しない場合は、データが正しい列にコピーされるか確認するためにColumnMappingsコレクションを使用する必要があります。

一括コピー操作の実行中は、このコレクションにアクセスはできますが変更はできません。

デフォルトでは、このプロパティは列マッピングの空のコレクションを指定します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

Connection

このプロパティは、Oracle Databaseが一括コピー操作の実行に使用するOracleConnectionオブジェクトを指定します。

宣言

// C#
public OracleConnection Connection {get; }

プロパティ値

一括コピー操作に使用されるOracleConnectionオブジェクト。

備考

OracleBulkCopyオブジェクトが接続文字列を使用して初期化されると、このプロパティによってOracleBulkCopyで構成される接続が取得されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

DestinationTableName

このプロパティは、データがロードされるデータベース表を指定します。

宣言

// C#
public string DestinationTableName {get; set;}

プロパティ値

保存先表名を識別する文字列値。

例外

ArgumentNullException - 保存先表名のセットがNullです。

ArgumentException - 保存先表名が空です。

備考

DestinationTableNameがWriteToServer操作が実行中に変更されると、その変更は現在の操作には影響しません。新規のDestinationTableName値は次回のWriteToServerメソッドのコール時に使用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

NotifyAfter

このプロパティは通知イベントが生成される前に処理された行数を定義します。

宣言

// C#
public int NotifyAfter {get; set;}

プロパティ値

通知イベントが発生するまでに処理対象として指定された行数の整数値。

例外

ArgumentOutOfRangeException - プロパティ値がゼロ未満の数値に設定されています。

備考

このプロパティのデフォルト値はゼロで、通知イベントが生成されないことを示します。

このプロパティは、一括コピー操作の進行を表示するユーザー・インタフェース・コンポネントで取得されます。NotifyAfterプロパティの設定は一括コピー操作中であってもいつでも可能です。変更は、同じインスタンスでの次回の通知および次回の操作から有効となります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

OracleBulkCopyパブリック・メソッド

OracleBulkCopyメソッドを、表17-6にリストします。

表17-6 OracleBulkCopyパブリック・メソッド

メソッド

説明

Close

OracleBulkCopyインスタンスをクローズします

Dispose

オブジェクトにより割り当てられたリソースまたはメモリーを解除します

WriteToServer

保存先表に行をコピーします

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

Close

このメソッドは、OracleBulkCopyインスタンスをクローズします。

宣言

// C#
public void Close();

例外

InvalidOperationException - CloseメソッドはOracleRowsCopiedイベントからコールされました。

備考

CloseメソッドがOracleBulkCopyオブジェクトでコールされると、後続の操作は行われません。WriteToServerメソッドをコールしてInvalidOperationExceptionをスローします。接続がOracleBulkCopyオブジェクトによってオープンされている、つまり、接続文字列を取得するコンストラクタによってOracleBulkCopyオブジェクトが作成された場合は、Closeメソッドによって接続がクローズされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

Dispose

このメソッドでは、オブジェクトにより割り当てられたリソースまたはメモリーを解除します。

宣言

// C#
public void Dispose();

実装

IDisposable

備考

DisposeメソッドがOracleBulkCopyオブジェクトでコールされると、次の操作は行われません。接続がOracleBulkCopyオブジェクトによってオープンされている、つまり、接続文字列を取得するコンストラクタによってOracleBulkCopyオブジェクトが作成された場合は、接続がクローズされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

WriteToServer

WriteToServerは保存先表に行をコピーします。

オーバーロード・リスト:

- WriteToServer(DataRow[])
このメソッドでは、指定されたDataRow配列から、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にすべての行がコピーされます。

- WriteToServer(DataTable)
このメソッドでは、指定されたDataTableのすべての行が、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にコピーされます。

- WriteToServer(IDataReader)
このメソッドでは、指定されたIDataReaderのすべての行が、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にコピーされます。

- WriteToServer(DataTable, DataRowState)
このメソッドでは、指定されたDataTableの指定された行の状態に一致する行が、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にコピーされます。

- WriteToServer(OracleRefCursor)
このメソッドでは、指定されたOracleRefCursorから、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にすべての行がコピーされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

WriteToServer(DataRow[])

このメソッドでは、指定されたDataRow配列から、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にすべての行がコピーされます。

宣言

// C#
public void WriteToServer(DataRow[] rows);

パラメータ

- rows
保存先表にコピーするDataRowオブジェクトの配列。

例外

ArgumentNullException - rowsパラメータがNullです。

InvalidOperationException - 接続がオープン状態ではありません。

備考

ColumnMappingsコレクションはDataRow列から保存先データベース表にマップされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

WriteToServer(DataTable)

このメソッドでは、指定されたDataTableのすべての行が、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にコピーされます。

宣言

// C#
public void WriteToServer(DataTable table);

パラメータ

- table
保存先表にコピーする行を含むソースのDataTable。

例外

ArgumentNullException - tableパラメータがNullです。

InvalidOperationException - 接続がオープン状態ではありません。

備考

DataTable内の行は、削除されたものを除いてすべて保存先表にコピーされます。

ColumnMappingsコレクションはDataTable列から保存先データベース表にマップされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

WriteToServer(IDataReader)

このメソッドでは、指定されたIDataReaderのすべての行が、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にコピーされます。

宣言

// C#
public void WriteToServer(IDataReader reader);

パラメータ

- reader
保存先表にコピーする行を含むIDataReaderインスタンス。

例外

ArgumentNullException - readerパラメータがNullです。

InvalidOperationException - 接続がオープン状態ではありません。

備考

一括コピー操作はデータ・リーダーの次に使用可能な行で開始します。通常、ExecuteReaderメソッドへのコールによって戻されるreaderは、次の行が最初の行になるようにWriteToServerメソッドに渡されます。複数の結果セットをコピーするには、アプリケーションはreaderでNextResultをコールし、WriteToServerメソッドを再コールする必要があります。

このWriteToServerメソッドは、reader.Readを内部でコールしてソース行を取得するように、リーダーの状態を変更します。このため、WriteToServer操作が完了すると、結果セットの最後はreaderとなります。

ColumnMappingsコレクションはデータ・リーダー列から保存先データベース表にマップされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

WriteToServer(DataTable, DataRowState)

このメソッドでは、指定されたDataTableの指定された行の状態に一致する行が、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にコピーされます。

宣言

// C#
public void WriteToServer(DataTable table, DataRowState rowState);

パラメータ

- table
保存先表にコピーする行を含むDataTable。

- rowState
DataRowStateの列挙値。行の状態に一致する行のみ保存先にコピーされます。

例外

ArgumentNullException - tableまたはrowStateパラメータがNullです。

InvalidOperationException - 接続がオープン状態ではありません。

備考

DataTable内の行がrowState引数に示されている状態で、削除されていない場合のみ、保存先表にコピーされます。

ColumnMappingsコレクションはDataTable列から保存先データベース表にマップされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

WriteToServer(OracleRefCursor)

このメソッドでは、指定されたOracleRefCursorから、OracleBulkCopyオブジェクトのDestinationTableNameプロパティによって指定された保存先表にすべての行がコピーされます。

宣言

// C#
public void WriteToServer(OracleRefCursor refCursor);

パラメータ

- refCursor
保存先表にコピーする行を含むOracleRefCursorオブジェクト。

例外

ArgumentNullException - refCursorパラメータがNullです

InvalidOperationException - 接続がオープン状態ではありません。

備考

ColumnMappingsコレクションはOracleRefCursor列から保存先データベース表にマップされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

OracleBulkCopyイベント

OracleBulkCopyイベントを、表17-7にリストします。

表17-7 OracleBulkCopyイベント

イベント

説明

OracleRowsCopied

OracleBulkCopy.NotifyAfterプロパティで指定された行数が処理されるたびにトリガーされます

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

OracleRowsCopied

このイベントは、OracleBulkCopy.NotifyAfterプロパティで指定された行数が処理されるたびにトリガーされます。

宣言

// C#
public event OracleRowsCopiedEventHandler OracleRowsCopied;

例外

InvalidOperationException - Closeメソッドはこのイベントでコールされます。

備考

このイベントはNotifyAfterプロパティで指定された行数が処理されると発生します。これは、行がデータベースに送信されるかコミットされることを示すものではありません。

このイベントからの操作を取り消すには、OracleRowsCopiedEventArgsクラスのAbortプロパティを使用します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyクラス

- OracleBulkCopyメンバー

- 「NotifyAfter」

OracleBulkCopyColumnMappingクラス

OracleBulkCopyColumnMappingクラスは、データ・ソースの列および保存先のデータベース表間のマッピングを定義します。

クラスの継承

System.Object

System.OracleBulkCopyColumnMapping

宣言

// C#
public sealed class OracleBulkCopyColumnMapping

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

列のマッピングにより、データ・ソースとターゲット表間のマッピングが定義されます。

データ・ソース内のすべての列に対して列マッピングを指定する必要はありません。ColumnMappingが指定されていない場合は、デフォルトでは、順序位置に基づいて列がマップされます。これはソースと保存先の表スキーマが一致している場合のみ実行されます。一致しない場合はInvalidOperationExceptionがスローされます。

マッピング・コレクション内のすべてのマッピングは、名前また順序位置ごとに行われる必要があります。

注意:
Oracle Data Provider for .NETでは、順序位置でマッピングが指定されている場合は、列名を判別するためにデータベースへのラウンドトリップが1回以上作成されます。このパフォーマンスのオーバーヘッドを回避するには、列名でマッピングを指定してください。

例

// C#

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingメンバー

- OracleBulkCopyColumnMappingコンストラクタ

- OracleBulkCopyColumnMappingプロパティ

OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMappingメンバーは次の表にリストされています。

OracleBulkCopyColumnMappingコンストラクタ

OracleBulkCopyColumnMappingコンストラクタを、表17-8にリストします。

表17-8 OracleBulkCopyColumnMappingコンストラクタ

コンストラクタ

説明

OracleBulkCopyColumnMappingコンストラクタ

OracleBulkCopyColumnMappingクラスの新規インスタンスをインスタンス化します

OracleBulkCopyColumnMappingプロパティ

OracleBulkCopyColumnMappingプロパティを、表17-9にリストします。

表17-9 OracleBulkCopyColumnMappingプロパティ

プロパティ

説明

DestinationColumn

マップされる保存先表の列名を指定します

DestinationOrdinal

マップされる保存先表の列の順序値を指定します

SourceColumn

マップされるデータ・ソースの列名を指定します

SourceOrdinal

マップされるデータ・ソースの列の順序値を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

OracleBulkCopyColumnMappingコンストラクタ

OracleBulkCopyColumnMappingコンストラクタでは、OracleBulkCopyColumnMappingクラスの新規インスタンスをインスタンス化します。

オーバーロード・リスト:

- OracleBulkCopyColumnMapping()
このコンストラクタでは、OracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます

- OracleBulkCopyColumnMapping(int, int)
このコンストラクタでは、指定されたソース列の順序および保存先列の順序を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

- OracleBulkCopyColumnMapping(int, string)
このコンストラクタでは、指定されたソース列の順序および保存先列名を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

- OracleBulkCopyColumnMapping(string, int)
このコンストラクタでは、指定されたソース列名および保存先列の順序を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

- OracleBulkCopyColumnMapping(string, string)
このコンストラクタでは、指定されたソース列名および保存先列名を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMapping()

このコンストラクタでは、OracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopyColumnMapping();

備考

アプリケーションでこのコンストラクタを使用する場合は、SourceColumnまたはSourceOrdinalプロパティを使用するマッピングのソースを定義し、DestinationColumnまたはDestinationOrdinalプロパティを使用するマッピングの保存先を定義する必要があります。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMapping(int, int)

このコンストラクタでは、指定されたソースおよび保存先列の順序位置を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopyColumnMapping(int sourceColumnOrdinal,
int destinationOrdinal);

パラメータ

- sourceColumnOrdinal
データ・ソース内のソース列の順序位置。

- destinationOrdinal
保存先表内の保存先列の順序位置。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMapping(int, string)

このコンストラクタでは、指定されたソース列の順序および保存先列名を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopyColumnMapping(int sourceColumnOrdinal,
string destinationColumn);

パラメータ

- sourceColumnOrdinal
データ・ソース内のソース列の順序位置。

- destinationColumn
保存先表内の保存先列名。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMapping(string, int)

このコンストラクタでは、指定されたソース列名および保存先列の順序を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopyColumnMapping(string sourceColumn, int destinationOrdinal);

パラメータ

- sourceColumn
データ・ソース内のソース列名。

- destinationOrdinal
保存先表内の保存先列の順序位置。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMapping(string, string)

このコンストラクタでは、指定されたソースおよび保存先列名を使用してOracleBulkCopyColumnMappingクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleBulkCopyColumnMapping(string sourceColumn, string destinationColumn);

パラメータ

- sourceColumn
データ・ソース内のソース列名。

- destinationColumn
保存先表内の保存先列名。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMappingプロパティ

OracleBulkCopyColumnMappingプロパティを、表17-10にリストします。

表17-10 OracleBulkCopyColumnMappingプロパティ

プロパティ

説明

DestinationColumn

マップされる保存先表の列名を指定します

DestinationOrdinal

マップされる保存先表の列の順序値を指定します

SourceColumn

マップされるデータ・ソースの列名を指定します

SourceOrdinal

マップされるデータ・ソースの列の順序値を指定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

DestinationColumn

このプロパティは、マップされる保存先表の列名を指定します。

宣言

// C#
public string DestinationColumn {get; set;}

プロパティ値

マッピングの保存先列名を表す文字列値。

備考

DestinationColumnおよびDestinationOrdinalプロパティは相互に排他的です。最新の値セットが優先されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

DestinationOrdinal

このプロパティは、マップされる保存先表の列の順序値を指定します。

宣言

// C#
public int DestinationOrdinal {get; set;}

プロパティ値

マッピングの保存先列の順序を表す整数値。

例外

IndexOutOfRangeException - 保存先の順序が無効です。

備考

DestinationOrdinalおよびDestinationColumnプロパティは相互に排他的です。最新の値セットが優先されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

SourceColumn

このプロパティは、マップされるデータ・ソースの列名を指定します。

宣言

// C#
public string SourceColumn {get; set;}

プロパティ値

マッピングのソース列名を表す文字列値。

備考

SourceColumnおよびSourceOrdinalプロパティは相互に排他的です。最新の値セットが優先されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

SourceOrdinal

このプロパティは、マップされるデータ・ソースの列の順序値を指定します。

宣言

// C#
public int SourceOrdinal {get; set;}

プロパティ値

マッピングのソース列の順序を表す整数値。

例外

IndexOutOfRangeException - ソース順序が無効です。

備考

SourceOrdinalおよびSourceColumnプロパティは相互に排他的です。最新の値セットが優先されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingクラス

- OracleBulkCopyColumnMappingメンバー

OracleBulkCopyColumnMappingCollectionクラス

OracleBulkCopyColumnMappingCollectionクラスは、データ・ソースの列を保存先表の列にマップするために使用するOracleBulkCopyColumnMappingオブジェクトのコレクションを表します。

クラスの継承

System.Object

System.CollectionBase

System.OracleBulkCopyColumnMappingCollection

宣言

// C#
public sealed class OracleBulkCopyColumnMappingCollection : CollectionBase

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

列のマッピングにより、データ・ソースとターゲット表間のマッピングが定義されます。

データ・ソース内のすべての列に対して列マッピングを指定する必要はありません。ColumnMappingが指定されていない場合は、デフォルトでは、順序位置に基づいて列がマップされます。これはソースと保存先の表スキーマが一致している場合のみ実行されます。一致しない場合はInvalidOperationExceptionがスローされます。

マッピング・コレクション内のすべてのマッピングは、名前また順序位置ごとに行われる必要があります。

注意:
Oracle Data Provider for .NETでは、順序位置でマッピングが指定されている場合は、列名を判別するためにデータベースへのラウンドトリップが1回以上作成されます。このパフォーマンスのオーバーヘッドを回避するには、列名でマッピングを指定してください。

例

// C#

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

- OracleBulkCopyColumnMappingCollectionプロパティ

- OracleBulkCopyColumnMappingCollectionパブリック・メソッド

OracleBulkCopyColumnMappingCollectionメンバー

OracleBulkCopyColumnMappingCollectionメンバーは次の表にリスト表示されています。

OracleBulkCopyColumnMappingCollectionプロパティ

OracleBulkCopyColumnMappingCollectionプロパティを、表17-11にリストします。

表17-11 OracleBulkCopyColumnMappingCollectionプロパティ

プロパティ

説明

Item [index]

指定された索引にあるOracleBulkCopyColumnMappingCollectionオブジェクトを取得または設定します

OracleBulkCopyColumnMappingCollectionパブリック・メソッド

OracleBulkCopyColumnMappingCollectionパブリック・メソッドを、表17-12にリストします。

表17-12 OracleBulkCopyColumnMappingCollectionパブリック・メソッド

パブリック・メソッド

説明

Add

オブジェクトをコレクションに追加します

Clear

コレクションの内容をクリアします

Contains

指定されたOracleBulkCopyColumnMappingオブジェクトがコレクション内に存在するかどうかを示す値を戻します

CopyTo

OracleBulkCopyColumnMappingCollectionの要素を、指定された索引で始まるOracleBulkCopyColumnMapping項目の配列にコピーします

IndexOf

指定されたOracleBulkCopyColumnMappingオブジェクトの索引を戻します

Insert

指定された索引にあるコレクションに新規のOracleBulkCopyColumnMappingオブジェクトを挿入します。

Remove

OracleBulkCopyColumnMappingCollectionから指定されたOracleBulkCopyColumnMapping要素を削除します。

RemoveAt

指定された索引にあるコレクションからマッピングを削除します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

OracleBulkCopyColumnMappingCollectionプロパティ

OracleBulkCopyColumnMappingCollectionプロパティを、表17-13にリストします。

表17-13 OracleBulkCopyColumnMappingCollectionプロパティ

プロパティ

説明

Item [index]

指定された索引にあるOracleBulkCopyColumnMappingCollectionオブジェクトを取得または設定します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Item [index]

このプロパティは、指定された索引にあるOracleBulkCopyColumnMappingオブジェクトを取得または設定します。

宣言

// C#
public OracleBulkCopyColumnMapping this[int index] {get;set;}

パラメータ

- index
設定または取得されるOracleBulkCopyColumnMappingのゼロベースの索引。

プロパティ値

指定された索引にあるOracleBulkCopyColumnMappingオブジェクト。

例外

IndexOutOfRangeException - 指定された索引は存在しません。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

OracleBulkCopyColumnMappingCollectionパブリック・メソッド

OracleBulkCopyColumnMappingCollectionパブリック・メソッドを、表17-14にリストします。

表17-14 OracleBulkCopyColumnMappingCollectionパブリック・メソッド

パブリック・メソッド

説明

Add

オブジェクトをコレクションに追加します

Clear

コレクションの内容をクリアします

Contains

指定されたOracleBulkCopyColumnMappingオブジェクトがコレクション内に存在するかどうかを示す値を戻します

CopyTo

OracleBulkCopyColumnMappingCollectionの要素を、指定された索引で始まるOracleBulkCopyColumnMapping項目の配列にコピーします

IndexOf

指定されたOracleBulkCopyColumnMappingオブジェクトの索引を戻します

Insert

指定された索引にあるコレクションに新規のOracleBulkCopyColumnMappingオブジェクトを挿入します。

Remove

OracleBulkCopyColumnMappingCollectionから指定されたOracleBulkCopyColumnMapping要素を削除します。

RemoveAt

指定された索引にあるコレクションからマッピングを削除します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Add

Addメソッドでは、オブジェクトがコレクションに追加されます。

オーバーロード・リスト:

- Add(OracleBulkCopyColumnMapping)
このメソッドでは、指定されたOracleBulkCopyColumnMappingオブジェクトがコレクションに追加されます。

- Add(int, int)
このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソースおよび保存先列の順序位置を使用してコレクションに追加します。

- Add(int, string)
このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソース列の順序および保存先列名を使用してコレクションに追加します。

- Add(string, int)
このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソース列名および保存先列の順序を使用してコレクションに追加します。

- Add(string, string)
このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソースおよび保存先列名を使用してコレクションに追加します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Add(OracleBulkCopyColumnMapping)

このメソッドでは、指定されたOracleBulkCopyColumnMappingオブジェクトがコレクションに追加されます。

宣言

// C#
public OracleBulkCopyColumnMapping Add(OracleBulkCopyColumnMapping  bulkCopyColumnMapping);

パラメータ

- bulkCopyColumnMapping
コレクションに追加されるマッピングを示すOracleBulkCopyColumnMappingオブジェクト。

例外

InvalidOperationException - 一括コピー操作が実行中です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Add(int, int)

このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソースおよび保存先列の順序位置を使用してコレクションに追加します。

宣言

// C#
public OracleBulkCopyColumnMapping Add(int sourceColumnIndex,
int destinationColumnIndex);

パラメータ

- sourceColumnIndex
データ・ソース内のソース列の順序位置。

- destinationColumnIndex
保存先表内の保存先列の順序位置。

例外

InvalidOperationException - 一括コピー操作が実行中です。

戻り値

コレクションに追加された新規作成のOracleBulkCopyColumnMappingオブジェクト。

備考

データ・ソース内のすべての列に対して列マッピングを指定する必要はありません。ColumnMappingが指定されていない場合は、デフォルトでは、順序位置に基づいて列がマップされます。これはソースと保存先の表スキーマが一致している場合のみ実行されます。一致しない場合はInvalidOperationExceptionがスローされます。

マッピング・コレクション内のすべてのマッピングは、名前また順序位置ごとに行われる必要があります。

注意:
Oracle Data Provider for .NETでは、順序位置でマッピングが指定されている場合は、列名を判別するためにデータベースへのラウンドトリップが1回以上作成されます。このパフォーマンスのオーバーヘッドを回避するには、列名でマッピングを指定してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Add(int, string)

このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソース列の順序および保存先列名を使用してコレクションに追加します。

宣言

// C#
public OracleBulkCopyColumnMapping Add(int sourceColumnIndex,
string destinationColumn);

パラメータ

- sourceColumnIndex
データ・ソース内のソース列の順序位置。

- destinationColumn
保存先表内の保存先列名。

例外

InvalidOperationException - 一括コピー操作が実行中です。

戻り値

コレクションに追加された新規作成のOracleBulkCopyColumnMappingオブジェクト。

備考

データ・ソース内のすべての列に対して列マッピングを指定する必要はありません。ColumnMappingが指定されていない場合は、デフォルトでは、順序位置に基づいて列がマップされます。これはソースと保存先の表スキーマが一致している場合のみ実行されます。一致しない場合はInvalidOperationExceptionがスローされます。

マッピング・コレクション内のすべてのマッピングは、名前また順序位置ごとに行われる必要があります。

注意:
Oracle Data Provider for .NETでは、パフォーマンスのオーバーヘッドを引き起こす順序でマッピングが指定されている場合は、列名を判別するためにデータベースへのラウンドトリップが1回以上作成されます。このため、列名でマッピングを指定することをお薦めします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Add(string, int)

このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソース列名および保存先列の順序を使用してコレクションに追加します。

宣言

// C#
public OracleBulkCopyColumnMapping Add(string sourceColumn,
int destinationColumnIndex);

パラメータ

- sourceColumn
データ・ソース内のソース列名。

- destinationColumnIndex
保存先表内の保存先列の順序位置。

戻り値

コレクションに追加された新規作成のOracleBulkCopyColumnMappingオブジェクト。

例外

InvalidOperationException - 一括コピー操作が実行中です。

備考

データ・ソース内のすべての列に対して列マッピングを指定する必要はありません。ColumnMappingが指定されていない場合は、デフォルトでは、順序位置に基づいて列がマップされます。これはソースと保存先の表スキーマが一致している場合のみ実行されます。一致しない場合はInvalidOperationExceptionがスローされます。

マッピング・コレクション内のすべてのマッピングは、名前また順序位置ごとに行われる必要があります。

注意:
Oracle Data Provider for .NETでは、パフォーマンスのオーバーヘッドを引き起こす順序でマッピングが指定されている場合は、列名を判別するためにデータベースへのラウンドトリップが1回以上作成されます。このため、列名でマッピングを指定することをお薦めします。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Add(string, string)

このメソッドは、OracleBulkCopyColumnMappingオブジェクトを作成し、指定されたソースおよび保存先列名を使用してコレクションに追加します。

宣言

// C#
public OracleBulkCopyColumnMapping Add(string sourceColumn,
string destinationColumn);

パラメータ

- sourceColumn
データ・ソース内のソース列名。

- destinationColumn
保存先表内の保存先列名。

例外

InvalidOperationException - 一括コピー操作が実行中です。

戻り値

コレクションに追加された新規作成のOracleBulkCopyColumnMappingオブジェクト。

備考

データ・ソース内のすべての列に対して列マッピングを指定する必要はありません。ColumnMappingが指定されていない場合は、デフォルトでは、順序位置に基づいて列がマップされます。これはソースと保存先の表スキーマが一致している場合のみ実行されます。一致しない場合はInvalidOperationExceptionがスローされます。

マッピング・コレクション内のすべてのマッピングは、名前また順序位置ごとに行われる必要があります。

注意:
Oracle Data Provider for .NETでは、順序位置でマッピングが指定されている場合は、列名を判別するためにデータベースへのラウンドトリップが1回以上作成されます。このパフォーマンスのオーバーヘッドを回避するには、列名でマッピングを指定してください。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Clear

このメソッドでは、コレクションの内容がクリアされます。

宣言

// C#
public void Clear();

例外

InvalidOperationException - 一括コピー操作が実行中です。

備考

Clearメソッドは、アプリケーションが単一のOracleBulkCopyインスタンスを使用して1つ以上の一括コピー操作を処理する場合に最も使用します。列マッピングが1度の一括コピー操作のために作成される場合、OracleBulkCopyColumnMappingCollectionは、WriteToServerメソッドの呼出し後、および次回の一括コピーの前にクリアされる必要があります。

各操作に対して個別のOracleBulkCopyを使用するより、同じOracleBulkCopyインスタンスを使用して複数の一括コピーを実行する方が効率的です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Contains

このメソッドは、指定されたOracleBulkCopyColumnMappingオブジェクトがコレクション内に存在するかどうかを示す値を戻します。

宣言

// C#
public bool Contains(OracleBulkCopyColumnMapping value);

パラメータ

- value
有効なOracleBulkCopyColumnMappingオブジェクト。

戻り値

指定されたマッピングがコレクションに存在する場合はtrueを、存在しない場合はfalseを戻します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

CopyTo

このメソッドでは、OracleBulkCopyColumnMappingCollectionの要素が、指定された索引で始まるOracleBulkCopyColumnMapping項目の配列にコピーされます。

宣言

// C#
public void CopyTo(OracleBulkCopyColumnMapping[] array, int index);

パラメータ

- array
OracleBulkCopyColumnMappingCollectionオブジェクトからコピーされた要素の保存先である1次元のOracleBulkCopyColumnMapping配列。配列はゼロベースの索引を持つ必要があります。

- index
コピーが開始するゼロベース配列の索引。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

IndexOf

このメソッドは、指定されたOracleBulkCopyColumnMappingオブジェクトの索引を戻します。

宣言

// C#
public int IndexOf(OracleBulkCopyColumnMapping value);

パラメータ

- value
戻されるOracleBulkCopyColumnMappingオブジェクト。

戻り値

列マッピングがコレクション内にない場合のゼロベースの列マッピングの索引または-1。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Insert

このメソッドは、指定された索引にあるコレクションに新規のOracleBulkCopyColumnMappingオブジェクトを挿入します。

宣言

// C#
public void Insert(int index, OracleBulkCopyColumnMapping value);

パラメータ

- index
新規のOracleBulkCopyColumnMappingが挿入されるOracleBulkCopyColumnMappingCollection内の位置の整数値。

- value
コレクションに挿入されるOracleBulkCopyColumnMappingオブジェクト。

例外

InvalidOperationException - 一括コピー操作が実行中です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

Remove

このメソッドは、OracleBulkCopyColumnMappingCollectionから指定されたOracleBulkCopyColumnMapping要素を削除します。

宣言

// C#
public void Remove(OracleBulkCopyColumnMapping value);

パラメータ

- value
コレクションから削除されるOracleBulkCopyColumnMappingオブジェクト。

例外

InvalidOperationException - 一括コピー操作が実行中です。

備考

Removeメソッドは、OracleBulkCopyインスタンスが1つ以上の一括コピー操作を処理する場合に最も使用します。列マッピングが1度の一括コピー操作のために作成される場合、適用されないマッピングはWriteToServerメソッドの呼出し後および次回の一括コピー用にマッピングが定義される前に削除する必要があります。Clearメソッドはコレクション全体をクリアし、RemoveおよびRemoveAtメソッドは個々のマッピングを削除します。

各操作に対して個別のOracleBulkCopyを使用するより、同じOracleBulkCopyインスタンスを使用して複数の一括コピーを実行する方が効率的です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

RemoveAt

このメソッドは、指定された索引にあるコレクションからマッピングを削除します。

宣言

// C#
public void RemoveAt(int index);

パラメータ

- index
コレクションから削除されるOracleBulkCopyColumnMappingオブジェクトのゼロベースの索引。

例外

InvalidOperationException - 一括コピー操作が実行中です。

備考

RemoveAtメソッドは、OracleBulkCopyインスタンスが1つ以上の一括コピー操作を処理する場合に最も使用します。列マッピングが1度の一括コピー操作のために作成される場合、適用されないマッピングはWriteToServerメソッドの呼出し後および次回の一括コピー用にマッピングが定義される前に削除する必要があります。Clearメソッドはコレクション全体をクリアし、RemoveおよびRemoveAtメソッドは個々のマッピングを削除します。

各操作に対して個別のOracleBulkCopyを使用するより、同じOracleBulkCopyインスタンスを使用して複数の一括コピーを実行する方が効率的です。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyColumnMappingCollectionクラス

- OracleBulkCopyColumnMappingCollectionメンバー

OracleBulkCopyOptionsの列挙

OracleBulkCopyOptionsの列挙は、OracleBulkCopyクラスのインスタンスと組み合せることができ、列挙の動作とインスタンスのWriteToServerメソッドの動作を識別するオプションとして使用可能な値を指定します。

表17-15は、すべてのOracleBulkCopyOptionsの列挙値と、それぞれの列挙値の説明をリストします。

表17-15 OracleBulkCopyOptionsの列挙メンバー

メンバー名

説明

Default

すべてのオプションに対してデフォルト値が使用可能であることを示します

UseInternalTransaction

トランザクション内で一括コピー操作のバッチが発生することを示します。一括コピー操作の実行に使用される接続がすでにトランザクションの一部である場合、InvalidOperationException例外が発生します。

このメンバーが指定されていない場合、トランザクションに関連したアクティビティなしに、行のBatchSize番号がデータベースに送信されます。

注意:
すべての一括コピー操作は、アプリケーションによって作成されるローカル・トランザクションまたは分散トランザクションに関係なく有効です。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleBulkCopyの「BulkCopyOptions」

OracleRowsCopiedEventHandlerデリゲート

OracleRowsCopiedEventHandlerデリゲートは、OracleBulkCopyオブジェクトのOracleRowsCopiedイベントを処理するメソッドを表します。

宣言

// C#
public delegate void OracleRowsCopiedEventHandler (object sender,    OracleRowsCopiedEventArgs eventArgs);

パラメータ

- sender
イベントのソース

- eventArgs
イベント・データが含まれるOracleRowsCopiedEventArgsオブジェクト。

備考

イベントのコールバックは、OracleBulkCopy.NotifyAfterプロパティで指定された行数が処理されるたびに通知されるアプリケーションのイベント・デリゲートを介して登録されます。

イベント・ハンドラがOracleBulkCopy.Closeメソッドをコールすると例外が発生し、OracleBulkCopyオブジェクトの状態は変更されません。

また、イベント・ハンドラは一括コピー操作の中断を示すために、OracleRowsCopiedEventArgs.Abortプロパティをtrueに設定できます。一括コピー操作が外部トランザクションの一部の場合、例外が発生し、トランザクションはロールバックされません。アプリケーションは外部トランザクションのコミットまたはロールバックを担当します。

外部トランザクションがない場合、現在の行のバッチの内部トランザクションが自動的にロールバックされます。ただし、トランザクションがすでにコミットされているので、前にインポートした行のバッチには影響はありません。

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4

関連項目:

- Oracle.DataAccess.Clientネームスペース

- 「OracleRowsCopied」

- 「NotifyAfter」

OracleRowsCopiedEventArgsクラス

OracleRowsCopiedEventArgsクラスは、OracleRowsCopiedイベントのイベント・データの一部として渡された引数のセットを表します。

クラスの継承

System.Object

System.EventArgs

System.OracleRowsCopiedEventArgs

宣言

// C#
public class OracleRowsCopiedEventArgs : EventArgs

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleBulkCopy.NotifyAfterプロパティで表される行数が処理されるたびに、イベント・データを格納するOracleRowsCopiedEventArgsオブジェクトを提供するOracleBulkCopy.OracleRowsCopiedイベントが発生します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsメンバー

- OracleRowsCopiedEventArgsコンストラクタ

- OracleRowsCopiedEventArgsプロパティ

OracleRowsCopiedEventArgsメンバー

OracleRowsCopiedEventArgsメンバーは次の表にリストされています。

OracleRowsCopiedEventArgsコンストラクタ

OracleRowsCopiedEventArgsコンストラクタを、表17-16にリストします。

表17-16 OracleRowsCopiedEventArgsコンストラクタ

コンストラクタ

説明

OracleRowsCopiedEventArgsコンストラクタ

OracleRowsCopiedEventArgsはOracleRowsCopiedEventArgsクラスの新規インスタンスを作成します

OracleRowsCopiedEventArgsプロパティ

OracleRowsCopiedEventArgsプロパティを、表17-17にリストします。

表17-17 OracleRowsCopiedEventArgsプロパティ

プロパティ

説明

Abort

一括コピー操作が中断されたかどうかを示す値を取得または設定します

RowsCopied

現在の一括コピー操作中にコピーされた行数を表す値を取得します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsクラス

OracleRowsCopiedEventArgsコンストラクタ

OracleRowsCopiedEventArgsはOracleRowsCopiedEventArgsクラスの新規インスタンスを作成します。

オーバーロード・リスト:

- OracleRowsCopiedEventArgs(long)
このコンストラクタでは、OracleRowsCopiedEventArgsオブジェクトの新規インスタンスを作成します。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsクラス

- OracleRowsCopiedEventArgsメンバー

OracleRowsCopiedEventArgs(long)

このコンストラクタでは、OracleRowsCopiedEventArgsオブジェクトの新規インスタンスを作成します。

宣言

// C#
public OracleRowsCopiedEventArgs(long rowsCopied);

パラメータ

- rowsCopied
現行の一括コピー操作中に、コピーされた行数を示すInt64値。

備考

rowsCopiedパラメータの値は、WriteToServerメソッドへの各コールによりリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsクラス

- OracleRowsCopiedEventArgsメンバー

OracleRowsCopiedEventArgsプロパティ

OracleRowsCopiedEventArgsプロパティを、表17-18にリストします。

表17-18 OracleRowsCopiedEventArgsプロパティ

プロパティ

説明

Abort

一括コピー操作が中断されたかどうかを示す値を取得または設定します

RowsCopied

現在の一括コピー操作中にコピーされた行数を表す値を取得します

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsクラス

- OracleRowsCopiedEventArgsメンバー

Abort

このプロパティは一括コピー操作を中断するかどうかを示す値を取得し、設定します。

宣言

// C#
public bool Abort{get; set;}

プロパティ値

一括コピー操作が中断される場合はtrueが戻され、それ以外の場合falseが戻されます。

備考

Abortプロパティをtrueに設定して、一括コピー操作を取り消します。

CloseメソッドがOracleRowsCopiedからコールされると例外が発生し、OracleBulkCopyオブジェクトの状態は変更されません。

アプリケーションによってトランザクションが作成されない場合、現在のバッチと一致する内部トランザクションが自動的にロールバックされます。ただし、前のバッチのトランザクションがコミットされているため、一括コピー操作で前のバッチに関連した変更は保持されます。これは、UseInternalTransaction一括コピー・オプションが選択されている場合のみ、適用されます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsクラス

- OracleRowsCopiedEventArgsメンバー

RowsCopied

このプロパティは、現在の一括コピー操作中にコピーされた行数を表す値を取得します。

宣言

// C#
public long RowsCopied {get;}

プロパティ値

コピーされた行数を戻すInt64値。

備考

RowsCopiedプロパティの値はWriteToServerメソッドへの各コールによりリセットされます。

関連項目:

- Oracle.DataAccess.Clientネームスペース

- OracleRowsCopiedEventArgsクラス

- OracleRowsCopiedEventArgsメンバー

A Oracleスキーマ・コレクション

ODP.NETでは、標準のメタデータ・コレクションと同様に、OracleConnection.GetSchema APIから取得できるOracle Database固有の様々なメタデータ・コレクションも提供します。

関連項目:

- 「スキーマ検出のサポート」

- 「GetSchema」

この付録の内容は次のとおりです。

- 共通スキーマ・コレクション

- ODP.NET固有スキーマ・コレクション

共通スキーマ・コレクション

共通スキーマ・コレクションは、すべての.NET Framework管理プロバイダで使用できます。ODP.NETでは、同じ共通スキーマ・コレクションがサポートされています。

関連項目:
MSDNライブラリ内の共通スキーマ・コレクションの理解に関する説明

- MetaDataCollections

- DataSourceInformation

- DataTypes

- Restrictions

- ReservedWords

MetaDataCollections

表A-1は、表、列、索引、ストアド・プロシージャなどのデータ・ソースから使用できるメタデータ・コレクションのリストです。

表A-1 MetaDataCollections

列名

データ型

説明

CollectionName

string

コレクションを取得するためにGetSchemaメソッドに渡される名前。

NumberOfRestrictions

int

名前付きコレクションに指定されている制限の数。

NumberOfIdentifierParts

int

複合識別子/データベース・オブジェクト名の構成要素の数。

DataSourceInformation

表A-2に、DataSourceInformation情報をリストします。この情報には次の列(場合によっては他の列も)が含まれます。

表A-2 DataSourceInformation

列

データ型

説明

CompositeIdentifierSeparatorPattern

string

マルチパート名のセパレータ: @ | \。

DataSourceProductName

string

データベース名: Oracle

DataSourceProductVersion

string

Databaseバージョン。これは現在DbConnectionによってアクセスされるデータベース・インスタンスのバージョンを表します。

DataSourceProductVersionNormalized

string

異なるバージョンをより簡単に比較するため、正規化されたDataSourceバージョン。次に例を示します。

DataSourceバージョン: 10.2.0.1.0

正規化されたDataSourceバージョン: 10.02.00.01.00

GroupByBehavior

GroupByBehavior

GROUP BY句の列と、選択リスト内の非集計列との関連を示す列挙。

IdentifierPattern

string

有効な識別子の書式。

IdentifierCase

IdentifierCase

非引用識別子の大/小文字を区別するかどうかを指定する列挙。

OrderByColumnsInSelect

bool

選択リストのORDER BY句に列を指定する必要があるかどうかを指定するブール値。

ParameterMarkerFormat

string

パラメータ・マーカーが特殊文字で開始しているかどうかを示す文字列。

ParameterMarkerPattern

string

パラメータ・マーカーの書式。

ParameterNameMaxLength

int

パラメータの最大長。

ParameterNamePattern

string

有効なパラメータ名の書式。

QuotedIdentifierPattern

string

引用識別子の書式。

QuotedIdentifierCase

IdentifierCase

引用識別子の大/小文字を区別するかどうかを指定する列挙。

StringLiteralPattern

string

文字列リテラルの書式。

SupportedJoinOperators

SupportedJoin演算子

データ・ソースでサポートされるSQL結合文の型を示す列挙。

DataTypes

表A-3に、DataTypesコレクション情報をリストします。この情報には次の列(場合によっては他の列も)が含まれます。

注意:
一例として、TIMESTAMP WITH LOCAL TIME ZONEデータ型の完全な情報を説明の列に示します。

表A-3 DataTypes

列名

データ型

説明

TypeName

string

プロバイダ固有のデータ型名。

例: TIMESTAMP WITH LOCAL TIME ZONE

ProviderDbType

int

プロバイダ固有の型の値。

例: 124

ColumnSize

long

非数値列またはパラメータの長さ。

例: 27

CreateFormat

string

この列をDDL文に追加する方法を示す書式文字列。

例: TIMESTAMP({0} WITH LOCAL TIME ZONE)

CreateParameters

string

このデータ型の列を作成するために指定されたパラメータ。

例: 8

DataType

string

データ型の.NETタイプ。

例: System.DateTime

IsAutoIncrementable

bool

このデータ型を自動インクリメントにできるかどうかを示すブール値。

例: false

IsBestMatch

bool

このデータ型がDataType列の値に最も一致しているかどうかを示すブール値。

例: false

IsCaseSensitive

bool

このデータ型の大/小文字を区別するかどうかを示すブール値。

例: false

IsFixedLength

bool

このデータ型に固定長があるかどうかを示すブール値。

例: true

IsFixedPrecisionScale

bool

このデータ型に固定の精度とスケールがあるかどうかを示すブール値。

例: false

IsLong

bool

このデータ型に非常に長いデータが含まれているかどうかを示すブール値。

例: false

IsNullable

bool

このデータ型にNULLを指定できるかどうかを示すブール値。

例: true

IsSearchable

bool

データ型をLIKE述語以外の演算子とともにWHERE句で使用できるかどうかを示すブール値。

例: true

IsSearchableWithLike

bool

このデータ型をLIKE述語とともに使用できるかどうかを示すブール値。

例: false

IsUnsigned

bool

このデータ型を符号なしにできるかどうかを示すブール値。

MaximumScale

short

小数点の右側に指定できる最大桁数。

MinimumScale

short

小数点の右側に指定できる最小桁数。

IsConcurrencyType

bool

行の変更に伴って列が以前と異なる値になるたびに、データベースではデータ型を更新するかどうかを示すブール値。

例: false

MinimumVersion

String

使用可能な最も古いデータベース・バージョン。

例: 09.00.00.00.00

IsLiteralSupported

bool

このデータ型をリテラルとして表現できるかどうかを示すブール値。

例: true

LiteralPrefix

string

指定したリテラルの接頭辞。

例: TO_TIMESTAMP_TZ('

LiteralSuffix

string

指定したリテラルの接尾辞。

例: ','YYYY-MM-DD HH24:MI:SS.FF')

Restrictions

表A-4に、Restrictionsをリストします。次の列が含まれます。

表A-4 Restrictions

列名

データ型

説明

CollectionName

string

制限を適用するコレクション。

RestrictionName

string

制限名。

RestrictionNumber

int

制限の位置を示す番号。

ReservedWords

ReservedWordsコレクションは、現在ODP.NETに接続しているデータベースに予約されている用語についての情報を表します。

表A-5に、ReservedWordsコレクションをリストします。

表A-5 ReservedWords

列名

データ型

説明

ReservedWord

string

プロバイダ固有の予約語

ODP.NET固有スキーマ・コレクション

Oracle Data Provider for .NETでは、前に述べた共通スキーマ・コレクションと、次のOracle固有スキーマ・コレクションが両方サポートされています。

- Tables

- Columns

- Views

- XMLSchema

- Users

- Synonyms

- Sequences

- Functions

- Procedures

- ProcedureParameters

- Arguments

- Packages

- PackageBodies

- JavaClasses

- Indexes

- IndexColumns

- PrimaryKeys

- ForeignKeys

- ForeignKeyColumns

- UniqueKeys

Tables

表A-6に、Tablesスキーマ・コレクションの列名、データ型および説明をリストします。

表A-6 Tables

列名

データ型

説明

OWNER

String

表の所有者。

TABLE_NAME

String

表の名前。

TYPE

String

表のタイプ(例: System、User)。

Columns

表A-7に、Columnsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-7 Columns

列名

データ型

説明

OWNER

String

表またはビューの所有者。

TABLE_NAME

String

表またはビューの名前。

COLUMN_NAME

String

列の名前。

ID

Decimal

列が作成された際の順序番号。

DATATYPE

String

列のデータ型。

LENGTH

Decimal

列の長さ(バイト数)。

PRECISION

Decimal

NUMBERデータ型の10進精度。FLOATデータ型の場合は2進精度、その他すべてのデータ型についてはNULLです。

Scale

Decimal

数値による小数点の右側の桁数。

NULLABLE

String

列にNULLを許容するかどうかを指定します。

CHAR_USED

String

列がBYTE長セマンティクス(B)またはCHAR長セマンティクス(C)を使用するかどうかを示します。

LengthInChars

Decimal

列の長さ(文字数)。

この値はCHAR、VARCHAR2、NCHARおよびNVARCHAR2のみに適用されます。

Views

表A-8に、Viewsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-8 Views

列名

データ型

説明

OWNER

String

ビューの所有者。

VIEW_NAME

String

ビューの名前。

TEXT_LENGTH

Decimal

ビュー・テキストの長さ。

TEXT

String

ビュー・テキスト。

TYPE_TEXT_LENGTH

Decimal

型指定ビューのTYPE句の長さ。

TYPE_TEXT

String

型指定ビューのTYPE句。

OID_TEXT_LENGTH

Decimal

型指定ビューのWITH OID句の長さ。

OID_TEXT

String

型指定ビューのWITH OID句。

VIEW_TYPE_OWNER

String

ビュー・タイプの所有者(ビューが型指定ビューの場合)。

VIEW_TYPE

String

ビューのタイプ(ビューが型指定ビューの場合)。

SUPERVIEW_NAME

String

スーパービュー表の名前。

(Oracle9i以降)

XMLSchema

表A-9に、XMLSchemaスキーマ・コレクションの列名、データ型および説明をリストします。

注意:
このコレクションは、Oracle Database 10g以降のみで使用できます。

表A-9 XMLSchema

列名

データ型

説明

OWNER

String

XMLスキーマの所有者。

SCHEMA_URL

String

XMLスキーマのスキーマURL。

LOCAL

String

XMLスキーマがローカル(YES)かグローバル(NO)かを示します。

SCHEMA

String

XMLスキーマ文書。

INT_OBJNAME

String

スキーマの内部データベース・オブジェクト名。

QUAL_SCHEMA_URL

String

完全修飾されたスキーマURL。

HIER_TYPE

String

スキーマの階層タイプ。

Users

表A-10に、Usersスキーマ・コレクションの列名、データ型および説明をリストします。

表A-10 Users

列名

データ型

説明

NAME

String

ユーザーの名前。

ID

Decimal

ユーザーのID番号。

CREATEDATE

DateTime

ユーザー作成日。

Synonyms

表A-11に、Synonymsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-11 Synonyms

列名

データ型

説明

OWNER

String

シノニムの所有者。

SYNONYM_NAME

String

シノニムの名前。

TABLE_OWNER

String

シノニムが参照するオブジェクトの所有者。列名はTABLE_OWNERですが、所有オブジェクトが表である必要はありません。ビュー、順序、ストアド・プロシージャ、シノニムなどの一般的なオブジェクトにできます。

TABLE_NAME

String

シノニムが参照するオブジェクトの名前。列名はTABLE_NAMEですが、オブジェクトが表である必要はありません。ビュー、順序、ストアド・プロシージャ、シノニムなどの一般的なオブジェクトにできます。

DB_LINK

String

参照されるデータベース・リンクの名前(ある場合)。

Sequences

表A-12に、Sequencesスキーマ・コレクションの列名、データ型および説明をリストします。

表A-12 Sequences

列名

データ型

説明

SEQUENCE_OWNER

String

順序の所有者名。

SEQUENCE_NAME

String

順序名。

MIN_VALUE

Decimal

順序の最小値。

MAX_VALUE

Decimal

順序の最大値。

INCREMENT_BY

Decimal

順序の増分値。

CYCLE_FLAG

String

制限に達したときに順序を循環するかどうかを示します。

ORDER_FLAG

String

順序番号が順番どおりに生成されるかどうかを示します。

CACHE_SIZE

Decimal

キャッシュする順序番号の数。

LAST_NUMBER

Decimal

ディスクに書き込む最後の順序番号。順序でキャッシュを使用する場合、ディスクに書き込まれる番号は順序キャッシュ内の最後の番号です。ほとんどの場合、この番号は最後に使用された順序番号より大きくなります。

Functions

表A-13に、Functionsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-13 Functions

列名

データ型

説明

OWNER

String

ファンクションの所有者。

OBJECT_NAME

String

ファンクションの名前。

SUBOBJECT_NAME

String

サブオブジェクト(パーティションなど)の名前。

OBJECT_ID

Decimal

ファンクションのディクショナリ・オブジェクト番号。

DATA_OBJECT_ID

Decimal

ファンクションが格納されているセグメントのディクショナリ・オブジェクト番号。

CREATED

DateTime

ファンクション作成時のタイムスタンプ。

LAST_DDL_TIME

DateTime

DDL文(権限の付与と削除を含む)で生じたファンクションに対する変更の最新タイムスタンプ。

TIMESTAMP

String

ファンクション仕様部のタイムスタンプ(文字データ)。

STATUS

String

ファンクションのステータス(VALID、INVALIDまたはN/A)。

TEMPORARY

String

ファンクションが一時的(現行セッションで参照できるのは、このオブジェクト自体に配置されているデータのみ)かどうかを示します。

GENERATED

String

このファンクションの名前がシステム生成(Y)かシステム生成でない(N)かを示します。

SECONDARY

String

これがOracle Data CartridgeのODCIIndexCreateメソッドによって作成された2次オブジェクトであるかどうかを示します(YまたはN)。

Procedures

表A-14に、Proceduresスキーマ・コレクションの列名、データ型および説明をリストします。

表A-14 Procedures

列名

データ型

説明

OWNER

String

プロシージャの所有者。

OBJECT_NAME

String

プロシージャの名前。

SUBOBJECT_NAME

String

サブオブジェクト(パーティションなど)の名前。

OBJECT_ID

Decimal

プロシージャのディクショナリ・オブジェクト番号。

DATA_OBJECT_ID

Decimal

プロシージャが格納されているセグメントのディクショナリ・オブジェクト番号。

CREATED

DateTime

プロシージャ作成時のタイムスタンプ。

LAST_DDL_TIME

Decimal

DDL文(権限の付与と削除を含む)で生じたプロシージャに対する変更の最新タイムスタンプ。

TIMESTAMP

String

プロシージャ仕様部のタイムスタンプ(文字データ)。

STATUS

String

プロシージャのステータス(VALID、INVALIDまたはN/A)。

TEMPORARY

String

プロシージャが一時的(現行セッションで参照できるのは、このオブジェクト自体に配置されているデータのみ)かどうかを示します。

GENERATED

String

このプロシージャの名前がシステム生成(Y)かシステム生成でない(N)かを示します。

SECONDARY

String

これがOracle Data CartridgeのODCIIndexCreateメソッドによって作成された2次オブジェクトであるかどうかを示します(YまたはN)。

ProcedureParameters

表A-15に、ProcedureParametersスキーマ・コレクションの列名、データ型および説明をリストします。

表A-15 ProcedureParameters

列名

データ型

説明

OWNER

String

オブジェクトの所有者。

OBJECT_NAME

String

プロシージャまたはファンクションの名前。

PACKAGE_NAME

String

パッケージの名前。

OBJECT_ID

Decimal

オブジェクトのオブジェクト番号。

OVERLOAD

String

ソースでの出現順でn回目のオーバーロードであることを示します。オーバーロードでない場合はNULLです。

SUBPROGRAM_ID

Decimal

プロシージャまたはファンクションのサブプログラムID。

ARGUMENT_NAME

String

引数がスカラー型の場合、引数名はその引数の名前です。NULLの引数名はファンクション戻り値を示すために使用されます。

POSITION

Decimal

DATA_LEVELがゼロの場合、この列には、引数リストでのこの項目の位置またはファンクション戻り値(ゼロ)が入ります。

SEQUENCE

Decimal

引数の順番を定義します。引数の順序は1から開始します。

DATA_LEVEL

Decimal

コンポジット型に対する引数のネストの深さ。

DATA_TYPE

String

引数のデータ型。

DEFAULT_VALUE

String

引数のデフォルト値。

DEFAULT_LENGTH

Decimal

引数のデフォルト値の長さ。

IN_OUT

String

引数の方向([IN] [OUT] [IN/OUT])。

DATA_LENGTH

Decimal

列の長さ(バイト数)。

DATA_PRECISION

Decimal

10進数(NUMBER)または2進数(FLOAT)の長さ。

DATA_SCALE

Decimal

数値による小数点の右側の桁数。

RADIX

Decimal

数値に対する引数の基数。

CHARACTER_SET_NAME

String

引数のキャラクタ・セット名。

TYPE_OWNER

String

引数の型の所有者。

TYPE_NAME

String

引数の型の名前。型がパッケージ・ローカル型(つまり、パッケージ仕様部に宣言されている)の場合、この列にはパッケージの名前が表示されます。

TYPE_SUBNAME

String

TYPE_NAME列で識別されるパッケージ内に宣言されている型の名前が表示されます。

パッケージ・ローカル型の場合にのみ関係します。

TYPE_LINK

String

リモート・パッケージを参照するデータベース・リンクが表示されます。

TYPE_NAME列で識別されるパッケージがリモート・パッケージの場合は、パッケージ・ローカル型にのみ関係します。

PLS_TYPE

String

数値引数の場合は引数のPL/SQL型の名前。それ以外の場合はNullです。

CHAR_LENGTH

Decimal

文字列データ型の文字制限。

CHAR_USED

String

バイト制限(B)または文字制限(C)が文字列に対する正規の制限かどうかを示します。

Arguments

表A-16に、Argumentsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-16 Arguments

列名

データ型

説明

OWNER

String

オブジェクトの所有者。

PACKAGE_NAME

String

パッケージの名前。

OBJECT_NAME

String

プロシージャまたはファンクションの名前。

ARGUMENT_NAME

String

引数がスカラー型の場合、引数名はその引数の名前です。NULLの引数名はファンクション戻り値を示すために使用されます。

POSITION

Decimal

DATA_LEVELがゼロの場合、この列には、引数リストでのこの項目の位置またはファンクション戻り値(ゼロ)が入ります。

SEQUENCE

Decimal

引数の順番を定義します。引数の順序は1から開始します。

DEFAULT_VALUE

String

引数のデフォルト値。

DEFAULT_LENGTH

Decimal

引数のデフォルト値の長さ。

IN_OUT

String

引数の方向([IN] [OUT] [IN/OUT])。

DATA_LENGTH

Decimal

列の長さ(バイト数)。

DATA_PRECISION

Decimal

10進数(NUMBER)または2進数(FLOAT)の長さ。

DATA_SCALE

Decimal

数値による小数点の右側の桁数。

DATA_TYPE

String

引数のデータ型。

CHAR_USED

String

列がBYTE長セマンティクス(B)またはCHAR長セマンティクス(C)を使用するかどうかを示します。

Packages

表A-17に、Packagesスキーマ・コレクションの列名、データ型および説明をリストします。

表A-17 Packages

列名

データ型

説明

OWNER

String

パッケージの所有者。

OBJECT_NAME

String

パッケージの名前。

SUBOBJECT_NAME

String

サブオブジェクト(パーティションなど)の名前。

OBJECT_ID

Decimal

パッケージのディクショナリ・オブジェクト番号。

DATA_OBJECT_ID

Decimal

パッケージが格納されているセグメントのディクショナリ・オブジェクト番号。

CREATED

DateTime

パッケージ作成時のタイムスタンプ。

LAST_DDL_TIME

DateTime

DDL文(権限の付与と削除を含む)で生じたパッケージに対する変更の最新タイムスタンプ。

TIMESTAMP

String

パッケージ仕様部のタイムスタンプ(文字データ)。

STATUS

String

パッケージのステータス(VALID、INVALIDまたはN/A)。

TEMPORARY

String

パッケージが一時的(現行セッションで参照できるのは、このオブジェクト自体に配置されているデータのみ)かどうかを示します。

GENERATED

String

このパッケージの名前がシステム生成(Y)かシステム生成でない(N)かを示します。

SECONDARY

String

これがOracle Data CartridgeのODCIIndexCreateメソッドによって作成された2次オブジェクトであるかどうかを示します(YまたはN)。

PackageBodies

表A-18に、PackageBodiesスキーマ・コレクションの列名、データ型および説明をリストします。

表A-18 PackageBodies

列名

データ型

説明

OWNER

String

パッケージ本体の所有者。

OBJECT_NAME

String

パッケージ本体の名前。

SUBOBJECT_NAME

String

サブオブジェクト(パーティションなど)の名前。

OBJECT_ID

Decimal

パッケージ本体のディクショナリ・オブジェクト番号。

DATA_OBJECT_ID

Decimal

パッケージ本体が格納されているセグメントのディクショナリ・オブジェクト番号。

CREATED

DateTime

パッケージ本体作成時のタイムスタンプ。

LAST_DDL_TIME

DateTime

DDL文(権限の付与と削除を含む)で生じたパッケージ本体に対する変更の最新タイムスタンプ。

TIMESTAMP

String

パッケージ本体の仕様部のタイムスタンプ(文字データ)。

STATUS

String

パッケージ本体のステータス(VALID、INVALIDまたはN/A)。

TEMPORARY

String

パッケージ本体が一時的(現行セッションで参照できるのは、このオブジェクト自体に配置されているデータのみ)かどうかを示します。

GENERATED

String

このパッケージ本体の名前がシステム生成(Y)かシステム生成でない(N)かを示します。

SECONDARY

String

これがOracle Data CartridgeのODCIIndexCreateメソッドによって作成された2次オブジェクトであるかどうかを示します(YまたはN)。

JavaClasses

表A-19に、JavaClassesスキーマ・コレクションの列名、データ型および説明をリストします。

表A-19 JavaClasses

列名

データ型

説明

OWNER

String

Javaクラスの所有者。

NAME

String

Javaクラスの名前。

MAJOR

Decimal

JVM仕様に定義されているJavaクラスのメジャー・バージョン番号。

MINOR

Decimal

JVM仕様に定義されているJavaクラスのマイナー・バージョン番号。

KIND

String

格納されているオブジェクトがJavaクラス(CLASS)かJavaインタフェース(INTERFACE)かを示します。

ACCESSIBILITY

String

Javaクラスのアクセス・レベル。

IS_INNER

String

このJavaクラスが内部クラス(YES)か内部クラスでない(NO)かを示します。

IS_ABSTRACT

String

このJavaクラスが抽象クラス(YES)か抽象クラスでない(NO)かを示します。

IS_FINAL

String

このJavaクラスが最終クラス(YES)か最終クラスでない(NO)かを示します。

IS_DEBUG

String

このJavaクラスにデバッグ情報が含まれている(YES)か含まれていない(NO)かを示します。

SOURCE

String

Javaクラスのソース指定。

SUPER

String

このJavaクラスのスーパー・クラス。

OUTER

String

このJavaクラスの外部クラス(このJavaクラスが内部クラスの場合)。

Indexes

表A-20に、Indexesスキーマ・コレクションの列名、データ型および説明をリストします。

表A-20 Indexes

列名

データ型

説明

OWNER

String

索引の所有者。

INDEX_NAME

String

索引の名前。

INDEX_TYPE

String

索引のタイプ。

- NORMAL

- BITMAP

- FUNCTION-BASED NORMAL

- FUNCTION-BASED BITMAP

- DOMAIN

TABLE_OWNER

String

索引オブジェクトの所有者。

TABLE_NAME

String

索引オブジェクトの名前。

TABLE_TYPE

String

索引オブジェクトのタイプ(TABLE、CLUSTERなど)。

UNIQUENESS

String

索引がUNIQUEかNONUNIQUEかを示します。

COMPRESSION

String

索引の圧縮が有効(ENABLED)か無効(DISABLED)かを示します。

PREFIX_LENGTH

Decimal

圧縮キーの接頭辞の列数。

TABLESPACE_NAME

String

索引が格納されている表領域の名前。

INI_TRANS

Decimal

トランザクションの初期番号。

MAX_TRANS

Decimal

トランザクションの最大番号。

INITIAL_EXTENT

Decimal

初期エクステントのサイズ。

NEXT_EXTENT

Decimal

2次エクステントのサイズ。

MIN_EXTENTS

Decimal

セグメント内の許容最小エクステント数。

MAX_EXTENTS

Decimal

セグメント内の許容最大エクステント数。

PCT_INCREASE

Decimal

エクステント・サイズの増分率。

PCT_THRESHOLD

Decimal

索引エントリ当たりの許容ブロック領域のしきい率。

INCLUDE_COLUMN

Decimal

索引編成表の主キー(非オーバーフロー)索引に含まれる最終列の列ID。この列は、*_TAB_COLUMNSデータ・ディクショナリ・ビューのCOLUMN_ID列にマップされます。

FREELISTS

Decimal

このセグメントに割り当てられているプロセス・フリーリスト数。

FREELIST_GROUPS

Decimal

このセグメントに割り当てられているフリーリスト・グループ数。

PCT_FREE

Decimal

ブロック内の空き領域の最小率。

LOGGING

String

ロギング情報。

BLEVEL

Decimal

B*-Treeレベル(ルート・ブロックからリーフ・ブロックまでの索引の深さ)。深さ0は、ルート・ブロックとリーフ・ブロックが同じレベルであることを意味します。

LEAF_BLOCKS

Decimal

索引内のリーフ・ブロック数。

DISTINCT_KEYS

Decimal

明確に索引付けされた値の数。UNIQUE制約とPRIMARY KEY制約が実施されている索引の場合、この値は、表の行数(USER_TABLES.NUM_ROWS)と同じになります。

AVG_LEAF_BLOCKS_PER_KEY

Decimal

リーフ・ブロックの平均数。これらのブロックには、最も近い整数に端数処理された索引内の個別の各値が表示されます。UNIQUE制約とPRIMARY KEY制約が実施されている索引の場合、この値は常に1になります。

AVG_DATA_BLOCKS_PER_KEY

Decimal

表内のデータ・ブロックの平均数。これらのブロックは、最も近い整数に端数処理された索引内の明確な値によって指し示されます。この統計はデータ・ブロックの平均数で、これらのブロックには、索引付けされた列に対する指定値が格納された行が含まれています。

CLUSTERING_FACTOR

Decimal

表内の行数を索引の値に基づいて示します。

STATUS

String

非パーティション索引がVALIDかUNUSABLEかを示します。

NUM_ROWS

Decimal

索引内の行数。

SAMPLE_SIZE

Decimal

索引の分析に使用されるサンプルのサイズ。

LAST_ANALYZED

Date

この索引が分析された最新の日付。

DEGREE

String

索引をスキャンするインスタンス当たりのスレッド数。

INSTANCES

String

索引をスキャンするインスタンス数。

PARTITIONED

String

索引がパーティション化されている(YES)かいない(NO)かを示します。

TEMPORARY

String

一時表に索引があるかどうかを示します。

GENERATED

String

索引の名前がシステム生成(Y)かシステム生成でない(N)かを示します。

SECONDARY

String

この索引がOracle Data CartridgeのODCIIndexCreateメソッドによって作成された2次オブジェクトであるかどうかを示します(YまたはN)。

BUFFER_POOL

String

索引ブロックに使用するデフォルト・バッファ・プールの名前。

USER_STATS

String

統計がユーザーによって直接入力された(YES)か直接入力されていない(NO)かを示します。

DURATION

String

一時表の継続期間を示します。

PCT_DIRECT_ACCESS

Decimal

索引編成表の2次索引についてVALIDと推測される行の割合。

ITYP_OWNER

String

ドメイン索引に対する索引タイプの所有者。

ITYP_NAME

String

ドメイン索引に対する索引タイプの名前。

PARAMETERS

String

ドメイン索引に対するパラメータ文字列。

GLOBAL_STATS

String

パーティション索引について、索引全体を分析することで統計を収集する(YES)か、基礎となる索引パーティションとサブパーティションの統計から推測する(NO)かを示します。

DOMIDX_STATUS

String

ドメイン索引のステータス:

- NULL - 索引はドメイン索引ではありません。

- VALID - 索引は有効なドメイン索引です。

- IDXTYP_INVLD - ドメイン索引の索引タイプが無効です。

DOMIDX_OPSTATUS

String

ドメイン索引に対する操作のステータス:

- NULL - 索引はドメイン索引ではありません。

- VALID - 操作はエラーなしで実行されました。

- FAILED - 操作はエラーで失敗しました。

FUNCIDX_STATUS

String

機能ベース索引のステータス:

- NULL - 索引は機能ベース索引ではありません。

- ENABLED - 機能ベース索引は有効です。

- DISABLED - 機能ベース索引は無効です。

JOIN_INDEX

String

索引が結合索引(YES)か結合索引でない(NO)かを示します。

IOT_REDUNDANT_PKEY_ELIM

String

不要な主キー列が索引構成表の2次索引から排除されている(YES)か排除されていない(NO)かを示します。

DROPPED

String

削除された索引が、リサイクル・ビンに存在している(YES)か存在していない(NO)かを示します。パーティション表の場合はNULLです。

IndexColumns

表A-21に、IndexColumnsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-21 IndexColumns

列名

データ型

説明

INDEX_OWNER

String

索引の所有者。

INDEX_NAME

String

索引の名前。

TABLE_OWNER

String

表またはクラスタの所有者。

TABLE_NAME

String

表またはクラスタの名前。

COLUMN_NAME

String

オブジェクト型の列に対する列名または属性。

COLUMN_POSITION

Decimal

索引内での列または属性の位置。

COLUMN_LENGTH

Decimal

索引付けされた列の長さ。

DESCEND

String

列が降順にソートされているかどうかを示します(YまたはN)。

CHAR_LENGTH

Decimal

列の最大コードポイントの長さ。

(Oracle9i以降)

PrimaryKeys

表A-22に、PrimaryKeysスキーマ・コレクションの列名、データ型および説明をリストします。

表A-22 PrimaryKeys

列名

データ型

説明

OWNER

String

制約定義の所有者。

CONSTRAINT_NAME

String

制約定義の名前。

TABLE_NAME

String

制約定義がある表(またはビュー)に関連付けられている名前。

SEARCH_CONDITION

String

チェック制約に対する検索条件のテキスト。

R_OWNER

String

参照制約での参照先の表の所有者。

R_CONSTRAINT_NAME

String

参照表に対する一意制約定義の名前。

DELETE_RULE

String

参照制約の削除ルール(CASCADEまたはNO ACTION)。

STATUS

String

制約の実施ステータス(ENABLEDまたはDISABLED)。

DEFERRABLE

String

制約の適用を遅延できるかどうかを示します。

VALIDATED

String

すべてのデータが制約に従うかどうかを示します(VALIDATEDまたはNOT VALIDATED)。

GENERATED

String

制約名がユーザー指定かシステム生成かを示します。

BAD

String

この制約によって、曖昧な方法で世紀を指定したかどうかを示します(YesまたはNo)。

この不明瞭さから生じるエラーを回避するには、TO_DATEファンクションで4桁の年を使用して制約を再度書き込みます。

RELY

String

有効な制約を実施するかしないかを示します。

LAST_CHANGE

DateTime

制約が最後に有効または無効になった日時。

INDEX_OWNER

String

索引を所有しているユーザーの名前。

(Oracle9i以降)

INDEX_NAME

String

索引の名前(一意制約と主キー制約に対してのみ表示)。

(Oracle9i以降)

ForeignKeys

表A-23に、ForeignKeysスキーマ・コレクションの列名、データ型および説明をリストします。

表A-23 ForeignKeys

列名

データ型

説明

PRIMARY_KEY_CONSTRAINT_NAME

String

制約定義の名前。

PRIMARY_KEY_OWNER

String

制約定義の所有者。

PRIMARY_KEY_TABLE_NAME

String

制約定義がある表(またはビュー)に関連付けられている名前。

FOREIGN_KEY_OWNER

String

制約定義の所有者。

FOREIGN_KEY_CONSTRAINT_NAME

String

制約定義の名前。

FOREIGN_KEY_TABLE_NAME

String

制約定義がある表(またはビュー)に関連付けられている名前。

SEARCH_CONDITION

String

チェック制約に対する検索条件のテキスト。

R_OWNER

String

参照制約での参照先の表の所有者。

R_CONSTRAINT_NAME

String

参照表に対する一意制約定義の名前。

DELETE_RULE

String

参照制約の削除ルール(CASCADEまたはNO ACTION)。

STATUS

String

制約の実施ステータス(ENABLEDまたはDISABLED)。

VALIDATED

String

すべてのデータが制約に従うかどうかを示します(VALIDATEDまたはNOT VALIDATED)。

GENERATED

String

制約名がユーザー指定かシステム生成かを示します。

RELY

String

有効な制約を実施するかしないかを示します。

LAST_CHANGE

DateTime

制約が最後に有効または無効になった日時。

INDEX_OWNER

String

索引を所有しているユーザーの名前。

(Oracle9i以降)

INDEX_NAME

String

索引の名前。

(Oracle9i以降)

ForeignKeyColumns

表A-24に、ForeignKeyColumnsスキーマ・コレクションの列名、データ型および説明をリストします。

表A-24 ForeignKeyColumns

列名

データ型

説明

OWNER

String

制約定義の所有者。

CONSTRAINT_NAME

String

制約定義の名前。

TABLE_NAME

String

制約定義がある表の名前。

COLUMN_NAME

String

制約定義に指定されているオブジェクト型の列に対する列名または属性名。

POSITION

String

オブジェクトの定義での列または属性の当初の位置。

UniqueKeys

表A-25に、UniqueKeysスキーマ・コレクションの列名、データ型および説明をリストします。

表A-25 UniqueKeys

列名

データ型

説明

OWNER

String

制約定義の所有者。

CONSTRAINT_NAME

String

制約定義の名前。

TABLE_NAME

String

制約定義がある表(またはビュー)に関連付けられている名前。

SEARCH_CONDITION

String

チェック制約に対する検索条件のテキスト。

R_OWNER

String

参照制約での参照先の表の所有者。

R_CONSTRAINT_NAME

String

参照表に対する一意制約定義の名前。

DELETE_RULE

String

参照制約の削除ルール(CASCADEまたはNO ACTION)。

STATUS

String

制約の実施ステータス(ENABLEDまたはDISABLED)。

DEFERRABLE

String

制約の適用を遅延できるかどうかを示します。

VALIDATED

String

すべてのデータが制約に従うかどうかを示します(VALIDATEDまたはNOT VALIDATED)。

GENERATED

String

制約名がユーザー指定かシステム生成かを示します。

BAD

String

この制約によって、曖昧な方法で世紀を指定したかどうかを示します(YesまたはNo)。

この不明瞭さから生じるエラーを回避するには、TO_DATEファンクションで4桁の年を使用して制約を再度書き込みます。

RELY

String

有効な制約を実施するかしないかを示します。

LAST_CHANGE

String

制約が最後に有効または無効になった日時。

INDEX_OWNER

String

索引を所有しているユーザーの名前。

(Oracle9i以降)

INDEX_NAME

String

索引の名前(一意制約と主キー制約に対してのみ表示)。

(Oracle9i以降)

B LINQの正規関数とOracle関数のマッピング

この付録では、Entity Frameworkの正規関数と、そのマップ先である、対応するODP.NETプロバイダの関数をリストします。

集計正規関数

正規関数

Oracle関数

Avg ( expression )

AVG(expression)

BigCount ( expression )

COUNT(expression)

Count ( expression )

COUNT(expression)

Max ( expression )

MAX(expression)

Min ( expression )

MIN(expression)

StDev ( expression )

STDDEV(expression)

StDevP( expression)

STDEVP(expression)

Sum ( expression )

SUM (expression)

Var(expression)

VAR(expression)

VarP(expression)

VARP(expression)

数学正規関数

正規関数

Oracle関数

Abs ( value )

ABS (value)

Ceiling ( value )

CEIL(value)

Floor ( value )

FLOOR(value)

Power(value, exponent)

POWER(value, exponent)

Round ( value )

ROUND(value)

Round ( value, digits )

ROUND(value, digits)

Truncate(value, digits)

TRUNC(value, digits)

文字列正規関数

正規関数

Oracle関数

Concat ( string1, string2)

CONCAT(string1, string2)
または

( (string1) || (string2))

Contains(string, target)

INSTR(string, target)

EndsWith(string, target)

INSTR(REVERSE(string), REVERSE(target))

比較演算子
(<, <=, >, >=, <>, !=)

比較演算子
(<, <=, >, >=, <>, !=)

IndexOf( target, string)

INSTR(string2, target)

Left ( string1, length)

SUBSTR(string1, length)

Length ( string )

LENGTH(string)

LTrim( string )

LTRIM(string)

Replace ( string1, string2, string3)

REPLACE(string1, string2, string3)

Reverse ( string )

REVERSE(string)

Right ( string, length)

(CASE WHEN LENGTH(string) >= (length) THEN SUBSTR (string) ,-(length), length ) ELSE string END)

RTrim( string )

RTRIM(string)

Substring ( string, start, length)

SUBSTR(( string, start, length)

StartsWith(string, target)

INSTR(string, target)

ToLower ( string )

LOWER(string)

ToUpper( string )

UPPER

Trim ( string )

LTRIM(RTRIM(string))

日付と時刻の正規関数

正規関数

Oracle関数

AddNanoseconds(expression, number)

(expression) + INTERVAL

AddMicroseconds(expression, number)

(expression) + INTERVAL

AddMilliseconds(expression, number)

(expression) + INTERVAL

AddSeconds(expression, number)

(expression) + INTERVAL

AddMinutes(expression, number)

(expression) + INTERVAL

AddHours(expression, number)

(expression) + INTERVAL

AddDays(expression, number)

(expression) + INTERVAL

AddMonths(expression, number)

(expression) + INTERVAL

AddYears(expression, number)

(expression) + INTERVAL

CreateDateTime(year, month, day, hour, minute, second)

TO_TIMESTAMP

CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset)

TO_TIMESTAMP_TZ

CreateTime(hour, minute, second)

Oracleでは時間リテラルがサポートされていません

CurrentDateTime()

LOCALTIMESTAMP

CurrentDateTimeOffset()

SYSTIMESTAMP

CurrentUtcDateTime()

SYS_EXTRACT_UTC
(LOCALTIMESTAMP)

Day(expression)

EXTRACT(DAY FROM expression)

DayOfYear(expression)

TO_NUMBER(TO_CHAR(CAST(expression AS TIMESTAMP), 'DDD'))

DiffNanoseconds(startExpression, endExpression)

EXTRACTおよび算術操作

DiffMilliseconds(startExpression, endExpression)

EXTRACTおよび算術操作

DiffMicroseconds(startExpression, endExpression)

EXTRACTおよび算術操作

DiffSeconds(startExpression, endExpression)

EXTRACTおよび算術操作

DiffMinutes(startExpression, endExpression)

EXTRACTおよび算術操作

DiffHours(startExpression, endExpression)

EXTRACTおよび算術操作

DiffDays(startExpression, endExpression)

EXTRACTおよび算術操作

DiffMonths(startExpression, endExpression)

EXTRACTおよび算術操作

DiffYears(startExpression, endExpression
)

EXTRACTおよび算術操作

比較演算子
(<, <=, >, >=, <>, !=)

<、<=、>、>=、<>、!=演算子

GetTotalOffsetMinutes ( datetimeoffset )

(EXTRACT(TIMEZONE_HOUR FROM (expression))) * 60 + EXTRACT (TIMEZONE_MINUTE FROM(expression))
(複数の操作が必要です。)

Hour (expression)

EXTRACT(HOUR FROM expression)

Millisecond(expression)

NVL(TO_NUMBER(SUBSTR(TO_CHAR(CAST(expression AS TIMESTAMP), 'DD-
MON-RR HH24:MI:SSXFF'), 20, 3)), 0)

Minute(expression)

EXTRACT(MINUTE FROM expression)

Month (expression)

EXTRACT(MONTH FROM expression)

Second(expression)

EXTRACT (SECOND FROM expression)

TruncateDate(expression)

TRUNC(expression)

Year(expression)

EXTRACT(YEAR FROM expression)

ビット単位の正規関数

正規関数

Oracle関数

BitWiseAnd ( value1 , value2 )

BITAND(value1, value2)

BitWiseNot ( value )

( 0 - value) - 1

BitWiseOr ( value1 , value2 )

Value1 - BITAND(value1, value2) + value2

BitWiseXor ( value1 , value2 )

Value1 - 2 * BITAND(value1, value2) + value2

その他の正規関数

正規関数

Oracle関数

NewGuid()

SYS_GUID

用語集

アセンブリ

アセンブリとはMicrosoft社の用語で、DLLまたは.EXEが.NETコンパイラによりコンパイルされたときに作成されるモジュールを指します。

BFILE

オペレーティング・システム内に常駐するデータベース表領域の外にある外部バイナリ・ファイル。BFILEはデータベース・セマンティクスから参照され、外部LOBとも呼ばれます。

バイナリ・ラージ・オブジェクト(BLOB)

内容がバイナリ・データで構成されたラージ・オブジェクト・データ型。このデータはデータ構造がデータベースで認識されないため、RAW型とみなされます。

キャラクタ・ラージ・オブジェクト(CLOB)

データベース・キャラクタ・セットに対応する文字データで構成された値を持つLOBデータ型。CLOBは、Oracle Textの検索エンジンにより索引付けおよび検索できます。

データ・プロバイダ

Oracle Data Provider for .NETで使用される用語としてのデータ・プロバイダはADO.NETモデルでの接続コンポーネントであり、データ・ソースとDataSet間でデータを送信します。

DataSet

DataSetは、データベースのデータのメモリー内コピーです。DataSetはデータベースへのアクティブな接続なしでメモリー内に存在します。

内容を保証しない書込み

内容を保証しない書込みとは、コミットされていないデータや使用済のデータの書込みを意味します。

DDL

DDLはデータ定義言語のことで、データ構造を定義または変更する文が含まれています。

DOM

Document Object Model(DOM)は、HTML文書およびXML文書のためのアプリケーション・プログラミング・インタフェース(API)です。文書の論理構造とアクセスおよび操作の方法を定義します。

Extensible Stylesheet Language Transformation(XSLT)

1つのXMLドキュメントを別のドキュメントに変換する変換言語を定義する、XSL W3C標準仕様です。

フラッシュ

データベースに変更を記録(つまり、変更済データを送信)することを指します。

グローバル・アセンブリ・キャッシュ(GAC)

.NETアセンブリのキャッシュ。

健全度

Oracle Databaseにおける負荷の程度です。負荷が軽いほどよく、その逆も同じです。

暗黙的なデータベース接続

.NETストアド・プロシージャ実行のコンテキストから暗黙的に使用できる接続です。

インスタンス化

C#などのオブジェクト・ベースの言語で使用される用語で、特定のクラスのオブジェクトを作成することを指します。

無効化メッセージ

キャッシュが無効になったことを示す変更通知の内容です。

ラージ・オブジェクト(LOB)

内部LOBと外部LOBに分割されたSQLデータ型のクラス。内部LOBには、BLOB、CLOBおよびNCLOBが含まれ、外部LOBにはBFILEが含まれます。

Microsoft .NET Frameworkクラス・ライブラリ

Microsoft .NET Frameworkクラス・ライブラリは、.NET Frameworkモデルのクラスを提供します。

ネームスペース

- .NET:
ネームスペースは、関連するタイプをグループ化するための命名機能です。アセンブリには複数のネームスペースを含めることができます。

- XML文書:
ネームスペースは、XML文書内で関連する一連の要素名または属性を記述します。

各国語キャラクタ・ラージ・オブジェクト(NCLOB)

データベースの各国語キャラクタ・セットに対応する文字データで構成された値を持つLOBデータ型。

Oracle Net Services

任意のネットワーク・プロトコルおよびオペレーティング・システムを介してOracle Toolsまたはデータベースに対して透過的操作を提供するOracleのクライアント/サーバー通信ソフトウェア。

OracleDataReader

OracleDataReaderは、読取り専用および順方向専用の結果セットです。

Oracle XML DB

Oracle XML DBは、高パフォーマンスのXML格納および検索に関連する特殊なテクノロジ・グループの総称で、Oracle Database内で使用できます。Oracle XML DBは個別のサーバーではありません。

Oracle XML DBは、W3C XMLモデルに基づいています。

PL/SQL

SQLに対するOracleの手続き型言語の拡張。

主キー

表のPRIMARY KEY制約の定義内に含まれている列または一連の列。

参照セマンティクス

参照セマンティクスは、割当てが値に対してではなく参照(ポインタなどのアドレス)に対して行われることを示します。「値セマンティクス」を参照してください。

REF

指定したオブジェクト型の行オブジェクトへの参照をカプセル化したデータ型。

結果セット

1行以上のデータで構成されるSQL問合せ出力。

Safeタイプ・マッピング

Safeタイプ・マッピングを使用すると、.NETタイプで表されたOracleデータがOracleDataAdapterによりDataSetに移入され、その際にデータや精度が失われません。

セーブポイント

操作をロールバックできる作業領域内のポイント。

ストアド・プロシージャ

ストアド・プロシージャは、Oracleによりデータベースに格納され、アプリケーションから実行できるPL/SQLブロックです。

透過的アプリケーション・フェイルオーバー(TAF)

透過的アプリケーション・フェイルオーバーは、可用性の高い環境のためのランタイム・フェイルオーバーです。これにより、接続が失敗した場合、クライアント・アプリケーションはデータベースに自動的に再接続されます。この再接続は、Oracle Call Interface(OCI)ライブラリ内から自動的に実行されます。

Unicode

エンコードされたユニバーサル・キャラクタ・セットのことで、1つのキャラクタ・セットを使用して任意の言語の情報を格納できます。

URL

URL(Uniform Resource Locator)。

値セマンティクス

値セマンティクスは、割当てで参照またはアドレス(ポインタなど)ではなく値がコピーされることを示します。「参照セマンティクス」を参照してください。

XPath

XML Path言語(XPath)は、XML文書内の各部分に対応する言語で、W3C勧告に基づいています。XSLTおよびXPointerでの使用を目的に設計されています。ハイパーテキストのリンク用だけでなく検索または問合せ言語としても使用できます。

索引
A B C D E F G H I L M N O P Q R S T U V W X

A

抽象データ型, 3.11

ADO, 1.2

ADO.NET, 1.2, 3.11.9

ADO.NET 1.x, 2.1

ADO.NET 2.0, 2.3, 3.2

ベースまたはDbCommonクラス, 3.2.2

クラスおよびクラス・メンバー, 3.2.9

DbCommonクラス, 3.2

ADO.NET 2.x, 2.1 ADT, 3.11 app.config

サンプル, 2.4.4

パフォーマンス・カウンタの設定, 3.1.5.2

app.configファイル, 3.2.3 AppDomain, 3.1.5.3 application config, 2.4 配列バインド

OracleParameter, 3.4.2.5.1

配列バインド操作, 3.4.2.5

ArrayBindCount, 5

ArrayBindIndex, 5

ArrayBindSize, 5

ArrayBindStatus, 5

エラー処理, 3.4.2.5.2

配列バインド, 3.4.2.5 ArrayBindCountプロパティ, 5 ArrayBindIndexプロパティ, 5 ArrayBindSizeプロパティ, 3.4.2.4, 3.4.2.5.1, 5 ArrayBindStatusプロパティ, 3.4.2.4, 3.4.2.5.1, 5 ASP.NET, 1.1.4 アセンブリ, 1.3

ODP.NET, 1.3

B

バッチ処理, 3.2.8

サポート, 3.2

BatchUpdate

Microsoft社のホットフィックス, 3.2.8

REF CURSORに対するExecuteScalarメソッドの動作, 3.7.7 BFILE, 3.9 BINARY_DOUBLE, 3.4.2.1 BINARY_FLOAT, 3.4.2.1 バインド, 3.4.2

PL/SQL連想配列, 3.4.2.4

BLOB, 3.9 一括コピーの制約, 3.2.10 一括コピー機能, 3.2.10

制限, 3.2.10

C

C#、Visual Basic .NET、C++ .NET, 1.1.1

ODP.NETパラメータ・コンテキストのキャッシング, はじめに

コールバックのサポート, 3.1.14

大/小文字区別

列名のマッピング, 3.10.8.5

変更通知

ODP.NETサポート, 3.13.2

変更通知, Database Change Notification, 9 特殊文字

列データ, 3.10.8.3

表またはビュー, 3.10.8.4

XMLの特殊文字, 3.10.6 クライアント・アプリケーション, 1.1.1 クライアントのグローバリゼーション設定, 3.17.1.1, 3.17.2.1 クライアント識別子, 3.1.13 CLOB, 3.9 Closeコール, 2.6 CLR, 1.1.3 コレクション・タイプ, 3.11.1, 3.11.1 CollectionTypeプロパティ, 3.4.2.4 列データ

特殊文字, 3.10.8.3

CommandBehavior.SequentialAccess, 3.6.2 トランザクションのコミット

XMLデータの変更, 3.10.8.10

CommittableTransaction, 3.2.7 構成ファイル

サンプル, 2.4.4

構成設定

UDT, 3.11.11

接続記述子, 3.1.2 接続依存性, 3.10.3 接続の最適化, 3.1.7.2 接続プール

パフォーマンス・カウンタ, 3.1.5

接続プーリング, 3.1.3

例, 3.1.3

Oracle RACデータベース, 3.1.7

管理, 3.1.4

Connectionプロパティ, 3.9.2 接続文字列ビルダー, 3.2 ConnectionString属性, 3.1.3

Connection Lifetime, 3.1.1, 3.1.3, 3.1.3.1

Connection Timeout, 3.1.1, 3.1.3, 3.1.3.1

Data Source, 3.1.1

DBA Privilege, 3.1.1

Decr Pool Size, 3.1.1, 3.1.3, 3.1.3.1

Enlist, 3.1.1

HA Events, 3.1.1, 3.1.3

Incr Pool Size, 3.1.1, 3.1.3, 3.1.3.1

Load Balancing, 3.1.1, 3.1.3

Max Pool Size, 3.1.1, 3.1.3, 3.1.3.1

Metadata Pooling, 3.1.1

Min Pool Size, 3.1.1, 3.1.3, 3.1.3.1

Password, 3.1.1

Persist Security Info, 3.1.1

Pooling, 3.1.1, 3.1.3, 3.1.3.1

Proxy Password, 3.1.1, 3.1.11

Proxy User Id, 3.1.1, 3.1.11

Statement Cache Purge, 3.1.1

Statement Cache Size, 3.1.1

User Id, 3.1.1

Validate Connection, 3.1.1, 3.1.3, 3.1.3.1

ConnectionStringプロパティ, 3.1.3, 3.1.3.1, 5 Constraintsプロパティ, 3.16

構成, 3.16.2

コンテキスト接続, 4.2.1 Continuous Query Notification, 3.13 問合せ再実行の制御, 3.15 カスタム・クラス, 3.11.2 カスタム・タイプ・ファクトリ, 3.11.2 カスタム・タイプ・ファクトリ, 3.11.3.1 カスタム・タイプの実装

オプション, 3.11.2.2

カスタム・タイプ・マッピング, 3.11.3.1 カスタム・タイプ・マッピング

指定, 3.11.3

カスタム・タイプ・ファクトリでの指定, 3.11.3

XMLでの指定, 3.11.3

使用, 3.11.3.3

カスタム・タイプ

Oracle UDTへの変換, 3.11.4

要件, 3.11.2.1

カスタムUDTクラス, 3.11.2

D

データの消失, 3.14

データ操作

XMLの使用, 3.10.8

データ・ソース属性, 3.1.2 データ・ソース列挙子, 3.2 データ・ソース列挙子, 3.2.4 データベース

変更, 3.10.8

データベース変更通知, 2.5, 3.13, 3.13.1

ODP.NETサポート, 3.13.2

Database Change Notification

ベスト・プラクティス, 3.13.5

パフォーマンス上の考慮点, 3.13.5

データベース通知

リスニングするためのポート, 2.5

DataSet, 3.9.3

移入, 3.7.4

REF CURSORからの移入, 3.7.4

汎用オブジェクトとカスタム・オブジェクトの移入, 3.11.9

更新, 3.7.6

データベースへの更新, 3.16

DataTable, 3.16.2 Datatableプロパティ, 3.16 DbCommonクラス, 3.2 データベース・リンク, 4.2.1 DbProviderFactoriesクラス, 2.3, 3.2.2 DbType

判断, 3.4.2.3

デバッグ・トレース, 3.18 デフォルト・マッピング

修正, 3.10.8.7.1

依存する非管理DLLの不一致, 2.3.2.1 ダイレクト・パス・ロード, 3.2.10 Disposeコール, 2.6 分散トランザクション, 3.2.7 ドキュメント

.NET, 1.1

動的な登録, 3.1.12 Dynamic Help, 1.1.1, 2.3

E

簡易接続ネーミング・メソッド, 3.1.2.3

EDM型のファセット, 3.3.1.1

EDM型

Oracleデータ型, 3.3.1

エンドツーエンド・トレース, 3.1.13 EnlistDistributedTransactionメソッド, 3.1.12 Entity Framework, はじめに, 3.3 列挙型

OracleDbType, 3.4.2.2

エラー処理, 3.4.2.5.2 例

接続プーリング, 3.1.3

例

ドキュメント

READMEファイル, 2.3.1

ExecuteNonQueryメソッド, 3.7.5 ExecuteScalarメソッド, 3.7.7 明示的なユーザー接続, 4 EZCONNECT, 3.1.2.3

F

フェイルオーバー, 3.1.14

イベント・ハンドラの登録, 3.1.14

FailoverEventの列挙

説明, 11

FailoverReturnCodeの列挙

説明, 11

FailoverTypeの列挙

説明, 11

FAN, 3.1.7 高速アプリケーション通知(FAN), 3.1.7 機能, 3

新規, はじめに

FetchSizeプロパティ

微調整, 3.6.4.2

設計時の設定, 3.6.4.3.2

実行時の設定, 3.6.4.3.3

使用, 3.6.4.1

ファイルの場所, 2.3.1

G

ガベージ・コレクション, 2.6

地理データ, 3.11

グローバル・アセンブリ・キャッシュ(GAC), 2.3

グローバリゼーション設定, 3.17, 3.17.1

クライアント, 3.17.1.1

セッション, 3.17.1.2

スレッドベース, 3.17.1.3

グローバリゼーション・サポート, 3.17 グローバリゼーションに依存した操作, 3.17.2 グリッド環境, 3.1.7 グリッド・コンピューティング, はじめに, はじめに グリッド, はじめに, はじめに ODP.NETへのGUIアクセス, 1.1.2

H

HAイベント, 2.5

HAイベント, 3.1.1, 3.1.7, 3.1.7.2

日時書式の処理

XMLでのデータ操作, 3.10.8.1

XML形式での問合せの取得, 3.10.7.1

I

暗黙的なデータベース接続, 4, 4.2.1, 4.2.2, 5

暗黙的なREF CURSOR, はじめに, 3.8

バインドおよびメタデータ, 3.8.1

bindinfo, 3.8.1

構成, 3.8.2

例, 3.8.2

使用, 3.8.3

デフォルト・マッピングの修正, 3.10.8.7.1 Valueプロパティからの判断, 3.4.2.3.3 ValueからのDbTypeおよびOracleDbTypeの判断, 3.4.2.3.3 OracleDbTypeからのDbTypeの判断, 3.4.2.3.1 DbTypeからのOracleDbTypeの判断, 3.4.2.3.2 タイプの判断, 3.4.2.3 InitialLOBFetchSizeプロパティ, 3.6.3 InitialLONGFetchSizeプロパティ, 3.6.2 入力バインド

XMLType列, 3.10.4.2.1

インストール, 2.3

Oracle Data Provider for .NET, 2.3

XCopyクラス, 2.3

統合ヘルプ, 2.3 OracleParameterクラスのインタフェース, 3.4.2.3 概要, 1.2 INullableインタフェース

インタフェースの説明, 14

インタフェース・メンバー, 14

インタフェース・プロパティ, 14

無効化メッセージ, 3.13.1

永続性の確保, 3.13.2

InvalidCastException, 3.6.1.1 IOracleArrayTypeFactoryインタフェース

インタフェースの説明, 16

インタフェース・メンバー, 16

インタフェース・メソッド, 16

IOracleCustomTypeインタフェース

インタフェースの説明, 16

インタフェース・メンバー, 16

インタフェース・メソッド, 16

IOracleCustomTypeFactoryインタフェース

インタフェースの説明, 16

インタフェース・メンバー, 16

インタフェース・メソッド, 16

L

ラージ・バイナリ・データ型, 3.9.1

ラージ・キャラクタ・データ型, 3.9.1

制限事項, 4.2

LINQ to Entities, はじめに, 3.3

ロード・バランス, 2.5

ロード・バランス, 3.1.1, 3.1.7

LOB Connectionプロパティ, 3.9.2

LOB検索, はじめに

LOB

一時, 3.9.6

更新, 3.9.4, 3.9.5

LOBの更新, 3.9.3 ローカル・トランザクション, 3.2.7 場所データ, 3.11 LONGおよびLONG RAWデータ型, 3.9.1

M

machine.config, 2.4

machine.configファイル, 2.3

メタデータ, 3.16.3

メソッドの起動

UDT, 3.11.10

Microsoft ADO.NET 2.0, 3.2 Microsoft Common Language Runtime(CLR), 1.1.3 Microsoft社のホットフィックス

BatchUpdate, 3.2.8

Microsoft .NET Framework, 2.1 Microsoft .NET Frameworkクラス・ライブラリ, 1.2 Microsoft Transaction Server, 2.1 MTS, 2.1 複数の通知要求, 3.13.2 複数のOracleホーム, はじめに 複数の表

変更, 3.10.8.9

N

ネームスペース

Oracle.DataAccess.Types, 1.3.2

ネイティブなXMLサポート, 3.10 NCLOB, 3.9 ネスト表タイプ, 3.11.1 .NETカスタム・タイプ, 3.11 .NET Frameworkデータ型, 3.5 .NET言語, 1.1.1, 1.1.2 .NET製品およびドキュメント, 1.1 .NETストアド・プロシージャおよびファンクション, 4.1 .NET Streamクラス, 3.9.2 .NETタイプのアクセッサ, 3.6.1.1 .NETタイプ

判断, 3.4.2.3

通知フレームワーク, 3.13.1 通知情報

取得, 3.13.2

通知処理

フロー, 3.13.3

通知登録, 3.13.2, 3.13.2

要件, 3.13.3

NULL値

列からの取得, 3.10.7.7

ラウンドトリップでフェッチされる行数

制御, 3.6.4

O

オブジェクト・データ型のサポート, 3.11

オブジェクト・タイプ, 3.11.1, 3.11.1

オブジェクト・リレーショナル・データ, 3.10.7.6

XMLデータからの変更の保存, 3.10.8.8

REF CURSORの取得, 3.7.2, 3.7.4 OracleRefCursorの取得, 3.7.1 OracleDataReaderからのデータの取得, 3.6 LOBデータの取得

InitialLOBFetchSizeプロパティ, 3.6.3

LONGおよびLONG RAWデータの取得, 3.6.2, 3.6.2 OCI

文キャッシング, 3.4.3

OData, はじめに ODP.NET

インストール, 2.3

ODP.NET構成, 2.4 ODP.NET LOBクラス, 3.9 ODP.NETタイプのアクセッサ, 3.6.1.2 ODP.NETタイプのクラス, 3.5 ODP.NETタイプの例外, 15 ODP.NETタイプの構造, 3.5, 14 ODP.NETタイプ, 3.5

概要, 3.5

.NETストアド・プロシージャにおけるODP.NET

制限事項, 4.2

トランザクションのサポート, 4.2.2

未サポートのSQLコマンド, 4.2.3

ODP.NET XMLサポート, 3.10 OnChangedEventArgsクラス

インスタンス・プロパティ, 9

メンバー, 9

静的フィールド, 9

静的メソッド, 9

OnChangeEventHandlerデリゲート

説明, 9

オペレーティング・システム認証, 3.1.8 Oracle Call Interface

文キャッシング, 3.4.3

Oracle Data Guard

接続, 3.1.7.2

Oracle Data Provider for .NET

インストール, 2.3

システムの前提条件, 2.1

Oracle Data Provider for .NETアセンブリ, 1.3 Oracleデータ型

EDM型, 3.3.1

マッピングおよびカスタマイズ, 3.3.2

Oracle Database Extensions for .NET, 1.1.3, 4 Oracle Developer Tools for Visual Studio, 1.1.2 Oracle Label Security, 3.1.13 Oracleネイティブ型, 3.5

ODP.NETによるサポート, 3.6.1.1

Oracle Providers for ASP.NET, 1.1.4 Oracle RAC

接続, 3.1.7.1

Oracle RACデータベース

プール・サイズ属性, 3.1.7.3, 3.1.7.3

Oracle RAC環境, 3.1.7 Oracle Services for Microsoft Transaction Server, 2.1 Oracle UDT属性マッピング, 3.11.5 Oracle Universal Installer(OUI), 2.3 Oracleユーザー定義タイプ, 3.11 Oracleユーザー定義タイプ(UDT), 3.11.1 Oracle Virtual Private Database(VPD), 3.1.13 Oracle XML DB, 3.10.1 Oracle8i Database, ADO.NET 2.0

インタフェース, 3.2

OracleAQAgent

コンストラクタ, 12

OracleAQAgentクラス

コンストラクタ, 12

説明, 12

メンバー, 12, 12, 12

プロパティ, 12, 12, 12

OracleAQDequeueModeの列挙

説明, 12

OracleAQDequeueOptionsクラス

コンストラクタ, 12

説明, 12

メンバー, 12

プロパティ, 12

パブリック・メソッド, 12

OracleAQEnqueueOptionsクラス

コンストラクタ, 12

説明, 12

メンバー, 12

プロパティ, 12

パブリック・メソッド, 12

OracleAQMessageクラス

コンストラクタ, 12

説明, 12

メンバー, 12

プロパティ, 12

OracleAQMessageAvailableEventArgsクラス

説明, 12

メンバー, 12

プロパティ, 12

OracleAQMessageAvailableEventHandlerデリゲート

説明, 12

OracleAQMessageDeliveryModeの列挙

説明, 12

OracleAQMessageStateの列挙

説明, 12

OracleAQMessageTypeの列挙

説明, 12

OracleAQNavigationModeの列挙

説明, 12

OracleAQNotificationGroupingTypeの列挙

説明, 12

OracleAQNotificationTypeの列挙

説明, 12

OracleAQQueueクラス

コンストラクタ, 12

説明, 12

イベント, 12

メンバー, 12

プロパティ, 12

パブリック・メソッド, 12

静的メソッド, 12

OracleAQVisibilityModeの列挙

説明, 12

OracleArrayMappingAttributeクラス

コンストラクタ, 16

説明, 16

メンバー, 16

メソッド, 16

プロパティ, 16

静的メソッド, 16

OracleBFileクラス

クラスの説明, 13

コンストラクタ, 13

インスタンス・メソッド, 13

インスタンス・プロパティ, 13

メンバー, 13

静的フィールド, 13

静的メソッド, 13

OracleBinary構造

コンストラクタ, 14

説明, 14

インスタンス・メソッド, 14

メンバー, 14

プロパティ, 14

静的フィールド, 14

静的メソッド, 14

静的演算子, 14

静的型変換演算子, 14

OracleBlobクラス

クラスの説明, 13

コンストラクタ, 13

インスタンス・メソッド, 13

インスタンス・プロパティ, 13

メンバー, 13

静的フィールド, 13

静的メソッド, 13

OracleBulkCopyクラス

クラスの説明, 17

コンストラクタ, 17

イベント, 17

メンバー, 17

プロパティ, 17

パブリック・メソッド, 17

OracleBulkCopyColumnMappingクラス

クラスの説明, 17

コンストラクタ, 17

メンバー, 17

プロパティ, 17

OracleBulkCopyColumnMappingCollectionクラス

クラスの説明, 17

メンバー, 17

プロパティ, 17

パブリック・メソッド, 17

OracleBulkCopyOptionsの列挙

説明, 17

OracleClientFactory, 2.3 OracleClientFactoryクラス

インスタンス化, 3.2.2

OracleClientFactoryクラス

クラスの説明, 7

クラス・メンバー, 7

パブリック・メソッド, 7

パブリック・プロパティ, 7

OracleClobクラス

クラスの説明, 13

コンストラクタ, 13

インスタンス・メソッド, 13

インスタンス・プロパティ, 13

メンバー, 13

静的フィールド, 13

静的メソッド, 13

OracleCollectionTypeの列挙, 5 OracleCommand

ArrayBindCountプロパティ, 3.4.2.5

コンストラクタ, 5

InitialLOBFetchSizeプロパティ, 3.6.3

InitialLONGFetchSizeプロパティ, 3.6.2

Transactionプロパティ, 3.4

OracleCommandクラス

ArrayBindCount, 5

クラスの説明, 5

ExecuteScalarメソッド, 3.7.7

FetchSizeプロパティ, 3.6.4.1

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5, 12

RowSizeプロパティ, 3.6.4.3

静的メソッド, 5

OracleCommandオブジェクト, 3.4 OracleCommandプロパティ

ArrayBindCount, 3.4.2.5

OracleCommandトランザクション・オブジェクト, 3.4.1 OracleCommandBuilderクラス, 3.16.3

クラスの説明, 5

コンストラクタ, 5

イベント, 5

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

DataSetの更新, 3.16

OracleConnection

ClearAllPoolsプロパティ, 3.1.4

ClearPoolプロパティ, 3.1.4

ClientIdプロパティ, 3.1.13

イベント, 5

OracleConnectionクラス

GetSchemaメソッド, 3.2.6

OracleConnectionクラス

クラスの説明, 5

コンストラクタ, 5

メンバー, 5

参照の取得, 3.10.3

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleConnectionStringBuilderクラス

使用, 3.2.3

OracleConnectionStringBuilderクラス

クラスの説明, 7

クラス・メンバー, 7

コンストラクタ, 7

パブリック・メソッド, 7

パブリック・プロパティ, 7

OracleConnectionTypeの列挙

説明, 5

OracleCustomTypeMappingAttributeクラス

コンストラクタ, 16

説明, 16

メンバー, 16

メソッド, 16

プロパティ, 16

静的メソッド, 16

Oracle.DataAccess.Clientネームスペース, 1.3 Oracle.DataAccess.dll, 1.3 Oracle.DataAccess.Typesネームスペース, 1.3, 1.3.2 OracleDataAdapter, 3.14

コンストラクタ, 5

メンバー, 5

SafeMappingプロパティ, 3.14.2

SelectCommandプロパティ, 3.7.4

OracleDataAdapterクラス

FillSchemaメソッド, 3.16.2

Requeryプロパティ, 3.15

SelectCommandプロパティ, 3.16.1

OracleDataAdapterクラス, 5

イベント, 5

FillSchemaメソッド, 3.16.3

プロパティ, 5

パブリック・メソッド, 5

SelectCommandプロパティ, 3.16.3

静的メソッド, 5

OracleDataAdapter Safeタイプ・マッピング, 3.14 OracleDatabaseクラス

クラスの説明, 5

コンストラクタ, 5

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

Shutdownメソッド, 5

Startupメソッド, 5

OracleDataReader, 3.6, 3.6.2

メンバー, 5

UDTの取得, 3.11.6

型指定アクセッサ, 3.6.1

OracleDataReaderクラス

クラスの説明, 5

FetchSizeプロパティ, 3.6.4.1

移入, 3.7.3

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleDataReaderクラスのSchemaTable, 5 OracleDataSourceEnumeratorクラス

使用, 3.2.4

OracleDataSourceEnumeratorクラス

クラスの説明, 7

クラス・メンバー, 7

パブリック・メソッド, 7

OracleDate構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14

プロパティ, 14

静的フィールド, 14

静的メソッド, 14

静的演算子, 14

静的型変換, 14

OracleDBShutdownModeの列挙

説明, 5

OracleDBStartupModeの列挙

説明, 5

OracleDbType

判断, 3.4.2.3

OracleDbTypeの列挙, 3.4.2.3 OracleDbTypeの列挙型, 3.4.2.2, 5 OracleDecimal構造

コンストラクタ, 14

説明, 14

インスタンス・メソッド, 14

メンバー, 14

プロパティ, 14

静的比較メソッド, 14

静的比較演算子, 14

静的対数メソッド, 14

静的操作メソッド, 14

静的演算子, .NETタイプからOracleDecimalへ, 14

静的演算子, OracleDecimalから.NETへ, 14

静的三角法メソッド, 14

OracleDependencyクラス

変更通知, 3.13.1

クラスの説明, 9

コンストラクタ, 9

データベース変更通知, 3.13

イベント, 9

インスタンス・メソッド, 9

インスタンス・プロパティ, 9

メンバー, 9

静的フィールド, 9

静的メソッド, 9

OracleErrorクラス

ArrayBindIndex, 5

クラスの説明, 5

メンバー, 5

メソッド, 5

プロパティ, 5

静的メソッド, 5

OracleErrorCollection

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleErrorCollectionクラス, 5 OracleException

メンバー, 5

メソッド, 5

プロパティ, 5

静的メソッド, 5

OracleExceptionクラス, 5 OracleFailoverEventArgs

メンバー, 11

プロパティ, 11

パブリック・メソッド, 11

OracleFailoverEventHandlerデリゲート

説明, 11

OracleGlobalizationクラス

クラスの説明, 10

メンバー, 10

プロパティ, 10

パブリック・メソッド, 10

OracleHAEventArgsクラス

説明, 8

メンバー, 8

プロパティ, 8

OracleHAEventHandlerデリゲート

説明, 8

OracleHAEventSourceの列挙

説明, 8

OracleHAEventStatusの列挙

説明, 8

OracleInfoMessageEventArgs

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleInfoMessageEventHandlerデリゲート, 5 OracleIntervalDS構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14

プロパティ, 14

静的メソッド, 14

静的演算子, 14

型変換, 14

OracleIntervalYM構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14, 14

プロパティ, 14

静的フィールド, 14

静的演算子, 14

型変換, 14

OracleNotificationEventArgsクラス

変更通知, 3.13.1

クラスの説明, 9

インスタンス・メソッド, 9

OracleNotificationInfoの列挙

説明, 9

OracleNotificationRequestクラス

変更通知, 3.13.1

クラスの説明, 9

データベース変更通知, 3.13

インスタンス・メソッド, 9

インスタンス・プロパティ, 9

メンバー, 9

静的メソッド, 9

OracleNotificationSourceの列挙

説明, 9

OracleNotificationTypeの列挙

説明, 9

OracleNullValueExceptionクラス

クラスの説明, 15

コンストラクタ, 15

メンバー, 15

メソッド, 15, 15

プロパティ, 15

OracleObjectMappingAttributeクラス

コンストラクタ, 16

説明, 16

メンバー, 16

メソッド, 16

プロパティ, 16

静的メソッド, 16

OracleParameter

配列バインド・プロパティ, 3.4.2.5.1

ArrayBindSizeプロパティ, 3.4.2.5.1, 5

ArrayBindStatusプロパティ, 3.4.2.5.1, 5

コンストラクタ, 5

タイプの判断, 3.4.2.3

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleParameterの配列バインド機能, 3.4.2.5 OracleParameterクラス, 5, 5

Value, 3.4.2.3.3

OracleParameterオブジェクト, 3.4.2

OracleDbTypeの列挙値, 3.4.2.2

OracleParameterプロパティ

ArrayBindSize, 3.4.2.4

ArrayBindStatus, 3.4.2.4

CollectionType, 3.4.2.4

Size, 3.4.2.4

Value, 3.4.2.4

OracleParameterCollection

メンバー, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleParameterCollectionクラス, 5 OracleParameterStatusの列挙型, 3.4.2.5.3, 5 Oraclepermissionクラス

説明, 5

OraclePermissionクラス

コンストラクタ, 5

メンバー, 5

パブリック・メソッド, 5

パブリック・プロパティ, 5

静的メソッド, 5

OraclePermissionAttributeクラス

コンストラクタ, 5, 5

説明, 5

メンバー, 5

パブリック・メソッド, 5

パブリック・プロパティ, 5

静的メソッド, 5

OracleRefクラス

クラスの説明, 16

クラス・メンバー, 16

コンストラクタ, 16

インスタンス・メソッド, 16

インスタンス・プロパティ, 16

静的フィールド, 16

静的メソッド, 16

OracleRefCursor, 3.7 OracleRefCursorクラス

クラスの説明, 13

インスタンス・メソッド, 13

メンバー, 13

REF CURSORからの移入, 3.7.5

プロパティ, 13

静的メソッド, 13

OracleRowsCopiedEventArgsクラス

クラスの説明, 17

コンストラクタ, 17

メンバー, 17

プロパティ, 17

OracleRowsCopiedEventHandlerデリゲート

説明, 17

OracleRowUpdatedEventArgs

コンストラクタ, 5

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleRowUpdatedEventArgsクラス, 5 OracleRowUpdatedEventHandlerデリゲート, 5 OracleRowUpdatingEventArgs

コンストラクタ, 5

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleRowUpdatingEventArgsクラス, 5 OracleRowUpdatingEventHandlerデリゲート, 5 OracleString構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14

プロパティ, 14

静的フィールド, 14

静的メソッド, 14

静的演算子, 14

型変換, 14

OracleTimeStamp構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14

プロパティ, 14

静的メソッド, 14

静的演算子, 14

静的型変換, 14

OracleTimeStampLTZ構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14

プロパティ, 14

静的フィールド, 14

静的メソッド, 14

静的演算子, 14

静的型変換, 14

OracleTimeStampTZ構造

コンストラクタ, 14

説明, 14

メンバー, 14

メソッド, 14

プロパティ, 14

静的フィールド, 14

静的メソッド, 14

静的演算子, 14

静的型変換, 14

OracleTransaction

メンバー, 5

プロパティ, 5

パブリック・メソッド, 5

静的メソッド, 5

OracleTransactionクラス

クラスの説明, 5

OracleTruncateExceptionクラス

クラスの説明, 15

コンストラクタ, 15

メンバー, 15

メソッド, 15

プロパティ, 15

静的メソッド, 15

OracleTypeExceptionクラス

クラスの説明, 15

コンストラクタ, 15

メンバー, 15

プロパティ, 15

静的メソッド, 15

OracleUdtクラス

説明, 16

メンバー, 16

静的メソッド, 16

OracleUdtFetchOptionの列挙

説明, 16

OracleUdtStatusの列挙

説明, 16

OracleXmlCommandTypeの列挙, 6 OracleXmlQueryPropertiesクラス

クラスの説明, 6

コンストラクタ, 6

メンバー, 6

プロパティ, 6

パブリック・メソッド, 6

OracleXmlSavePropertiesクラス, 6

コンストラクタ, 6

メンバー, 6

プロパティ, 6

パブリック・メソッド, 6

OracleXmlStreamクラス

クラスの説明, 6

コンストラクタ, 6

インスタンス・メソッド, 6

インスタンス・プロパティ, 6

メンバー, 6

静的メソッド, 6

OracleXmlTypeクラス, 3.10.3

クラスの説明, 6

コンストラクタ, 6

インスタンス・メソッド, 6

インスタンス・プロパティ, 6

メンバー, 6

静的メソッド, 6

P

パラメータ・バインド, 3.4.2

OracleParameterとのパラメータのバインド, 3.11.8

パラメータ・コンテキストのキャッシング, はじめに

パスワードの失効, 3.1.10

サンプル・コードのパスワード, はじめに

パフォーマンス, 3.4.3

配列バインド, 3.4.2.5

接続プーリング, 3.1.3

FetchSizeの微調整, 3.6.4.2

フェッチされる行数, 3.6.4

LOBデータの取得, 3.6.3

パフォーマンス・カウンタ

接続プール, 3.1.5

インスタンス名, 3.1.5.3

公開, 3.1.5

app.configエントリの使用, 3.1.5.2

PL/SQL連想配列バインド, 3.4.2.4 PL/SQL索引付き表, 3.4.2.4 PL/SQL言語, 3.7 PL/SQL REF CURSOR, 3.7 PL/SQL REF CURSORおよびOracleRefCursor, 3.7 PLSQLAssociativeArray, 5 REF CURSORからのOracleDataReaderへの移入, 3.7.3 REF CURSORからのOracleRefCursorへのイニュウ, 3.7.5 REF CURSORからのDataSetへの移入, 3.7.4 DataSetへの汎用オブジェクトとカスタム・オブジェクトの移入, 3.11.9 ポート

データベース通知のリスニング, 2.5

ポート番号

リスナーの定義, 3.13.2

ポーティング

.NETストアド・プロシージャに対するクライアント・アプリケーション, 4.3

データの消失の回避, 3.14, 3.14.2 PrimaryKeyプロパティ, 3.16

構成, 3.16.2

特権接続, 3.1.9 Promotable Transaction, 3.2.7 プロパティ

ClientIdプロパティ, 3.1.13

プロバイダ・ファクトリ・クラス, 3.2, 3.2.2 プロバイダの主体性, 3.2 プロキシ認証, 3.1.11

Q

問合せの結果セット

XML形式での取得, 3.10.7

R

REF CURSOR

ExecuteScalarメソッドの動作, 3.7.7

暗黙的, はじめに, 3.8

取得, 3.7.2, 3.7.4

ストアド・プロシージャへの引渡し, 3.7.8

DataSetへの移入, 3.7.4

OracleDataReaderからの移入, 3.7.3

レジストリ・エントリ, 2.4 リリースOracle8i(8.1.7), 3.10.8.1 リリースOracle9i(9.0.x), 3.10.8.1 Requeryプロパティ, 3.15 ラウンドトリップ, 3.4.2.5 RowSizeプロパティ, 3.6.4.3 ランタイム接続ロード・バランシング, 3.1.7

S

Safeタイプ・マッピング, 3.14

SafeMappingプロパティ, 3.14.2

サンプル, 2.3.1

UDT, 16

サンプル, 1.4 XML文書を使用した変更の保存, 3.10.8.7 変更の保存

XMLデータの使用, 3.10.8.2

スキーマ・メタデータ

メタデータのカスタマイズ, 3.2.6

SchemaTable, 5 検索順序

非管理DLL, 2.3.2

SecureFiles, はじめに, 3.9 SelectCommandプロパティ, 3.7.4 セッション・グローバリゼーション・パラメータ, 3.17.2.3 セッションのグローバリゼーション設定, 3.17.1.2 スキーマ検出

サポート, 3.2

Shutdownメソッド, 5 単純なアプリケーション, 1.4 Sizeプロパティ, 3.4.2.4 SQLコマンド

未サポート, 4.2.3

Startupメソッド, 5 文キャッシング

接続文字列属性, 3.4.3.1

メソッドおよびプロパティ, 3.4.3.3

Statement Cache Purge, 3.4.3

Statement Cache Size, 3.4.3

StatementCacheWithUdts, 3.11.11 ストアド・プロシージャおよびファンクション, 3.7.8, 4.1 Streamクラス, 3.9.2 サポートの比較

クライアント・アプリケーションと.NETストアド・プロシージャ, 4.3

SYSDBA権限, 3.1.9 SYSOPER権限, 3.1.9 システム要件

Oracle Data Provider for .NET, 2.1

System.Data.Common, 3.2 System.Transactionsのサポート, 3.2.7

T

表またはビュー

特殊文字, 3.10.8.4

TAF, 3.1.14 TAFコールバックのサポート, 3.1.14 一時LOB, 3.9.6 スレッドのグローバリゼーション設定, 3.17.2.2 Thread.Abortメソッド, 2.6 スレッドベースのグローバリゼーション設定, 3.17.1.3 ODP.NETに関するヒント, 2.6 TNS別名, 3.1.2 トレース属性, 3.1.13 トランザクション・オブジェクト, 3.4.1 Transactionプロパティ, 3.4 トランザクションのサポート, 4.2.2 トランザクション

コミット, 3.10.8.10

TransactionScope, 3.2.7 透過的アプリケーション・フェイルオーバー(TAF), 3.1.14 トラブルシューティング, 3.18 OracleDataReader型指定アクセッサ, 3.6.1

U

UDT

メソッドの起動, 3.11.10

OracleDataReaderからのUDTメタデータの検索, 3.11.7 UdtCacheSize, 3.11.11 UDT, 3.11

コレクション・タイプ, 3.11.1

構成設定, 3.11.11

オブジェクト・タイプ, 3.11.1

OracleParameterとのパラメータのバインド, 3.11.8

OracleDataReaderからの検索, 3.11.6

サンプル, 16

UDT(Oracleユーザー定義タイプ), 3.11.1 UdtTypeNameプロパティ, 3.11.8 一意の列, 3.6.2, 3.6.3 一意制約, 3.6.2, 3.6.3 一意索引, 3.6.2, 3.6.3 UniqueConstraint, 3.16.2 一意性

データベースへのDataSetの更新, 3.16

DataRowの一意性, 3.16.1 非管理DLL

不一致, 2.3.2.1

検索順序, 2.3.2

非管理DLL

構成サポート, 2.3.2

未サポートのSQLコマンド, 4.2.3 更新

LOB, 3.9.3

REF CURSORから取得したDataSetの更新, 3.7.6 DataSetを使用したLOBの更新, 3.9.3 ODP.NET LOBオブジェクトを使用したLOBの更新, 3.9.5 OracleCommandおよびOracleParameterを使用したLOBの更新, 3.9.4 PrimaryKeyおよびConstraintsが構成されていない場合の更新, 3.16.3 ユーザー定義タイプ, 3.11 FetchSizeプロパティの使用, 3.6.4.1

V

Valueプロパティ, 3.4.2.4

VARRAYタイプ, 3.11.1

仮想プライベート・データベース(VPD), 3.1.13

Visual Studio

ドキュメント, 2.3

W

WCF Data Services, はじめに

web.config, 2.4

Windowsレジストリ, 2.4.2

X

XML

特殊文字, 3.10.6

データ操作での使用, 3.10.8

XMLデータ

変更の保存, 3.10.8.2

OracleXmlTypeでの更新, 3.10.5

XMLデータベース, 3.10 XML DB, 3.10, 3.10.2 XML要素名

大/小文字区別, 3.10.8.5

XML要素名と列名のマッピング, 3.10.8.6 XML関連クラス, 6 XML関連の列挙, 6 XMLサポート, 3.10 XMLを使用したカスタム・タイプ・マッピングの指定, 3.11.3.2 XMLQuery, 3.10.1 XMLTable, 3.10.1 XMLType列

.NET Stringとして, 3.10.4.1

DataSetへのフェッチ, 3.10.4.1

OracleCommandによる更新, 3.10.4.2

XMLType列

NULLへの設定, 3.10.4.2.2

XQuery

サポート, 3.10.2

XQUERY, 3.10.1 XQuery言語, 3.10.1

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。