未连接的查询输入值不起作用

时间:2018-11-12 09:42:09

标签: informatica

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_datepriority_namerank1进行了硬编码。但是我需要将所有这些作为来自映射的输入传递。

此硬代码有效,但是在像?created?这样的输入时,它不起作用。此处创建的日期将来自映射流程。

  1. 请问我正在尝试这样做是否可行?

  2. ?created?给出了缺少右括号的错误,但是硬编码查询在sql中运行良好。

1 个答案:

答案 0 :(得分:0)

您通过查找条件(而不是通过将端口馈入覆盖本身)来将传入端口与缓存中记录之一的返回字段之一进行匹配。

如果由于某些无法解释的原因对您而言这不可能,那么您可以定义3个映射变量,并将它们设置为等于您关心的每个输入端口(使用setvariable),然后再将记录输入查找。然后在您的查询覆盖中使用变量