搜索Oracle SQL APEX的查询

时间:2017-07-12 20:40:53

标签: oracle oracle-apex

我正在尝试使用Oracle APEX类报告中的oracle SQL创建高级搜索查询。

当参数中有值时,有没有办法将查询行插入查询?

例如,我有一个类似的查询:

select person_id, fullname from person where first_name like '%:P11_FNAME%' AND last_name like '%:P11_LNAME%'

是否有一种方法可以在传入实际值时将first_name like '%:P11_FNAME%'添加到查询中?

1 个答案:

答案 0 :(得分:1)

如果SQL引擎嵌入在'%:P11_FNAME%'之类的字符串文字中,则不会识别绑定变量语法。

您需要使用字符串连接来执行您想要的操作:

select person_id, fullname from person
where first_name like '%' || :P11_FNAME || '%'
AND last_name like '%' || :P11_LNAME || '%';

如果用户将搜索条件留空,则会匹配除名称NULL之外的所有行。要使空白搜索条件与所有行匹配,您需要添加额外的谓词,例如:

select person_id, fullname from person
where (first_name like '%' || :P11_FNAME || '%' or :P11_FNAME is null)
AND (last_name like '%' || :P11_LNAME || '%' or :P11_LNAME is null);