2015-01-11 3 views
0

I имеет р/л PROCEDURE SQL, который просто выглядеть сильфон , когда пользователь не ввести любое слово для поиска обычно seach_ это получить «все» значение, и мне нужно все данные из таблицы myTBP/L поиск SQL-запрос

, когда пользователь вводит значение, как «ABC» я хочу, чтобы вернуть все имя матча «ABC» от ​​myTB

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, а как ваша процедура не будет скомпилированы с этим, по-видимому, это была опечатка, введенная при создании вопроса.

Смежные вопросы