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

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

前 | 次 |

# Search

このインスタンス・メソッドでは、`OracleBlob`の現行インスタンスのバイナリ・パターンを検索します。

宣言

    // C#
    public Int64 Search(byte[] val, int64 offset, int64 nth);

パラメータ

- `val`

  検索対象のバイナリ・パターン

- `offset`

  `OracleBlob`の検索が開始される`0`ベース・オフセット(バイト)

- `nth`

  絶対オフセット(バイト)が戻される特定の一致状況の発生(1ベース)

戻り値

一致の`nth`回目の出現に対して、一致パターン(バイト表示)の起点の絶対`offset`を戻します。それ以外の場合は、`0`が戻されます。

例外

`ObjectDisposedException` - オブジェクトはすでに処理されています。

`InvalidOperationException` - `OracleConnection`がオープンされていないか、またはオブジェクトの存続中にクローズされています。

`ArgumentOutOfRangeException` - この例外は次のいずれかの条件が存在する場合に表示されます。

- `offset`が`0`未満の場合

- `nth`が`0`以下の場合

- `val`.`Length`が`16383`より大きい場合

- `nth`が`OracleBlob.MaxSize`以上の場合

- `offset`が`OracleBlob.MaxSize`以上の場合

備考

検索パターンの制限は16383バイトです。

例

    // C#

    using System;
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;

    class SearchSample
    {
      static void Main()
      {
        string constr = "User Id=scott;Password=tiger;Data Source=oracle";
        OracleConnection con = new OracleConnection(constr);
        con.Open();

        OracleBlob blob = new OracleBlob(con);

        // Write 7 bytes, starting at buffer offset 0
        byte[] buffer = new byte[7] {1, 2, 3, 4, 1, 2, 3};
        blob.Write(buffer, 0, 7);

        // Search for the 2nd occurrence of a byte pattern '23'
        // starting at offset 1 in the OracleBlob
        byte[] pattern = new byte[2] {2 ,3};
        long posFound = blob.Search(pattern, 1, 2);

        // Prints "posFound = 6"
        Console.WriteLine("posFound = " + posFound);

        blob.Close();
        blob.Dispose();

        con.Close();
        con.Dispose();
      }
    }

関連項目:

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

- OracleBlobクラス

- OracleBlobメンバー