2012-02-10 62 views
1

所以我構建了一個接受單個參數的查詢。該參數基本上是可能出現在列中的字符串。需要通配符的Oracle SOA查詢

SELECT ID, SEARCH_STRING 
FROM SEARCH_RESULTS 
WHERE UPPER(SEARCH_STRING) LIKE UPPER('%test%'); 

上面的查詢完全按照預期工作。它在表中查找並返回測試出現在搜索字符串列中的任何記錄。

現在我的實際問題。在SOA中,我創建了將作爲搜索值的參數。值。基本上查詢結束了

SELECT ID, SEARCH_STRING 
FROM SEARCH_RESULTS 
WHERE UPPER(SEARCH_STRING) LIKE UPPER(#VALUE) 

但我失去了保持通配符的能力。我試過(%#VALUE%),('%'#VALUE'%')和('%#VALUE%')都不起作用。

謝謝大家

+2

我不熟悉SOA,但是這可能工作:'... WHERE UPPER(SEARCH_STRING)LIKE '%' || UPPER(#VALUE)||'%';' – 2012-02-10 06:02:56

+1

@JeffreyKemp:發表您的評論作爲答案^^。 – Thinhbk 2012-02-10 06:36:48

+0

謝謝傑弗裏連接技巧。在處理參數時,不能直接附加通配符,因爲參數會自動直接爲該值添加格式,因此直接在參數旁邊添加%不起作用。我雖然昨天晚上做了同樣的事情,今天早上第一件事就是測試它。 – Jeff 2012-02-10 16:55:23

回答

1

確定.... :)

...WHERE UPPER(SEARCH_STRING) LIKE '%'||UPPER(#VALUE)||'%'; 
+0

+1有用 – cctan 2012-02-13 09:52:13