P / L SQL搜索查询

时间:2015-01-11 15:58:45

标签: plsql oracle11g

我有p / l sql PROCEDURE,看起来很简单 当用户没有输入任何搜索词时,通常seach_得到' ALL'值,我需要来自myTB表的所有数据

当用户输入值为' 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_%'对我不起作用

1 个答案:

答案 0 :(得分:1)

您需要将搜索值与通配符连接起来:

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

您还有FORM而不是FROM,但由于您的程序无法编译,因此可能是在创建问题时引入的拼写错误。