プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

INSTR

構文

instr.gifの説明が続きます。
図「instr.gif」の説明

用途

INSTRファンクションは、stringsubstringを検索します。検索操作では、一致する値が見つかるか、または検索するサブストリングがなくなるまで、substring引数と、stringに含まれる同じ長さのサブストリングを比較して等しいものを検索します。stringの中で逐次比較される各サブストリングは、その前に比較したサブストリングの最初の文字の1つ右(順方向検索)または左(逆方向検索)から始まります。substringと等しいサブストリングが見つかった場合は、そのサブストリングの先頭文字の位置を示す整数が戻されます。該当するサブストリングが見つからない場合は0(ゼロ)が戻されます。

INSTRは、文字列の先頭文字の位置を1として、入力キャラクタ・セットによって定義された文字の位置を受け入れ、それに該当する位置を戻します。INSTRBは文字のかわりにバイトを使用します。INSTRCは、完全なUnicodeキャラクタを使用します。INSTR2は、UCS2コードポイントを使用します。INSTR4は、UCS4コードポイントを使用します。

stringは、CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOBデータ型です。例外は、INSTRCINSTR2およびINSTR4であり、これらでは、stringCLOBおよびNCLOBのいずれにもできません。

substringは、CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOBデータ型です。

戻り値のデータ型はNUMBERです。

positionおよびoccurrenceは、NUMBERデータ型か、または暗黙的にNUMBERに変換可能な任意のデータ型で、整数に変換されるものである必要があります。positionおよびoccurrenceのデフォルト値は1です。この場合、Oracleはstringの最初の文字から検索を開始します。検索対象はsubstringが最初に現れる位置です。戻り値は、positionの値にかかわらず、stringの先頭を基準にします。


関連項目:

暗黙的な変換の詳細は、表3-10「暗黙的な型変換のマトリックス」を参照してください。

次の例では、文字列CORPORATE FLOORで文字列ORの検索を3番目の文字から開始します。文字列CORPORATE FLOORで2回目に現れるORの開始位置を戻します。

SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring"
  FROM DUAL;
 
  Instring
----------
        14

次の例では、最後の文字から、最後から3番目の文字まで、つまりFLOORの最初のOまで逆方向にカウントします。次に、2回目に現れる「OR」を逆方向に検索し、2回目に現れるこの文字列が、検索文字列の2番目の文字で始まることを認識します。

SELECT INSTR('CORPORATE FLOOR','OR', -3, 2) "Reversed Instring"
  FROM DUAL;
 
Reversed Instring
-----------------
                2

次の例では、データベース・キャラクタ・セットがダブルバイトの場合を想定しています。

SELECT INSTRB('CORPORATE FLOOR','OR',5,2) "Instring in bytes"
  FROM DUAL;

Instring in bytes
-----------------
               27