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_offset
The offset (in bytes) in the current instance, from which the data is read.
-
obj
The
OracleBlob
object to which the data is copied. -
dst_offset
The offset (in bytes) at which the
OracleBlob
object is copied. -
amount
The 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(); } }