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_offsetOracleBlobオブジェクトをコピーするオフセット(バイト) -
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();
}
}