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(); } }