2008-09-16 8 views
1

これは、組み込みのRegEx into SQL文に関する3つの質問です。OracleまたはSQL Server 2005 SQLにRegExを組み込む最良の方法は何ですか?

  1. はどのようにして 、以下に示すテキスト 文字列で「滞納」の文字列を解析するOracle PL/SQL select文の中に正規表現式を埋め込むのですか?

  2. ミッションクリティカルなビジネス トランザクションで使用されると、パフォーマンスにどのような影響がありますか? SQLに正規表現 を埋め込むので、

  3. は、オラクル 10gおよびSQL Server 2005で導入されたことを 推奨プラクティスと考えていますか?


親愛なるラリー:

ABCのアラートサービスをご利用いただきありがとうございます。

ABCは、KSの状態であなたの製品のいずれかの状態の変化を検出しました。このステータス変更が意図されているかどうかを判断するには、下記の の情報を確認してください。

ENTITY NAME:Oracleのシステム、LLC

PREVIOUS STATUS: -

CURRENT STATUS:滞納

リマインダーとして、あなたは任意の延滞を修正するには援助のためのあなたのABCチームに連絡したり、必要に応じて サービスを復活させてください。また、システムがこの状態に引き続き関与しない場合は、ABC に通知してサービスを中止することができます。

敬具、

サービスチーム1 ABC

--PLEASEは、このメールへの返信はしません。 -

注意:ABC Corporationは、責任のある政府機関またはこれらのアラートに基づいているその他のデータソースによって維持されている公開情報の適時性、正確性、または完全性を単独で確認することはできません。 。

答えて

1

なぜ正規表現が必要でしょうか? INSTRとSUBSTRは完全にジョブを実行します。

しかし、あなたはあなたが使用することができますRegex'esを必要と確信している場合:

REGEXP_INSTR
REGEXP_REPLACE
REGEXP_SUBSTR

(Oracle 10gのではとアップのみ利用可能)

SELECT emp_id, text 
    FROM employee_comment 
WHERE REGEXP_LIKE(text,'...-....'); 
0

SUBSTRINGと組み合わせてINSTR(Oracleの場合)またはCHARINDEX(SQL Serverの場合)を使用するだけではどうですか?少しはっきりしているようです(古いバージョンではサポートされているので移植性があります)。

http://www.techonthenet.com/oracle/functions/instr.phphttp://www.adp-gmbh.ch/ora/sql/substr.html

http://www.databasejournal.com/features/mssql/article.php/3071531http://msdn.microsoft.com/en-us/library/ms187748.aspx

0

INSTRとCHARINDEXは偉大な代替アプローチですが、私は正規表現を埋め込むことの利点を探求したいと思います。

0

MS SQLでは、「パターンマッチング」があるLIKEを使用できます。私はオラクルが何か似ていると思います。その正規表現ではなく、いくつかの一致する機能があります。 (全文検索はオプションです)(良いサイズのデータ​​ベースの文脈ではおそらくはるかに高速です)

1

もし私が正しくリコールすると、SQL Server用のC#/ vbでUDFを記述することができます。 リンクはありますが、おそらく最高のものではありません。http://www.novicksoftware.com/coding-in-sql/Vol3/cis-v3-N13-dot-net-clr-in-sql-server.htm

+0

私もこのアプローチを推奨します。私は大規模なデータベースで非常にうまく使用して、レポートのためにいくつかのデータを解析しました – Rad

関連する問題