2012-02-10 13 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)|| '%'; ' –

+1

@JeffreyKemp:あなたのコメントを回答として投稿してください^^。 – Thinhbk

+0

ありがとうございました。ジェフリーの連結がトリックでした。パラメータを扱うときは、ワイルドカードを直接追加することはできません。パラメータが自動的に値の書式を直接追加するため、パラメータのすぐ隣に%を追加しても機能しません。私も同じことを昨晩遅くして、今朝の最初のことをテストしました。有用であるために – Jeff

答えて

1

OK .... :)

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

+1 – cctan

関連する問題