在 Informatica 中,我试图根据其他条件(例如prio
1,2,3)。我已经有一个DIM_DATE
表,用于配置假期和工作日。与优先级表和DIM_DATE表没有关系。在这里,我使用一个未连接的查询来进行查询覆盖。在我使用的查询下方:
select day_date as DAY_DATE
--,rank1
--,PRIORITY_name
from (
select day_date as DAY_DATE,DENSE_RANK() OVER (ORDER BY day_date) as RANK1,PRIORITY_name as PRIORITY_NAME from (
select date_id,day_date from dim_date where day_date between to_date('10.15.2018','MM.DD.YYYY') and to_date('10.15.2018','MM.DD.YYYY') +interval '250' DAY(3) and working_day=1
)
,DIM_PRIORITY
where DIM_PRIORITY.PRIORITY_name='3'
) where rank1=10
order by RANK1 --
在此示例中,我对day_date
,priority_name
,rank1
进行了硬编码。但是我需要将所有这些作为来自映射的输入传递。
此硬代码有效,但是在像?created?
这样的输入时,它不起作用。此处创建的日期将来自映射流程。
请问我正在尝试这样做是否可行?
?created?
给出了缺少右括号的错误,但是硬编码查询在sql中运行良好。
答案 0 :(得分:0)
您通过查找条件(而不是通过将端口馈入覆盖本身)来将传入端口与缓存中记录之一的返回字段之一进行匹配。
如果由于某些无法解释的原因对您而言这不可能,那么您可以定义3个映射变量,并将它们设置为等于您关心的每个输入端口(使用setvariable),然后再将记录输入查找。然后在您的查询覆盖中使用变量