![]()
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 フォーラム 新着記事
- Officeユーザーにこそ? CouchDBお手軽アプリ開発 (2010/2/8)
Excelレガシーの置き換えはCouchDBで?! CouchAppを使って「ドキュメント指向データベース」 を手軽に体験しよう - 不正行為を未然に防ぐログの分析と活用 (2010/2/1)
あの事件も、監査ログが活用できていれば防げました。不正を許さないためには、取るだけでなく活用方法を知るべきです - まずは体験! インストールから中身確認まで (2010/1/28)
Oracleは大規模システム専用で難しい、というのは大きな間違い! あなたのそばにあるWindowsで、そのチカラを身をもって体験してみよう - アプライアンスにOSSにXML、2009年のその先は? (2010/1/25)
未来を展望するにはまず過去から学ぶべし。商用DBにOSS、NoSQLなど、激動の2009年データベース事情を振り返ってみます
|
|
@IT 新着記事
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






