2013-05-29 51 views
0

我有以下表格:Regex_like - 傳遞一個比較字符串作爲查詢 - 甲骨文

SrNo Name 
------------ 
1  TOM 
2  JOHN 
3  HENRY 

運行下面的查詢:

SELECT * FROM MYTABLE WHERE regexp_LIKE (NAME, '^(TO|HEN)') 

給出了輸出:

SrNo Name 
------------ 
1  TOM  
3  HENRY 

如果我運行查詢:

SELECT * FROM MYTABLE WHERE REGEXP_LIKE (NAME, SELECT '^(' || 'TO' || '|' || 'HE' || ')' FROM DUAL) 

我得到的錯誤

ORA-00936: missing expression 

如何我可以正確地傳遞查詢爲該REGEXP_LIKE工作?

感謝, 莫妮卡

回答

3

你只需要用方括號括子查詢,使其工作。下面的查詢應該工作:

SELECT * 
FROM MYTABLE 
WHERE REGEXP_LIKE (NAME, (
    SELECT '^(' || 'TO' || '|' || 'HE' || ')' FROM DUAL 
)); 

一個SQLFiddle可以在這裏找到:http://sqlfiddle.com/#!4/072da/3