2014-03-03 39 views
0

我們已經定義了一個語法並在我們的數據庫中存儲了表達式字符串,該字符串遵循這個語法。在我們的表達中有一個可能的術語是IIF(條件,然後,否則)。我需要在我的表達式表中查詢在IIF條件下包含'+'的所有表達式。Oracle SQL正則表達式不匹配逗號

我試圖用下面的這條語句來搜索任意數量的非逗號字符後跟一個'+',然後是任意數量的非逗號字符後跟一個逗號。我哪裏錯了?

select * from ... and value like '%IIF([^\,]*\+[^\,]*\,%';

+1

您確定'LIKE'運算符可以接受任何正則表達式嗎? –

回答

2

使用REGEXP_LIKE將工作這種類型的查詢。 REGEXP_LIKE函數將在where子句中調用,函數調用的參數如下所示:

WHERE REGEXP_LIKE (column_xyz, '.*IFF\([^,]*\+[^,]*,')