OracleBFile OracleBFile OracleBFile OracleBFile Class

定義

Oracle の BFILE データ型で動作する、マネージド オブジェクト OracleBFile を表します。Represents a managed OracleBFile object designed to work with the Oracle BFILE data type. このクラスは継承できません。This class cannot be inherited.

public ref class OracleBFile sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleBFile : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleBFile = class
    inherit Stream
    interface ICloneable
    interface INullable
    interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
継承
実装

注釈

OracleBFILEデータ型は、Oracle LOB 4 ギガバイトの最大サイズのバイナリ データへの参照を含むデータ型。The Oracle BFILE data type is an Oracle LOB data type that contains a reference to binary data with a maximum size of 4 gigabytes. OracleBFILE他の Oracle とは異なりますLOBデータ型の代わりに、オペレーティング システムで、サーバー上の物理ファイル内のデータが格納されていることにします。An Oracle BFILE differs from other Oracle LOB data types in that its data is stored in a physical file in the operating system instead of on the server. なお、BFILEデータ型がデータに読み取り専用アクセスを提供します。Note that the BFILE data type provides read-only access to data. そのため、書き込み指向のメソッドが継承、Streamクラスがサポートされていません。Therefore, write-oriented methods inherited from the Stream class are not supported.

その他の特性をBFILEから区別するためのデータ型、LOBデータ型はできることです。Other characteristics of a BFILE data type that distinguish it from a LOB data type are that it:

  • 非構造化データの保持。Contains unstructured data.

  • サーバー側チャンキングのサポート。Supports server-side chunking.

  • 参照コピーのセマンティクスの使用。Uses reference copy semantics. コピー操作を実行する場合など、 BFILE、のみ、 BFILE (つまり、ファイルへの参照) ロケーターをコピーします。For example, if you perform a copy operation on a BFILE, only the BFILE locator (which is a reference to the file) is copied. ファイル内のデータはコピーされません。The data in the file is not copied.

BFILEデータ型は参照用として使用する必要がありますLOBサイズが大きくなっているのため、データベースに格納する実用的ではありません。The BFILE data type should be used for referencing LOBs that are large in size, and therefore, not practical to store in the database. 使用するためのクライアント、サーバー、および通信のオーバーヘッドが、BFILEデータ型と比較すると、LOBデータ型。There is client, server, and communication overhead for using a BFILE data type compared to the LOB data type. アクセスする方が効率的です、BFILEのみ少量のデータを取得する必要がある場合。It is more efficient to access a BFILE if you only need to obtain a small amount of data. Access データベースに常駐する方が効率的ですLOBオブジェクト全体を取得する必要がある場合。It is more efficient to access database-resident LOBs if you need to obtain the entire object.

各 NULL でないOracleBFileオブジェクトが基になる物理ファイルの場所を定義する 2 つのエンティティに関連付けられています。Each non-NULL OracleBFile object is associated with two entities that define the location of the underlying physical file:

  • Oracle DIRECTORY オブジェクト。ファイル システムのディレクトリに対するデータベースのエイリアスです。An Oracle DIRECTORY object, which is a database alias for a directory in the file system, and

  • 基になる物理ファイルのファイル名。このファイルは、DIRECTORY オブジェクトに関連付けられたディレクトリに配置されています。The file name of the underlying physical file, which is located in the directory associated with the DIRECTORY object.

後に、BFILEが作成されるの形式では、そのロケーターを取得することができます、OracleBFileオブジェクトを使用して、ExecuteReaderまたはExecuteScalarメソッド。After a BFILE is created, you can retrieve its locator in the form of an OracleBFile object using the ExecuteReader or ExecuteScalar methods.

取得する、OracleBFileオブジェクトを呼び出し、GetOracleBFileメソッド。To obtain an OracleBFile object, call the GetOracleBFile method.

物理ファイルをOracleBFileオブジェクトが関連付けられているとする必要はありませんがアクセスしようとするまで存在します。The physical file that an OracleBFile object is associated with does not need to exist until you attempt to access it. アプリケーションがバインドできる、 OracleBFile 、存在しないファイルへの 予期された場所に物理ファイルを作成し、呼び出すReadします。An application can bind an OracleBFile to a nonexistent file, create the physical file in the expected location, and then call Read.

アクセスが閉じている試行OracleBFileを使用して、ReadまたはSeekメソッド再度、OracleBFile自動的にストリーミングします。Any attempt to access a closed OracleBFile using the Read or Seek methods reopens an OracleBFile stream automatically.

C# の例を次に示しますを作成する方法、 BFILE 、Oracle のテーブル、およびの形式で取得し、OracleBFileオブジェクト。The following C# example demonstrates how you can create a BFILE in an Oracle table, and then retrieve it in the form of an OracleBFile object. 使用例に示します、OracleDataReaderオブジェクトとOracleBFileSeekReadメソッド。The example demonstrates the use of the OracleDataReader object and the OracleBFileSeek and Read methods.

private void GetOracleBFile(string connectionString)
{
	//Create and open the connection.
	using (OracleConnection connection = new OracleConnection(connectionString))
	{
		connection.Open();

		//Create and execute the commands.
		OracleCommand command = connection.CreateCommand();
		command.CommandText = "CREATE OR REPLACE DIRECTORY TestDir AS 'c:\\bfiles'";
		command.ExecuteNonQuery();
		command.CommandText = "CREATE TABLE TestTable(col1 number, col2 BFILE)";
		command.ExecuteNonQuery();
		command.CommandText = "INSERT INTO TestTable VALUES ('2', BFILENAME('TESTDIR', 'File.jpg'))";
		command.ExecuteNonQuery();
		command.CommandText = "SELECT * FROM TestTable";

		//Read the BFile data.
		byte[] buffer = new byte[100];
		OracleDataReader dataReader = command.ExecuteReader();
		using (dataReader)
		{
			if (dataReader.Read())
			{
				OracleBFile BFile = dataReader.GetOracleBFile(1);
				using (BFile)
				{
					BFile.Seek(0, SeekOrigin.Begin);
					BFile.Read(buffer, 0, 100);
				}
			}
		}
	}
	return;
}

作成と、Oracle の使用の詳細についてはBFILE、適切な Oracle のマニュアルを参照してください。For more information about creating and using an Oracle BFILE, see the appropriate topic in your Oracle documentation.

注意

BeginWriteEndWrite、およびWriteByteメソッドから継承されますが、System.IO.Streamクラス、ためにサポートされていません、BFILEデータ型は読み取り専用です。The BeginWrite, EndWrite, and WriteByte methods, which are inherited from the System.IO.Stream class, are not supported because the BFILE data type is read-only.

フィールド

Null Null Null Null

物理ファイルにバインドされていない、null の OracleBFile オブジェクトを表します。Represents a null OracleBFile object that is not bound to a physical file.

プロパティ

CanRead CanRead CanRead CanRead

BFILE ストリームを読み取ることができるかどうかを示す値を取得します。Gets a value indicating whether the BFILE stream can be read.

CanSeek CanSeek CanSeek CanSeek

前方シークおよび後方シーク操作を実行できるかどうかを示す値を取得します。Gets a value indicating whether forward-seek and backward-seek operations can be performed.

CanTimeout CanTimeout CanTimeout CanTimeout

現在のストリームがタイムアウトできるかどうかを決定する値を取得します。Gets a value that determines whether the current stream can time out.

(Inherited from Stream)
CanWrite CanWrite CanWrite CanWrite

オブジェクトが書き込みをサポートしているかどうかを示す値を取得します。Gets a value indicating whether the object supports writing.

Connection Connection Connection Connection

この OracleConnection のインスタンスで使用される OracleBFile を取得します。Gets the OracleConnection used by this instance of the OracleBFile.

DirectoryName DirectoryName DirectoryName DirectoryName

OracleBFile オブジェクトが関連付けられている DIRECTORY オブジェクトの名前を取得します。Gets the name of the DIRECTORY object, with which an OracleBFile object is associated.

FileExists FileExists FileExists FileExists

BFILE データを格納している物理ファイルがオペレーティング システム上に存在するかどうかを示す値を取得します。Gets a value indicating whether a physical file containing BFILE data exists in the operating system.

FileName FileName FileName FileName

パス名なしの BFILE の名前を取得します。Gets the name of the BFILE without the path.

IsNull IsNull IsNull IsNull

OracleBFileNull ストリームであるかどうかを示す値を取得します。Gets a value that indicates whether the OracleBFile is a Null stream.

Length Length Length Length

OracleBFile オブジェクトが関連付けられている物理ファイルの長さ (バイト数) を返す値を取得します。Gets a value that returns the length in bytes of the physical file with which the OracleBFile object is associated.

Position Position Position Position

OracleBFile ストリーム内の現在の読み込み位置を取得します。Gets the current read position in the OracleBFile stream.

ReadTimeout ReadTimeout ReadTimeout ReadTimeout

ストリームがタイムアウト前に読み取りを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.

(Inherited from Stream)
Value Value Value Value

Array データを格納している Byte 型の OracleBFile を取得します。Gets an Array of type Byte that contains the OracleBFile data.

WriteTimeout WriteTimeout WriteTimeout WriteTimeout

ストリームがタイムアウト前に書き込みを試行する期間を決定する値 (ミリ秒単位) を取得または設定します。Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.

(Inherited from Stream)

メソッド

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

非同期の読み込み動作を開始します。Begins an asynchronous read operation. (代わりに、ReadAsync(Byte[], Int32, Int32) の使用を検討してください。)(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

(Inherited from Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

非同期の書き込み操作を開始します。Begins an asynchronous write operation. (代わりに、WriteAsync(Byte[], Int32, Int32) の使用を検討してください。)(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Inherited from Stream)
Clone() Clone() Clone() Clone()

元のオブジェクトと同じ物理ファイルに関連付けられた、この OracleBFile オブジェクトのコピーを作成します。Creates a copy of this OracleBFile object associated with the same physical file as the original.

Close() Close() Close() Close()

現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。Instead of calling this method, ensure that the stream is properly disposed.

(Inherited from Stream)
CopyTo(Int64, OracleLob, Int64, Int64) CopyTo(Int64, OracleLob, Int64, Int64) CopyTo(Int64, OracleLob, Int64, Int64) CopyTo(Int64, OracleLob, Int64, Int64)

データ サイズ、コピー元のオフセット、およびコピー先のオフセットを指定して、この OracleBFile からコピー先の OracleLob にコピーします。Copies from this OracleBFile to a destination OracleLob with the specified amount of data, the source offset, and the destination offset.

CopyTo(OracleLob) CopyTo(OracleLob) CopyTo(OracleLob) CopyTo(OracleLob)

この OracleBFile 全体の内容をコピー先の OracleLob の先頭にコピーします。Copies the entire contents of this OracleBFile to the beginning of a destination OracleLob.

CopyTo(OracleLob, Int64) CopyTo(OracleLob, Int64) CopyTo(OracleLob, Int64) CopyTo(OracleLob, Int64)

この OracleBFile 全体の内容をコピー先の OracleLob の指定したオフセット位置にコピーします。Copies the entire contents of this OracleBFile to a destination OracleLob at the specified offset.

CopyTo(Stream) CopyTo(Stream) CopyTo(Stream) CopyTo(Stream)

現在のストリームからバイトを読み取り、別のストリームに書き込みます。Reads the bytes from the current stream and writes them to another stream.

(Inherited from Stream)
CopyTo(Stream, Int32) CopyTo(Stream, Int32) CopyTo(Stream, Int32) CopyTo(Stream, Int32)

指定されたバッファー サイズを使用して、現在のストリームからバイトを読み取り、別のストリームに書き込みます。Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(Inherited from Stream)
CopyToAsync(Stream) CopyToAsync(Stream) CopyToAsync(Stream) CopyToAsync(Stream)

現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream.

(Inherited from Stream)
CopyToAsync(Stream, CancellationToken) CopyToAsync(Stream, CancellationToken) CopyToAsync(Stream, CancellationToken) CopyToAsync(Stream, CancellationToken) Inherited from Stream
CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32) CopyToAsync(Stream, Int32)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(Inherited from Stream)
CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken) CopyToAsync(Stream, Int32, CancellationToken)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたバッファー サイズとキャンセル トークンを使用して、別のストリームに書き込みます。Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

(Inherited from Stream)
CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
CreateWaitHandle() CreateWaitHandle() CreateWaitHandle() CreateWaitHandle()

WaitHandle オブジェクトを割り当てます。Allocates a WaitHandle object.

(Inherited from Stream)
Dispose() Dispose() Dispose() Dispose()

このオブジェクトによって使用されているすべてのリソースを解放します。Releases all the resources that are used by this object.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Stream によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

(Inherited from Stream)
DisposeAsync() DisposeAsync() DisposeAsync() DisposeAsync() Inherited from Stream
EndRead(IAsyncResult) EndRead(IAsyncResult) EndRead(IAsyncResult) EndRead(IAsyncResult)

保留中の非同期読み取りが完了するまで待機します。Waits for the pending asynchronous read to complete. (代わりに、ReadAsync(Byte[], Int32, Int32) の使用を検討してください。)(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

(Inherited from Stream)
EndWrite(IAsyncResult) EndWrite(IAsyncResult) EndWrite(IAsyncResult) EndWrite(IAsyncResult)

非同期書き込み操作を終了します。Ends an asynchronous write operation. (代わりに、WriteAsync(Byte[], Int32, Int32) の使用を検討してください。)(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Inherited from Stream)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
Flush() Flush() Flush() Flush()

現在サポートされていません。Not currently supported.

FlushAsync() FlushAsync() FlushAsync() FlushAsync()

ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込みます。Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.

(Inherited from Stream)
FlushAsync(CancellationToken) FlushAsync(CancellationToken) FlushAsync(CancellationToken) FlushAsync(CancellationToken)

ストリームに対応するすべてのバッファーを非同期にクリアし、バッファー内のデータを基になるデバイスに書き込み、キャンセル要求を監視します。Asynchronously clears all buffers for this stream, causes any buffered data to be written to the underlying device, and monitors cancellation requests.

(Inherited from Stream)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
ObjectInvariant() ObjectInvariant() ObjectInvariant() ObjectInvariant()

Contract のサポートを提供します。Provides support for a Contract.

(Inherited from Stream)
Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32)

現在の OracleBFile ストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリーム内の位置を進めます。Reads a sequence of bytes from the current OracleBFile stream and advances the position within the stream by the number of bytes read.

Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>) Inherited from Stream
ReadAsync(Byte[], Int32, Int32) ReadAsync(Byte[], Int32, Int32) ReadAsync(Byte[], Int32, Int32) ReadAsync(Byte[], Int32, Int32)

現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進めます。Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

(Inherited from Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken) ReadAsync(Byte[], Int32, Int32, CancellationToken) ReadAsync(Byte[], Int32, Int32, CancellationToken) ReadAsync(Byte[], Int32, Int32, CancellationToken)

現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進め、キャンセル要求を監視します。Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(Inherited from Stream)
ReadAsync(Memory<Byte>, CancellationToken) ReadAsync(Memory<Byte>, CancellationToken) ReadAsync(Memory<Byte>, CancellationToken) ReadAsync(Memory<Byte>, CancellationToken) Inherited from Stream
ReadByte() ReadByte() ReadByte() ReadByte()

ストリームから 1 バイトを読み取り、ストリーム内の位置を 1 バイト進めます。ストリームの末尾の場合は -1 を返します。Reads a byte from the stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.

(Inherited from Stream)
Seek(Int64, SeekOrigin) Seek(Int64, SeekOrigin) Seek(Int64, SeekOrigin) Seek(Int64, SeekOrigin)

現在の OracleBFile ストリームで位置を設定します。Sets the position on the current OracleBFile stream.

SetFileName(String, String) SetFileName(String, String) SetFileName(String, String) SetFileName(String, String)

OracleBFile オブジェクトをオペレーティング システムの別のファイルにバインドします。Binds the OracleBFile object to a different file in the operating system.

SetLength(Int64) SetLength(Int64) SetLength(Int64) SetLength(Int64)

現在サポートされていません。Not currently supported.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32)

現在サポートされていません。Not currently supported.

Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Inherited from Stream
WriteAsync(Byte[], Int32, Int32) WriteAsync(Byte[], Int32, Int32) WriteAsync(Byte[], Int32, Int32) WriteAsync(Byte[], Int32, Int32)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進めます。Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

(Inherited from Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken) WriteAsync(Byte[], Int32, Int32, CancellationToken) WriteAsync(Byte[], Int32, Int32, CancellationToken) WriteAsync(Byte[], Int32, Int32, CancellationToken)

現在のストリームにバイト シーケンスを非同期に書き込み、書き込んだバイト数だけストリーム内の現在位置を進め、キャンセル要求を監視します。Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

(Inherited from Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) Inherited from Stream
WriteByte(Byte) WriteByte(Byte) WriteByte(Byte) WriteByte(Byte)

ストリームの現在位置にバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。Writes a byte to the current position in the stream and advances the position within the stream by one byte.

(Inherited from Stream)

明示的なインターフェイスの実装

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Stream によって使用されているすべてのリソースを解放します。Releases all resources used by the Stream.

(Inherited from Stream)

適用対象