2017-07-12 10 views
1

Oracle APEXクラス・レポートでoracle SQLを使用して事前検索問合せを作成しようとしています。Oracle SQL APEXの問合せ

パラメータに値がある場合、クエリにクエリ行を挿入する方法はありますか?

例えば、私はそうのようなクエリがある:

select person_id, fullname from person where first_name like '%:P11_FNAME%' AND last_name like '%:P11_LNAME%' 

は、渡される実際の値がある場合、クエリにfirst_name like '%:P11_FNAME%'を追加する方法はありますか?

答えて

1

バインド変数構文は、'%:P11_FNAME%'のような文字列リテラル内に埋め込まれていると、SQLエンジンによって認識されません。

あなたが欲しいものを行うに文字列連結を使用する必要があります。ユーザーは空白の検索条件を離れた場合

select person_id, fullname from person 
where first_name like '%' || :P11_FNAME || '%' 
AND last_name like '%' || :P11_LNAME || '%'; 

、これは名前のためNULLを持っているものを除き、すべての行と一致します。空の検索条件をすべての行に一致させるには、追加の述語を追加する必要があります。例:

select person_id, fullname from person 
where (first_name like '%' || :P11_FNAME || '%' or :P11_FNAME is null) 
AND (last_name like '%' || :P11_LNAME || '%' or :P11_LNAME is null); 
関連する問題