2008-09-16 103 views
1

這是一個關於將嵌入式RegEx轉換爲SQL語句的3部分問題。將RegEx嵌入到Oracle或SQL Server 2005 SQL中的最佳方法是什麼?

  1. 你如何嵌入一個正則表達式表達到Oracle PL/SQL select語句,將解析出 文本字符串 如下圖所示的「欠費」的字符串?

  2. 如果在 任務關鍵業務 事務中使用了什麼性能影響?

  3. 由於嵌入正則表達式 到SQL在Oracle中 10g和SQL Server 2005中引入,它被認爲 推薦的做法?


親愛的拉里:

感謝您使用ABC的提醒服務。

ABC檢測到您的某個產品在KS狀態中發生了變化。請查看下面的 信息以確定是否打算進行此狀態更改。

實體名稱:甲骨文,LLC

前的狀態: -

當前狀態:DELINQUENT

提醒一下,您可以聯繫您的ABC團隊尋求幫助糾正任何拖欠或,如果需要,則恢復 該服務。或者,如果系統無意繼續使用此狀態,請通知ABC ,以便我們可以中止我們的服務。

親切的問候,

服務隊1 ABC

- 請不要回復此郵件。它不是一個監視的電子郵件帳戶.--

注意: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

INSTR和CHARINDEX都是偉大的替代辦法,但我想探索嵌入正則表達式的好處。

0

在MS SQL中,您可以使用其中包含一些「模式匹配」的LIKE。我猜想Oracle有類似的東西。它不是正則表達式,但有一些匹配功能。 (注意:它並不是特別快)..全文搜索也可以是一個選項(再次MS SQL)(可能是一個更好的大小的數據庫的上下文更快的方式)

相關問題