![]()
SQLクリニック(1) Page
1/2Oracle 10gの正規表現で文字列操作を極める
株式会社インサイトテクノロジー
大道隆久
2005/2/24
本連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基本構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。本連載は、著名なメールマガジン「おら! オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーのコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局)
| 主な内容 --Page 1--
・1.REGEXP_LIKE関数 --Page 2--
・2.REGEXP_INSTR関数・3.REGEXP_SUBSTR関数 ・4.REGEXP_REPLACE関数 |
Oracle Database 10g で新規に追加された正規表現機能は、テキスト形式データを扱うための強力なツールです。これによりSQLを使用した文字データを検索し、操作する能力が大幅に向上します。
UNIXユーザーには大変なじみの深い正規表現。Oracle 10gで(やっと!?)実現されました。いままではWHERE句の中で“LIKE”とともに使用する「%」や「_」などでしか表現できなかったあいまいな文字列を、正規表現を使用することで文字数やその種類まで指定できるようになり大変便利になりました。
今回は、Oracle 10gでサポートされる正規表現(REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、REGEXP_REPLACE関数)を紹介します。
| Samples | |
| 今回使用するサンプルテーブルの詳細は、以下のリンクから確認してください。 | |
・ |
sqlclinic01.txt |
Oracle9iまでの関数に「REGEXP_」が付加され正規表現用の関数になりました(表1参照)。順番に操作方法を確認していきます。
| 関数名称 | 構文 | 説明 |
| REGEXP_LIKE | REGEXP_LIKE( 列名, 条件 ) |
条件(正規表現)を使ってあいまいな条件検索を実施します。検索対象列では、文字データ型をサポートします(CHAR、VARCHAR2、CLOB、NCHAR、NVARCHAR2およびNCLOBはサポートしますが、LONGはサポートしません) |
| REGEXP_INSTR | REGEXP_INSTR( 文字列または列名, 条件 (,開始位置) ) |
指定した条件(正規表現)に一致する部分の最初の位置(何文字目か)を返します。任意に、検索を開始する開始位置を指定することも可能です |
| REGEXP_SUBSTR | REGEXP_SUBSTR( 文字列または列名, 条件 ) |
指定した正規表現に一致する部分文字列を抜き出し結果として返します |
| REGEXP_REPLACE | REGEXP_REPLACE( 列名または文字列, 条件, 置き換え文字列 ) |
指定した正規表現に一致する部分を、指定した別の文字列に置換します。複雑な置換/検索操作を可能にします |
| 表1 正規表現を使用する関数 | ||
まずは、REGEXP_LIKE関数から実行してみましょう。正規表現を使ってあいまいな条件検索を実施するときに利用します。
構文 |
REGEXP_LIKE(列名,条件) |
SQL> SELECT * FROM TEST_REGEXP; |
| リスト1 REGEXP_LIKE関数を使ったあいまい検索 |
少し凝ると以下のようなチェック実装も可能です。
SQL> ALTER TABLE QA_MASTER ADD CONSTRAINT QA_NO_CHK CHECK |
| リスト2 Q/A管理マスタにQA番号を登録する際の書式のチェック |
このように許容されたデータしか登録できないようなチェックを実装できます。(次ページへ続く)
| 1/2 |
| Index | |
| 連載 SQLクリニック(1) Oracle 10gの正規表現で文字列操作を極める |
|
| Page 1 ・Oracle 10gで正規表現による文字列操作が可能に! ・Oracle10gで追加された新しい関数 −1.REGEXP_LIKE関数 |
|
| Page 2 −2.REGEXP_INSTR関数 −3.REGEXP_SUBSTR関数 −4.REGEXP_REPLACE関数 ・正規表現のさまざまな活用方法 |
|
| SQLクリニック |
TechTargetジャパン
Database Expert フォーラム 新着記事
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
@IT 新着記事
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
お勧め求人情報
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
ソリューションFLASH
