是否可以评估以文本形式给出的SQL?(Oracle APEX 21.1)



我创建了一个经典的报告区域(region:REPORT_FILTER_SHOP_TYPE(。下面有一个SQL。

SELECT 
ID, SHOP_NAME, SHOP_TYPE, OPEN_YEAR, CITY
FROM SHOP_LIST; 

我想对此表应用筛选器。将从列表项中选择筛选条件。这个页面有一些列表。例如,如果没有过滤器,则SQL位于过滤器的正上方。但如果选择了"SHOP_TYPE""OPEN_YEAR",则执行下面的SQL。

SELECT * FROM (
SELECT 
ID, SHOP_NAME, SHOP_TYPE, OPEN_YEAR, CITY
FROM SHOP_LIST
) S
WHERE S.SHOP_TYPE = 'BOOKSTORE' AND S.OPEN_YEAR <2010;

我现在可以从选定的列表项中创建撰写SQL文本了。

我需要设置什么才能在REPORT_FILTER_SHOP_TYPE中显示此结果?

嗯,很可能不是这样;如果将某些值硬编码到报表的查询中,为什么要在页面上使用参数?使用参数!

类似这样的东西:

SELECT id,
shop_name,
shop_type,
open_year
FROM shop_list
WHERE     (   shop_type = :P1_SHOP_TYPE
OR :P1_SHOP_TYPE IS NULL)
AND (   open_year < :P1_OPEN_YEAR
OR :P1_OPEN_YEAR IS NULL);

最新更新