ReadAsync

ReadAsyncは、指定された数のバイトをODP.NET LOBインスタンスから読み取ってbufferに移入する、タスクベースの非同期バージョンのOracleClob.Read()を返します。

オーバーロード・リスト:

  • ReadAsync(byte[], int, int, CancellationToken)

    ReadAsyncは、指定された数のバイトをODP.NET LOBインスタンスから読み取ってbufferに移入する、タスクベースの非同期バージョンのOracleClob.Read()を返します。

  • ReadAsync(byte[], int, int)

    ReadAsyncは、指定された数のバイトをODP.NET LOBインスタンスから読み取ってbufferに移入する、タスクベースの非同期バージョンのOracleClob.Read()を返します。

  • ReadAsync(char[], int, int)

    ReadAsyncは、指定された数のバイトをODP.NET LOBインスタンスから読み取ってbufferに移入する、タスクベースの非同期バージョンのOracleClob.Read()を返します。

  • ReadAsync(char[], int, int, CancellationToken)

    ReadAsyncは、指定された数のバイトをODP.NET LOBインスタンスから読み取ってbufferに移入する、タスクベースの非同期バージョンのOracleClob.Read()を返します。

例(すべてのオーバーロードが含まれている)

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