是否可以评估作为文本给出的 SQL? (甲骨文顶点 21.1)
Is it possible to evaluate SQL given as text? (Oracle APEX 21.1)
我创建了一个经典报告区域(区域:REPORT_FILTER_SHOP_TYPE
)。
在这下面有一个SQL。
SELECT
ID, SHOP_NAME, SHOP_TYPE, OPEN_YEAR, CITY
FROM SHOP_LIST;
我想对此应用过滤器 table。筛选条件将从列表项中选择。这个页面有一些列表。
例如,如果没有过滤器,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
中显示此结果?
嗯,很可能不是那样;如果您将某些值硬编码到报告的查询中,为什么还要在页面上使用 parameters?使用参数!
像这样:
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);
我创建了一个经典报告区域(区域:REPORT_FILTER_SHOP_TYPE
)。
在这下面有一个SQL。
SELECT
ID, SHOP_NAME, SHOP_TYPE, OPEN_YEAR, CITY
FROM SHOP_LIST;
我想对此应用过滤器 table。筛选条件将从列表项中选择。这个页面有一些列表。
例如,如果没有过滤器,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
中显示此结果?
嗯,很可能不是那样;如果您将某些值硬编码到报告的查询中,为什么还要在页面上使用 parameters?使用参数!
像这样:
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);