Oracle INSTR・INSTRB 文字列が含まれる位置を検索する

文字列が含まれる位置を検索するINSTR・INSTRB

Oracleで文字列が含まれる位置を検索するにはINSTR・INSTRBを使います。

INSTR(文字列,検索文字)

  • 文字列から検索文字が何文字目にあるか検索する

INSTR(文字列,検索文字,開始位置,回数)

  • 文字列の開始位置から検索文字が何文字目にあるか検索する。
  • 回数は検索文字が何回目にあるかを指定する

 INSTRB(文字列,開始桁,切り取りバイト数)

  • 文字列から検索文字が何バイと目にあるか検索する

INSTR(文字列,検索文字,開始位置,回数)

  • 文字列の開始位置から検索文字が何バイト目にあるか検索する。
  • 回数は検索文字が何回目にあるかを指定する

文字列の中にある文字が含まれているか?を検索するときに使うのがINSTR・INSTRBです。

例1. INSTRで文字列を検索するパターン

「佐藤太郎」から「太」を検索し、3文字目が検索できました。

対象文字列にない文字を検索した場合は0が取得されます。

例2. INSTRで文字列の指定桁以降を切り取るパターン

第3パラメータを「3」とし3文字目以降を検索するようにしました。3文字目以降で「B」が存在するのは5文字目となります。

例3. INSTRBで文字列を検索するパターン

INSTRBでは何バイト目にあるか?を探します。全角も対応しています。

例4. INSTRBで指定桁以降を切り取るパターン

開始桁を指定する場合、全角のバイト数に注意が必要です。最初のSQLでは3バイト目に「い」が存在するため、最初の「い」がある位置「3」を取得しました。

2つ目のSQLで、開始位置「4」とすると2回目に位置「13」を取得しました。全角は注意が必要です。

以上、Oracleで文字列が含まれる位置を検索するINSTR・INSTRBでした。