我有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_%'
对我不起作用
答案 0 :(得分:1)
您需要将搜索值与通配符连接起来:
SELECT * FROM myTB
WHERE seach_ = 'ALL'
OR NAME LIKE '%' || seach_ || '%'
您还有FORM
而不是FROM
,但由于您的程序无法编译,因此可能是在创建问题时引入的拼写错误。