Oracle Database 指定した文字列の位置を取得する
- 作成日 2023.08.15
- Oracle Database
- Oracle Database

Oracle Databaseで、指定した文字列の位置を取得する手順を記述してます。「INSTR」で可能です。ここでは、実際に実行した結果を画像で掲載してます。
環境
- OS windows11 home
- Oracle Database 21c Express Edition
- SQL Developer 21.2.1.204
手順
指定した文字列の位置を取得するには、「INSTR」を使用します。
INSTR( 文字列,位置を取得する文字列 )
実際に、指定した文字列の位置を取得してみます。
※「DUAL」テーブルはダミーとして使用できるテーブルです。
SELECT
INSTR('hello', 'e'),
INSTR('hello', 'l'),
INSTR('hello', 'll')
FROM DUAL;
実行結果

取得されていることが確認できます。
文字列が存在しなければ「0」が返ります。
SELECT
INSTR('hello', 'a')
FROM DUAL;
実行結果

開始位置を指定
検索を開始する位置を指定することもできます。
INSTR( 文字列,位置を取得する文字列,開始位置 )
位置を指定して、取得してみます。
SELECT
INSTR('hello', 'l', 3),
INSTR('hello', 'l', 4)
FROM DUAL;
実行結果

何番目に出現するかを指定
何番目に出現した位置を取得することも可能です。
INSTR( 文字列,位置を取得する文字列,出現回数 )
実際に取得してみます。
SELECT
INSTR('hello', 'l', 3, 2),
INSTR('helloworld', 'l', 3, 3)
FROM DUAL;
実行結果

全角空白も半角空白も、一文字としてカウントされます。
SELECT
INSTR('hello world', 'l', 3, 3),
INSTR('hello world', 'l', 3, 3)
FROM DUAL;
実行結果

サロゲートペア文字
サロゲートペア文字を使用しても動作は同じです。
SELECT
INSTR('😀😇😈😃😄', '😇')
FROM DUAL;
実行結果

-
前の記事
Rust ベクタ(可変配列)の値の総和を求める 2023.08.15
-
次の記事
Fork プッシュ後のコミットの取り消し手順 2023.08.16
コメントを書く