ReadAsync
ReadAsync returns a Task-based asynchronous version of OracleClob.Read(), which reads a specified number of bytes from the ODP.NET LOB instance and populates the buffer.
Overload List:
-
ReadAsync(byte[], int, int, CancellationToken)
ReadAsyncreturns a Task-based asynchronous version ofOracleClob.Read(), which reads a specified number of bytes from the ODP.NET LOB instance and populates the buffer. -
ReadAsyncreturns a Task-based asynchronous version ofOracleClob.Read(), which reads a specified number of bytes from the ODP.NET LOB instance and populates the buffer. -
ReadAsyncreturns a Task-based asynchronous version ofOracleClob.Read(), which reads a specified number of bytes from the ODP.NET LOB instance and populates the buffer. -
ReadAsync(char[], int, int, CancellationToken)
ReadAsyncreturns a Task-based asynchronous version ofOracleClob.Read(), which reads a specified number of bytes from the ODP.NET LOB instance and populates the buffer.
Example (includes all overloads)
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace AsyncApp
{
class AsyncDemo
{
static async Task Main(string[] args)
{
string connectionString = "User Id=HR; Password=<PASSWORD>; Data Source=oracle;";
OracleConnection oc = new OracleConnection(connectionString);
await oc.OpenAsync(CancellationToken.None);
OracleCommand cmd = oc.CreateCommand();
cmd.CommandText = " select clob_column from tab1";
OracleDataReader reader = await cmd.ExecuteReaderAsync();
await reader.ReadAsync(CancellationToken.None);
using (var clob = reader.GetOracleClob(0))
{
char[] charBuffer = new char[128];
byte[] byteBuffer = new byte[128];
//asynchronously read clob data
int bytesRead = await clob.ReadAsync(byteBuffer, 0, 64);
Console.WriteLine("Bytes Read: " + bytesRead);
//asynchronously read clob data
bytesRead = await clob.ReadAsync(byteBuffer, 64, 64, CancellationToken.None);
Console.WriteLine("Bytes Read: " + bytesRead);
//asynchronously read clob data
int charsRead = await clob.ReadAsync(charBuffer, 0, 64);
Console.WriteLine("Chars Read: " + charsRead);
//asynchronously read clob data
charsRead = await clob.ReadAsync(charBuffer, 64, 64, CancellationToken.None);
Console.WriteLine("Chars Read: " + charsRead);
}
}
}
}