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%')都不起作用。
谢谢大家
我不熟悉SOA,但是这可能工作:'... WHERE UPPER(SEARCH_STRING)LIKE '%' || UPPER(#VALUE)||'%';' – 2012-02-10 06:02:56
@JeffreyKemp:发表您的评论作为答案^^。 – Thinhbk 2012-02-10 06:36:48
谢谢杰弗里连接技巧。在处理参数时,不能直接附加通配符,因为参数会自动直接为该值添加格式,因此直接在参数旁边添加%不起作用。我虽然昨天晚上做了同样的事情,今天早上第一件事就是测试它。 – Jeff 2012-02-10 16:55:23