プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# 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_offset`

  `OracleBlob`オブジェクトをコピーするオフセット(バイト)

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

関連項目:

- "Oracle.DataAccess.TypesおよびOracle.ManagedDataAccess.Typesのネームスペース"

- OracleBlobクラス

- OracleBlobメンバー