ヘッダーをスキップ

Oracle® Data Provider for .NET開発者ガイド
リリース9.2.0.4

部品番号 B13807-01
Go To Table Of Contents
目次
Go To Index
索引

Go to previous page Go to beginning of chapter Go to next page

Oracle.DataAccess.Typesネームスペース(ODP.NET型)、15/19


OracleBlobクラス

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

クラスの継承

Object

  MarshalByRefObject

    Stream

      OracleBlob

宣言
// C#
public sealed class OracleBlob : Stream, ICloneable
スレッド・セーフティ

インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。

[C#]
...
// assume: A valid connection is made
OracleBlob oraBlob = new OracleBlob(con);

// Read some data
...
int byteRead = oraBlob.Read(buffer, bufferOffset, amountToBeRead);

// Search for the 2nd occurrence of a byte pattern '123'
// from the oraBlob starting at offset 1
byte[] pattern = new byte[3] { 1,2,3 };
int positionFound = oraBlob.Search(pattern, 1, 2);

// Append 2 bytes {4,5} to the oraBlob
oraBlob.Append(new byte[3] {4,5,6}, 1, 2);

// Write 64 bytes, starting at buffer offset 512
byte[4096] buffer = new byte[4096];
...
oraBlob.Write(buffer, 512, 64);

// Erase 64 bytes of data starting at offset=1024
oraBlob.Erase(1024,64);
...

要件

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

アセンブリ: Oracle.DataAccess.dll

関連項目:

OracleBlobのメンバー

OracleBlobのメンバーを次の表に示します。

OracleBlobのコンストラクタ

OracleBlobのコンストラクタを表5-156に示します。

表5-156 OracleBlobのコンストラクタ
コンストラクタ 説明

OracleBlobのコンストラクタ

OracleBlobクラスのインスタンスを作成します(オーバーロード)。

OracleBlobのstaticフィールド

OracleBlobのstaticフィールドを表5-157に示します。

表5-157 OracleBlobのstaticフィールド
フィールド 説明

MaxSize

BLOBが保持できるバイト数の最大値を保持します。最大値は4,294,967,295(232 - 1)バイトです。

OracleBlobのstaticメソッド

OracleBlobのstaticメソッドを表5-158に示します。

表5-158 OracleBlobのstaticメソッド
メソッド 説明

Equals

Objectから継承されます(オーバーロード)。

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

OracleBlobのインスタンス・プロパティを表5-159に示します。

表5-159 OracleBlobのインスタンス・プロパティ
プロパティ 説明

CanRead

LOBストリームを読み込むことができるかどうかを示します。

CanSeek

順方向および逆方向のシーク操作を実行できるかどうかを示します。

CanWrite

LOBオブジェクトが書込みをサポートするかどうかを示します。

Connection

BLOBデータの取得および書込みに使用されるOracleConnectionを示します。

IsEmpty

BLOBが空かどうかを示します。

IsInChunkWriteMode

索引の更新を遅延させるためにBLOBがオープンされているかどうかを示します。

IsTemporary

現在のインスタンスが一時BLOBにバインドされているかどうかを示します。

Length

BLOBデータのサイズを示します。

OptimumChunkSize

読込みまたは書込み操作時にサーバーから取得または送信するバイト数の最小値を示します。

Position

LOBストリームの現在の読込みまたは書込み位置を示します。

Value

BLOBの最初のバイトから始まるデータをバイト配列として返します。

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

OracleBlobのインスタンス・メソッドを表5-160に示します。

表5-160 OracleBlobのインスタンス・メソッド
メソッド 説明

Append

指定されたデータを現在のOracleBlobインスタンスに追加します(オーバーロード)。

BeginChunkWrite

BLOBをオープンします。

BeginRead

Streamから継承されます。

BeginWrite

Streamから継承されます。

Clone

OracleBlobオブジェクトのコピーを作成します。

Close

現在のストリームをクローズし、それに関連付けられたリソースを解放します。

Compare

現在のインスタンスによって参照されるデータと指定されたオブジェクトのデータを比較します。

CopyTo

現在のOracleBlobインスタンスからOracleBlobオブジェクトにコピーします(オーバーロード)。

CreateObjRef

MarshalByRefObjectから継承されます。

Dispose

このオブジェクトによって割り当てられたリソースを解放します。

EndChunkWrite

現在のOracleBlobインスタンスによって参照されるBLOBをクローズします。

EndRead

Streamから継承されます。

EndWrite

Streamから継承されます。

Equals

Objectから継承されます(オーバーロード)。

Erase

データを消去します(オーバーロード)。

Flush

サポートされていません。

GetHashCode

Objectから継承されます。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

InitializedLifetimeService

MarshalByRefObjectから継承されます。

IsEqual

2つのOracleBlobによって参照されるLOBデータを比較します。

Read

指定されたバイト数をODP.NET LOB型のインスタンスから読み込み、バッファに移入します。

ReadByte

Streamから継承されます。

Search

OracleBlobの現在のインスタンスでバイナリ・パターンを検索します。

Seek

現在のLOBストリームに位置を設定します。

SetLength

BLOB値を指定された長さに切り捨てます。

ToString

Objectから継承されます。

Write

指定されたバッファをOracleBlobに書き込みます。

WriteByte

Streamから継承されます。

関連項目:

OracleBlobのコンストラクタ

OracleBlobのコンストラクタは、OracleBlobクラスのインスタンスを作成します。

オーバーロード一覧:

OracleBlob(OracleConnection)

このコンストラクタは、OracleConnectionオブジェクトを使用し、一時BLOBにバインドされたOracleBlobクラスのインスタンスを作成します。

宣言
// C#
public OracleBlob(OracleConnection con);
パラメータ
例外

InvalidOperationException: OracleConnectionがオープンされていません。

備考

接続は、アプリケーションで明示的にオープンされる必要があります。OracleBlobは、暗黙的に接続をオープンしません。

一時BLOBは、指定された接続を利用してBLOBデータを格納します。このコンストラクタでは、キャッシュは使用されません。

関連項目:

OracleBlob(OracleConnection, bool)

このコンストラクタは、OracleConnectionオブジェクトおよびキャッシュ用のブール値を使用し、一時BLOBにバインドされたOracleBlobクラスのインスタンスを作成します。

宣言
// C#
public OracleBlob(OracleConnection con, bool bCaching);
パラメータ
例外

InvalidOperationException: OracleConnectionがオープンされていません。

備考

接続は、アプリケーションで明示的にオープンされる必要があります。OracleBlobは、暗黙的に接続をオープンしません。

一時BLOBは、指定された接続を利用してBLOBデータを格納します。bCaching入力パラメータは、サーバー側キャッシュが使用されるかどうかを判断します。

関連項目:

OracleBlobのstaticフィールド

OracleBlobのstaticフィールドを表5-161に示します。

表5-161 OracleBlobのstaticフィールド
フィールド 説明

MaxSize

BLOBが保持できるバイト数の最大値を保持します。最大値は4,294,967,295(232 - 1)バイトです。

関連項目:

MaxSize

MaxSizeフィールドは、BLOBが保持できるバイト数の最大値を保持します。最大値は4,294,967,295(232 - 1)バイトです。

宣言
// C#
public static readonly Int64 MaxSize = 4294967295;
備考

このフィールドは、操作が許容される最大長を超えるかどうかをチェックするコードで使用すると便利です。

関連項目:

OracleBlobのstaticメソッド

OracleBlobのstaticメソッドを表5-162に示します。

表5-162 OracleBlobのstaticメソッド
メソッド 説明

Equals

Objectから継承されます(オーバーロード)。

関連項目:

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

OracleBlobのインスタンス・プロパティを表5-163に示します。

表5-163 OracleBlobのインスタンス・プロパティ
プロパティ 説明

CanRead

LOBストリームを読み込むことができるかどうかを示します。

CanSeek

順方向および逆方向のシーク操作を実行できるかどうかを示します。

CanWrite

LOBオブジェクトが書込みをサポートするかどうかを示します。

Connection

BLOBデータの取得および書込みに使用されるOracleConnectionを示します。

IsEmpty

BLOBが空かどうかを示します。

IsInChunkWriteMode

索引の更新を遅延させるためにBLOBがオープンされているかどうかを示します。

IsTemporary

現在のインスタンスが一時BLOBにバインドされているかどうかを示します。

Length

BLOBデータのサイズを示します。

OptimumChunkSize

読込みまたは書込み操作時にサーバーから取得または送信するバイト数の最小値を示します。

Position

LOBストリームの現在の読込みまたは書込み位置を示します。

Value

BLOBの最初のバイトから始まるデータをバイト配列として返します。

関連項目:

CanRead

Streamをオーバーライドします。

このインスタンス・プロパティは、LOBストリームを読み込むことができるかどうかを示します。

宣言
// C#
public override bool CanRead{get;}
プロパティ値

LOBストリームを読み込むことができる場合、trueを返します。それ以外の場合、falseを返します。

関連項目:

CanSeek

Streamをオーバーライドします。

このインスタンス・プロパティは、順方向および逆方向のシーク操作を実行できるかどうかを示します。

宣言
// C#
public override bool CanSeek{get;}
プロパティ値

順方向および逆方向のシーク操作を実行できる場合、trueを返します。それ以外の場合、falseを返します。

関連項目:

CanWrite

Streamをオーバーライドします。

このインスタンス・プロパティは、LOBオブジェクトが書込みをサポートするかどうかを示します。

宣言
// C#
public override bool CanWrite{get;}
プロパティ値

LOBストリームを書き込むことができる場合、trueを返します。それ以外の場合、falseを返します。

関連項目:

Connection

このインスタンス・プロパティは、BLOBデータの取得および書込みに使用されるOracleConnectionを示します。

宣言
// C#
public OracleConnection Connection {get;}
プロパティ値

OracleConnectionのオブジェクト

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

関連項目:

IsEmpty

このインスタンス・プロパティは、BLOBが空かどうかを示します。

宣言
// C#
public bool IsEmpty {get;}
プロパティ値

BLOBが空かどうかを示すbool

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

IsInChunkWriteMode

このインスタンス・プロパティは、索引の更新を遅延させるためにBLOBがオープンされているかどうかを示します。

宣言
// C#
public bool IsInChunkWriteMode{get;}
プロパティ値

BLOBがオープンされている場合、trueを返します。それ以外の場合、falseを返します。

関連項目:

IsTemporary

このインスタンス・プロパティは、現在のインスタンスが一時BLOBにバインドされているかどうかを示します。

宣言
// C#
public bool IsTemporary {get;}
プロパティ値

bool

関連項目:

Length

Streamをオーバーライドします。

このインスタンス・プロパティは、BLOBデータのサイズをバイトで示します。

宣言
// C#
public override Int64 Length {get;}
プロパティ値

BLOBデータのサイズをバイトで示す数値

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

関連項目:

OptimumChunkSize

このインスタンス・プロパティは、読込みまたは書込み操作時にサーバーから取得または送信するバイト数の最小値を示します。

宣言
// C#
public int OptimumChunkSize{get;}
プロパティ値

取得または送信するバイト数の最小値を表す数値

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

関連項目:

Position

Streamをオーバーライドします。

このインスタンス・プロパティは、LOBストリームの現在の読込みまたは書込み位置を示します。

宣言
// C#
public override Int64 Position{get; set;}
プロパティ値

読込みまたは書込み位置を示すInt64

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: Position0より小さいです。

関連項目:

Value

このインスタンス・プロパティは、BLOBの最初のバイトから始まるデータをバイト配列として返します。

宣言
// C#
public Byte[] Value{get;}
プロパティ値

バイト配列

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: Value0より小さいです。

備考

Positionの値は、このプロパティを使用しても使用または変更されません。このプロパティによって返されるバイト配列の最大長は2GBです。

関連項目:

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

OracleBlobのインスタンス・メソッドを表5-164に示します。

表5-164 OracleBlobのインスタンス・メソッド
メソッド 説明

Append

指定されたデータを現在のOracleBlobインスタンスに追加します(オーバーロード)。

BeginChunkWrite

BLOBをオープンします。

BeginRead

Streamから継承されます。

BeginWrite

Streamから継承されます。

Clone

OracleBlobオブジェクトのコピーを作成します。

Close

現在のストリームをクローズし、それに関連付けられたリソースを解放します。

Compare

現在のインスタンスによって参照されるデータと指定されたオブジェクトのデータを比較します。

CopyTo

現在のOracleBlobインスタンスからOracleBlobオブジェクトにコピーします(オーバーロード)。

CreateObjRef

MarshalByRefObjectから継承されます。

Dispose

このオブジェクトによって割り当てられたリソースを解放します。

EndChunkWrite

現在のOracleBlobインスタンスによって参照されるBLOBをクローズします。

EndRead

Streamから継承されます。

EndWrite

Streamから継承されます。

Equals

Objectから継承されます(オーバーロード)。

Erase

データを消去します(オーバーロード)。

Flush

サポートされていません。

GetHashCode

Objectから継承されます。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

InitializedLifetimeService

MarshalByRefObjectから継承されます。

IsEqual

2つのOracleBlobによって参照されるLOBデータを比較します。

Read

指定されたバイト数をODP.NET LOB型のインスタンスから読み込み、バッファに移入します。

ReadByte

Streamから継承されます。

Search

OracleBlobの現在のインスタンスでバイナリ・パターンを検索します。

Seek

現在のLOBストリームに位置を設定します。

SetLength

BLOB値を指定された長さに切り捨てます。

ToString

Objectから継承されます。

Write

指定されたバッファをOracleBlobに書き込みます。

WriteByte

Streamから継承されます。

関連項目:

Append

Appendは、指定されたデータを現在のOracleBlobインスタンスの終わりに追加します。

オーバーロード一覧:

Append(OracleBlob)

このインスタンス・メソッドは、指定されたOracleBlobオブジェクトによって参照されるBLOBデータを現在のOracleBlobインスタンスに追加します。

宣言
// C#
public void Append(OracleBlob obj);
パラメータ
例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: パラメータがオブジェクトとは異なる接続を使用しているか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

備考

キャラクタ・セットの変換は行われません。

指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。

関連項目:

Append(byte[ ], int, int)

このインスタンス・メソッドは、指定されたバイト配列バッファからのデータを現在のOracleBlobインスタンスの終わりに追加します。

宣言
// C#
public void Append(byte[] buffer, int offset, int count);
パラメータ
例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

// C#
...
// Append 2 bytes {4,5} to the oraBlob
oraBlob.Append(new byte[3] {4,5,6}, 1, 2);
...

関連項目:

BeginChunkWrite

このインスタンス・メソッドは、BLOBをオープンします。

宣言
// C#
public void BeginChunkWrite();
例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

備考

BeginChunkWriteは、BLOBデータを操作する前にコールする必要はありません。これはパフォーマンス上の理由で提供されています。

このメソッドがコールされると、書込み操作によって列のドメイン索引またはファンクション索引が更新されることはありません。索引の更新は、EndChunkWriteがコールされた後に1回だけ発生します。

関連項目:

Clone

このインスタンス・メソッドは、OracleBlobオブジェクトのコピーを作成します。

宣言
// C#
public object Clone();
戻り値

OracleBlobオブジェクト

実装

ICloneable

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

備考

クローニングされたオブジェクトは、クローニング元のオブジェクトと同じプロパティ値を持ちます。

// C#
...
//Need a proper casting for the return value when cloned
OracleBlob oraBlob_cloned = (OracleBlob) oraBlob.Clone();
...

関連項目:

Close

Streamをオーバーライドします。

このインスタンス・メソッドは、現在のストリームをクローズし、それに関連付けられたリソースを解放します。

宣言
// C#
public override void Close();

関連項目:

Compare

このインスタンス・メソッドは、現在のインスタンスによって参照されるデータと指定されたオブジェクトのデータを比較します。

宣言
// C#
public int Compare(Int64 src_offset, OracleBlob obj, Int64 dst_offset,
 Int64 amount);
パラメータ
戻り値

次の数値を返します。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: パラメータがオブジェクトとは異なる接続を使用しているか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

ArgumentOutOfRangeException: src_offsetパラメータ、dst_offsetパラメータまたはamountパラメータが0より小さいです。

備考

指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。

関連項目:

CopyTo

CopyToは、現在のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

オーバーロード一覧:

CopyTo(OracleBlob)

このインスタンス・メソッドは、現在のインスタンスから指定されたOracleBlobオブジェクトにデータをコピーします。

宣言
// C#
public Int64 CopyTo(OracleBlob obj);
パラメータ
戻り値

返される値は、コピーされたデータ量です。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: この例外は、次の条件のいずれかに該当する場合にスローされます。

備考

指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。

関連項目:

CopyTo(OracleBlob, Int64)

このインスタンス・メソッドは、現在のOracleBlobインスタンスから指定されたOracleBlobオブジェクトに、指定された宛先オフセットを使用してデータをコピーします。

宣言
// C#
public Int64 CopyTo(OracleBlob obj, Int64 dst_offset);
パラメータ
戻り値

返される値は、コピーされたデータ量です。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

ArgumentOutOfRangeException: dst_offset0より小さいです。

InvalidOperationException: この例外は、次の条件のいずれかに該当する場合にスローされます。

備考

dst_offsetOracleBlobデータの終わりを超えている場合、dst_offsetと一致するまでOracleBlobに空白が書き込まれます。

オフセットは0ベースです。この操作では文字の変換は実行されません。

指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。

関連項目:

CopyTo(Int64, OracleBlob, Int64, Int64)

このインスタンス・メソッドは、現在のOracleBlobインスタンスから指定されたOracleBlobオブジェクトに、指定されたソース・オフセット、宛先オフセットおよび文字数を使用してデータをコピーします。

宣言
// C#
public Int64 CopyTo(Int64 src_offset,OracleBlob obj,Int64 dst_offset,Int64
amount);
パラメータ
戻り値

返される値は、コピーされたデータ量です。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: パラメータがオブジェクトとは異なる接続を使用しているか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。

ArgumentOutOfRangeException: src_offsetパラメータ、dst_offsetパラメータまたはamountパラメータが0より小さいです。

備考

dst_offsetOracleBlobデータの終わりを超えている場合、dst_offsetと一致するまでOracleBlobに空白が書き込まれます。

オフセットは0ベースです。この操作では文字の変換は実行されません。

指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。

// C#
...
// Assume you have 2 valid blobs
OracleBlob src_blob = new OracleBlob(con);
OracleBlob target_blob = new OracleBlob(con);

// Copy 1024 bytes from src_blob (begin at offset 10) to target_blob
// (starting at offset 5)
src_blob.CopyTo(10, target_blob, 5, 1024);
...

関連項目:

Dispose

このインスタンス・メソッドは、このオブジェクトによって割り当てられたリソースを解放します。

宣言
// C#
public void Dispose();
実装

IDisposable

備考

Dispose()がコールされると、OracleBlobのオブジェクトは未初期化状態になります。

引き続きアクセスできるプロパティもありますが、その値は保証されない場合があります。リソースは解放されているため、メソッドのコールにより例外が発生することがあります。オブジェクトは、破棄後に再利用することはできません。

関連項目:

EndChunkWrite

このインスタンス・メソッドは、現在のOracleBlobインスタンスによって参照されるBLOBをクローズします。

宣言
// C#
public void EndChunkWrite();
例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

備考

索引の更新は、BeginChunkWriteメソッドによって書込み操作が遅延されるとすぐに発生します。

関連項目:

Erase

Eraseは、データの一部またはすべてを消去します。

オーバーロード一覧:

Erase()

このインスタンス・メソッドは、すべてのデータを消去します。

宣言
// C#
public Int64 Erase();
戻り値

消去されたバイト数

備考

Erase()は、すべてのデータを0バイトの充填文字で置換します。

関連項目:

Erase(Int64, Int64)

このインスタンス・メソッドは、特定の部分のデータを消去します。

宣言
// C#
public Int64 Erase(Int64 offset, Int64 amount);
パラメータ
戻り値

消去されたバイト数

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: offsetパラメータまたはamountパラメータが0より小さいです。

備考

指定されたデータ量を0バイトの充填文字で置換します。

関連項目:

IsEqual

このインスタンス・メソッドは、2つのOracleBlobによって参照されるLOBデータを比較します。

宣言
// C#
public bool IsEqual(OracleBlob obj);
パラメータ
戻り値

現在のOracleBlobおよび指定されたOracleBlobが同じLOBを参照している場合、trueを返します。それ以外の場合、falseを返します。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

備考

このメソッドは、2つのOracleBlobオブジェクトが==またはEquals()に対してfalseを返す場合でもtrueを返すことができます。これは、2つの異なるOracleBlobインスタンスが同じLOBを参照できるためです。

指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。

関連項目:

Read

Streamをオーバーライドします。

このインスタンス・メソッドは、指定されたバイト数をODP.NET LOBインスタンスから読み込み、バッファに移入します。

宣言
// C#
public override int Read(byte[ ] buffer, int offset, int count);
パラメータ
戻り値

返される値は、LOBから読み込まれたバイト数を示します。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。

備考

LOBデータは、Positionプロパティによって指定された位置から読込みが開始されます。

// C#
...
byte buffer         = new byte[1024];
int  bufferOffset   = 10;
int  amountToBeRead = 10;
// Read some data
...
int byteRead = oraBlob.Read(buffer, bufferOffset, amountToBeRead);
...

関連項目:

Search

このインスタンス・メソッドは、OracleBlobの現在のインスタンスでバイナリ・パターンを検索します。

宣言
// C#
public Int64 Search(byte[] val, int64 offset, int64 nth);
パラメータ
戻り値

一致のnth番目の出現に対する、一致パターンの開始の絶対オフセット(バイト)を返します。それ以外の場合、0を返します。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。

備考

検索パターンの制限は16383バイトです。

// C#
...
// Search for the 2nd occurrence of a byte pattern '123'
// from the oraBlob starting at offset 1
byte[] pattern = new byte[3] { 1,2,3 };
int positionFound = oraBlob.Search(pattern, 1, 2);
...

関連項目:

Seek

Streamをオーバーライドします。

このインスタンス・メソッドは、現在のLOBストリームに位置を設定します。

宣言
// C#
public override Int64(Int64 offset, SeekOrigin origin);
パラメータ
戻り値

位置を示すInt64を返します。

例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

備考

offsetが負の場合、新しい位置はoriginによって指定された位置よりoffsetによって指定されたバイト数分だけ前に位置します。

offsetが0の場合、新しい位置はoriginによって指定された位置です。

offsetが正の場合、新しい位置はoriginによって指定された位置よりoffsetによって指定されたバイト数分だけ後に位置します。

SeekOrigin.Beginはストリームの開始を指定します。

SeekOrigin.Currentはストリーム内の現在の位置を指定します。

SeekOrigin.Endはストリームの終了を指定します。

関連項目:

SetLength

Streamをオーバーライドします。

このインスタンス・メソッドは、指定された長さ(バイト)にBLOB値を切り捨てます。

宣言
// C#
public override void SetLength(Int64 newlen);
パラメータ
例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: newlenパラメータが0より小さいです。

関連項目:

Write

Streamをオーバーライドします。

このインスタンス・メソッドは、指定されたバッファをOracleBlobに書き込みます。

宣言
// C#
public override void Write(byte[ ] buffer, int offset, int count);
パラメータ
例外

ObjectDisposedException: オブジェクトがすでに破棄されています。

InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。

ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。

備考

OracleBlobの宛先オフセットは、Positionプロパティによって指定できます。

// C#
...
// Begin ChunkWrite to improve performance
// Index updates occur only once after EndChunkWrite
oraBlob.BeginChunkWrite();

// Set the write from the beginning;
oraBlob.Position = 0;

// Write to the oraBlob in chunks of 10, each 1024 bytes
for ( int i=0; i<10; i++ )
{
  byte[1024] b;
  b = b[0];    // some new value to be written
  oraBlob.Write(b, 0, b.Length);
}

oraBlob.EndChunkWrite();
...

関連項目:


Go to previous page Go to beginning of chapter Go to next page
Oracle
Copyright © 2002, 2003 Oracle Corporation.

All Rights Reserved.
Go To Table Of Contents
目次
Go To Index
索引