2012-09-21 33 views
2

我想在表中的列中獲取字符串模式。我使用的查詢關鍵詞,比如在Oracle中的正則表達式

select CALCULATION_DETAILS 
    from DS_ELEMENT_CALC_PROPERTY 
where REGEXP_LIKE(CALCULATION_DETAILS, 'fm.get'); 

我無法找出確切的正則表達式我的要求。

CALCULATION_DETAILSclob它包含一個很長的JavaScript代碼字符串。 它有一個像fm.get('11abc') or fm.get('11') or fm.get('ab1c') or fm.get('abc') t的語法。

我想獲取CALCULATION_DETAILS其中fm.get('11abc') or fm.get('111')表示以fm.get()中的數字開頭。

回答

2

您是否在尋找以下?

SELECT 
    CALCULATION_DETAILS 
FROM 
    DS_ELEMENT_CALC_PROPERTY 
WHERE 
    REGEXP_LIKE(CALCULATION_DETAILS, 'fm.get\(''[0-9]+' 

圖案爲具有內部的一個或多個空格fm.get()。例如:fm.get( 'AB d')或fm.get( 'AB d ED d')

SELECT 
    CALCULATION_DETAILS 
FROM 
    DS_ELEMENT_CALC_PROPERTY 
WHERE 
    REGEXP_LIKE(CALCULATION_DETAILS, 'fm.get\(''[a-zA-Z0-9] [a-zA-Z0-9 ]+''\)') 
+0

正如我所提到我需要其開始與內部編號,以fm.get完整圖案()。例如:fm.get('123')或fm.get('23addc') – srini

+0

重新閱讀該問題並理解您希望使用正則表達式語言和Oracle的SQL中的特殊字符的轉義序列。我剛剛更新了我的答案。如果這是你正在尋找的東西,你想檢查一次嗎? – Vikdor

+0

同樣我想要一個更多的模式,其中有一個或多個空格內fm.get()。例如:fm.get('ab d')或fm.get('ab d ed d')你能否幫我解決 – srini