CopyTo(Int64, OracleBlob, Int64, Int64)
This instance method copies data from the current OracleBlob instance to the provided OracleBlob object with the specified source offset, destination offset, and character amounts.
Declaration
// C# public Int64 CopyTo(Int64 src_offset,OracleBlob obj,Int64 dst_offset, Int64 amount);
Parameters
-
src_offsetThe offset (in bytes) in the current instance, from which the data is read.
-
objThe
OracleBlobobject to which the data is copied. -
dst_offsetThe offset (in bytes) at which the
OracleBlobobject is copied. -
amountThe amount of data to be copied.
Return Value
The return value is the amount copied.
Exceptions
ObjectDisposedException - The object is already disposed.
InvalidOperationException - The parameter has a different connection than the object, OracleConnection is not opened, or OracleConnection has been reopened.
ArgumentOutOfRangeException - The src_offset, the dst_offset, or the amount parameter is less than 0.
Remarks
If the dst_offset is beyond the end of the OracleBlob data, spaces are written into the OracleBlob until the dst_offset is met.
The offsets are 0-based. No character conversion is performed by this operation.
The provided object and the current instance must be using the same connection; that is, the same OracleConnection object.
Example
// 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();
}
}