我是使用 APEX PL/SQL 的新手,如果我的问题已经被涵盖,请提前道歉。我相信已经详尽地寻找答案。
我有一个标准查询,它作为一个区域的源完全可以工作,但需要转换为 PL/SQL,以便我可以处理从我要添加的航天飞机返回的 LOV。
这是工作查询的关键部分:
select METRIC_DEFINITION_ID,
METRIC_NAME,
sum(decode(START_DATE, '01-JUN-12', VALUE)) as "Jun 2012"
from ... (a substantial query that works)
当我尝试从 PL/SQL 块返回它时:
BEGIN
return 'select METRIC_DEFINITION_ID,
METRIC_NAME,
sum(decode(START_DATE, ' '01-JUN-12' ', VALUE)) as "Jun 2012"
from ... (a substantial query that works)';
END;
我收到错误消息:
(ORA-06550: line 9, column 33: PLS-00103: Encountered the symbol "01-JUN-12"
when expecting one of the following: * & = - + ; < ...
好像编译器需要一个运算符。
我试过了
...TO_DATE(' '01-JUN-12' ')...
没有成功。将字符串传递给变量并返回也没有区别。
我读过的所有文档都表明我的原件应该可以工作。
有谁知道在这种情况下“解码”是否有不同的语法(一个地区的 APEX 源),还是我在这里遗漏了一些明显的东西?
所有建议表示赞赏。
干杯,杰森
===========
根据要求添加完整的查询。注意线
and METRIC_COLLECTION.METRIC_COLLECTION_ID IN :P44_COLLECTION_SELECTOR)
目前仅在名为 P44_COLLECTION_SELECTOR 的穿梭中选择单个项目时才有效,因此需要学习 PL/SQL。
从长远来看,日期将基于输入 - 这是一个 POC。
select
METRIC_DEFINITION_ID,
METRIC_NAME,
sum(decode(START_DATE, '01-JUN-12', VALUE)) as "Jun 2012",
sum(decode(START_DATE, '01-JUL-12', VALUE)) as "Jul 2012",
sum(decode(START_DATE, '01-AUG-12', VALUE)) as "Aug 2012",
sum(decode(START_DATE, '01-SEP-12', VALUE)) as "Sep 2012",
sum(decode(START_DATE, '01-OCT-12', VALUE)) as "Oct 2012",
sum(decode(START_DATE, '01-NOV-12', VALUE)) as "Nov 2012"
from
(select
METRIC_DEFINITION.METRIC_DEFINITION_ID as METRIC_DEFINITION_ID,
METRIC_DEFINITION.METRIC_NAME as METRIC_NAME,
METRIC_VALUE.START_DATE as START_DATE,
METRIC_VALUE.VALUE as VALUE
from
METRIC_VALUE METRIC_VALUE,
METRIC_DEFINITION METRIC_DEFINITION
where
METRIC_DEFINITION.METRIC_DEFINITION_ID=METRIC_VALUE.METRIC_DEFINITION_ID)
where METRIC_DEFINITION_ID IN
(select
METRIC_COLLECTION_MAP.METRIC_DEFINITION_ID as METRIC_DEFINITION_ID
from METRIC_COLLECTION_MAP METRIC_COLLECTION_MAP,
METRIC_COLLECTION METRIC_COLLECTION
where
METRIC_COLLECTION.METRIC_COLLECTION_ID=METRIC_COLLECTION_MAP.METRIC_COLLECTION_ID
and
METRIC_COLLECTION.METRIC_COLLECTION_ID IN :P44_COLLECTION_SELECTOR)
group by METRIC_DEFINITION_ID, METRIC_NAME