13.3.6.26 Search(char[ ], Int64, Int64)
このインスタンス・メソッドでは、OracleClob
の現行インスタンスの文字パターンを検索します。
宣言
// C# public Int64 Search(char [ ] val, Int64 offset, Int64 nth);
パラメータ
-
val
検索対象のUnicode文字列
-
offset
OracleClob
の検索の起点の0
ベース・オフセット(文字) -
nth
絶対オフセット(文字)が戻される特定の一致の出現(
1
ベース)
戻り値
一致のnth
回目の出現に対して、一致パターン(文字表示)の起点の絶対offset
を戻します。それ以外の場合は、0
が戻されます。
例外
ObjectDisposedException
- オブジェクトはすでに処理されています。
InvalidOperationException
- OracleConnection
がオープンされていないか、またはオブジェクトの存続中にクローズされています。
ArgumentOutOfRangeException
- この例外は次のいずれかの条件が存在する場合に表示されます。
-
offset
が0
未満の場合 -
nth
が0
以下の場合 -
val
.Length
の2倍が16383
より大きい場合 -
nth
がOracleClob.MaxSize
以上の場合 -
offset
がOracleClob.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(); OracleClob clob = new OracleClob(con); // Write 7 chars, starting at buffer offset 0 char[] buffer = new char[7] {'a', 'b', 'c', 'd', 'a', 'b', 'c'}; clob.Write(buffer, 0, 7); // Search for the 2nd occurrence of a char pattern 'bc' // starting at offset 1 in the OracleBlob char[] pattern = new char[2] {'b', 'c'}; long posFound = clob.Search(pattern, 1, 2); // Prints "posFound = 6" Console.WriteLine("posFound = " + posFound); clob.Close(); clob.Dispose(); con.Close(); con.Dispose(); } }