P/L SQL 搜索查询

P/L SQL search query

我有 p/l sql 程序很简单,如下所示 当用户没有输入任何搜索词时,通常 seach_ 会得到 'ALL' 值,我需要来自 myTB table

的所有数据

当用户将值输入为 'abc' 时,我想 return 全部匹配来自 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')

当用户输入一些值时,我的 select 没有 return 任何值我应该怎么做才能获得预期的结果?

注意:我觉得NAME LIKE '%seach_%'不适合我

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

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

你也有 FORM 而不是 FROM,但由于你的程序不会用它编译,大概是在创建问题时引入的错字。