2015-01-11 179 views
0

我已經P/L SQL過程是很簡單的樣子怒吼 當用戶沒有輸入正常seach_任何搜索詞是獲得「ALL」值,我需要從myTB表中的所有數據P/L SQL搜索查詢

當用戶輸入的值是「ABC」我想從myTB

返回全部匹配「ABC」名稱
seach_ VARCHAR2(100) :='ALL'; 

    IF attr_.EXISTS('SEACRH') THEN 
     seach_ := attr_('SEACRH'); 
    END IF; 


SELECT * FORM myTB 
WHERE (NAME LIKE '%seach_%') OR (seach_ = 'ALL') 

當用戶輸入一些值,我選擇不回我應該爲得到預期的結果做任何值?

注:我覺得NAME LIKE '%seach_%'不是爲我工作

+0

刪除撇號,然後重試。此時您的查詢正在搜索*%seach _%*而不是*%user_input%* –

回答

1

您需要用通配符來連接你的搜索值:

SELECT * FROM myTB 
WHERE seach_ = 'ALL' 
OR NAME LIKE '%' || seach_ || '%' 

你也有過的FORM代替FROM,但你的程序不會已經編譯,據推測這是在創建問題時引入的一個錯字。