1

これは、SQL ステートメントに埋め込まれた RegEx に関する 3 つの部分からなる質問です。

  1. 以下に示すテキスト文字列の「DELINQUENT」文字列を解析する Oracle PL/SQL 選択ステートメントに RegEx 式をどのように埋め込むのですか?

  2. ミッション クリティカルなビジネス トランザクション内で使用した場合、パフォーマンスにどのような影響がありますか?

  3. SQL への正規表現の埋め込みは Oracle 10g と SQL Server 2005 で導入されたので、推奨される方法と見なされますか?


親愛なるラリー:

平素よりABCアラートサービスをご利用いただき、誠にありがとうございます。

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

事業体名: Oracle Systems, LLC

以前の状態: --

現在のステータス: 延滞

忘れないように、ABC チームに連絡して、滞納を修正するか、必要に応じてサービスを回復するための支援を求めることができます。または、システムがこの状態を継続するつもりがない場合は、ABC に通知して、サービスを中止できるようにしてください。

敬具、

サービスチーム 1 ABC

-- このメールには返信しないでください。監視対象のメール アカウントではありません.--

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

4

5 に答える 5

1

私の記憶が正しければ、SQL Server の c#/vb で UDF を作成することは可能です。おそらく最高ではありませんが、リンクは次のとおりです

于 2008-09-30T07:41:37.747 に答える
1

なぜここで正規表現が必要なのですか? INSTR と SUBSTR は完璧に機能します。

しかし、正規表現が必要だと確信している場合は、次を使用できます。

REGEXP_INSTR
REGEXP_REPLACE
REGEXP_SUBSTR

(Oracle 10g 以降でのみ使用可能)

SELECT emp_id, text
  FROM employee_comment
 WHERE REGEXP_LIKE(text,'...-....');
于 2008-09-16T23:24:42.330 に答える
0

INSTR と CHARINDEX は優れた代替アプローチですが、Regex を埋め込む利点を探りたいと思います。

于 2008-09-16T15:04:39.300 に答える
0

INSTR (Oracle の場合) または CHARINDEX (SQL Server の場合) を SUBSTRING と組み合わせて使用​​しないのはなぜですか? もう少し簡単なようです(古いバージョンでサポートされているため、移植可能です)。

http://www.techonthenet.com/oracle/functions/instr.phpおよびhttp://www.adp-gmbh.ch/ora/sql/substr.html

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

于 2008-09-16T14:42:19.993 に答える
0

MS SQL では、「パターン マッチング」を含む LIKE を使用できます。オラクルにも似たようなものがあると思います。正規表現ではありませんが、一致する機能がいくつかあります。(注: 特に高速というわけではありません).. 全文検索もオプションの 1 つです (これも MS SQL) (適切なサイズのデータ​​ベースのコンテキストでは、おそらくはるかに高速な方法です)。

于 2008-09-16T17:30:12.400 に答える