INSTR、INSTRB、INSTR4

ある文字列が別の文字列内に検出された場合に、その最初の位置を識別します。サブストリングが文字列内で検出されない場合は0(ゼロ)が返されます。返される位置は、常にSourceExprの開始と関連します。INSTRは、NUMBER型を返します。

SQL構文

{INSTR | INSTRB | INSTR4} ( SourceExpr, SearchExpr [,m[,n]])

パラメータ

INSTRには、次のパラメータがあります。

パラメータ 説明

SourceExpr

SearchExprの位置を検出するために検索される文字列です。値には、CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOBデータ型などのサポートされている文字データ型を指定できます。TimesTenデータ型およびOracle Databaseデータ型の両方がサポートされます。

SearchExpr

文字列SourceExpr内で検出されるサブストリングです。SearchExprSourceExpr内で見つからない場合はゼロが返されます。文字列のいずれかの長さが0(ゼロ)の場合は、NULLが返されます。

m

検索を開始する位置です(オプション)。mに0 (ゼロ)が指定された場合、結果は0 (ゼロ)になります。mが正の値の場合、検索はCharExpr2+mから開始されます。mが負の値の場合、検索はCharExpr2の終わりからm文字目で開始されます。

n

nには正の値を指定する必要があります。この検索により、CharExpr1n番目の出現位置が返されます。

説明

INSTRは、文字セットで定義された文字を使用して文字列を計算します。INSTRBには、文字でなくバイトを使用します。INSTR4には、UCS4コード・ポイントを使用します。

次の例では、INSTRを使用して、文字列'Washington'で使用されるサブストリング'ing'の位置を判別します。

Command> SELECT INSTR ('Washington', 'ing') FROM dual;
< 5 >
1 row found.

次の例では、INSTRを使用して、COUNT関数への入力として従業員の数に市外局番650を指定します。

Command> SELECT COUNT(INSTR(phone_number, '650')) FROM employees;
< 107 >
1 row found.