我正在使用Informatica和Oracle RDBMS。最近我一直在苦苦挣扎。
我有一个分配来查询每个模型/工作流之间的依赖关系,所以期望的结果看起来像这样:
WF_workflow1
这意味着,模型DWH_Model1
中的WF_Workflow3_1
会在模型DWH_Model3
ETC中等待工作流DELTA
....
我们有3种类型的工作流程,DELTA
(将包含单词DWH
)CALC
(此处相同)和EVENT
(此处相同)。等待的工作流使用包含两个模型名称的CMD
,以及标记包含grand_model
名称的SELECT DISTINCT OA.SUBJ_NAME AS GRAND_MODEL,
OL.SUBJ_NAME AS WAIT_4_MODEL_NAME,
REP.WORKFLOW_NAME AS WAIT_4_WORKFLOW_NAME,
A.FLAG_NAME,
CASE
WHEN INSTR(UPPER(A.FLAG_NAME), 'DWH') > 0 THEN
'DWH'
WHEN INSTR(UPPER(REP.WORKFLOW_NAME), 'DELTA') > 0 THEN
'DELTA'
ELSE
'CALC'
END CONNECTION_NAME
FROM OPB_SUBJECT@TO_INFORMATICA_ADMIN OL,
OPB_SUBJECT@TO_INFORMATICA_ADMIN OA,
OPB_TASK@TO_INFORMATICA_ADMIN T,
OPB_TASK@TO_INFORMATICA_ADMIN TL,
OPB_TASK_INST@TO_INFORMATICA_ADMIN TI,
REP_SESSION_INSTANCES@TO_INFORMATICA_ADMIN REP,
(SELECT T.TASK_ID,
SUBSTR(T.ATTR_VALUE,
LENGTH(T.ATTR_VALUE) + 2 -
INSTR(REVERSE(T.ATTR_VALUE), '/')) FLAG_NAME
FROM OPB_TASK_ATTR@TO_INFORMATICA_ADMIN T
WHERE T.TASK_TYPE = 60
AND INSTR(REVERSE(T.ATTR_VALUE), '/') > 0) A,
(SELECT T.TASK_ID,
T.SUBJECT_ID,
SUBSTR(T.PM_VALUE,
LENGTH(T.PM_VALUE) + 2 -
INSTR(REVERSE(T.PM_VALUE), '/')) FLAG_NAME
FROM OPB_TASK_VAL_LIST@TO_INFORMATICA_ADMIN T
WHERE INSTR(REVERSE(T.PM_VALUE), '/') > 0) L
WHERE OL.SUBJ_ID = L.SUBJECT_ID
AND A.TASK_ID = T.TASK_ID
AND T.SUBJECT_ID = OA.SUBJ_ID
AND A.FLAG_NAME = L.FLAG_NAME
AND OL.SUBJ_NAME <> OA.SUBJ_NAME
AND L.TASK_ID = TL.TASK_ID
AND TL.TASK_ID = TI.TASK_ID
AND TI.WORKFLOW_ID = REP.WORKFLOW_ID
的工作流。
到目前为止,我们已经提出了这个问题:
$attData= $attendeesTable->find()
->where([
'meeting_id =' => $meeting_id,
'email =' => $data['email']
])
->where(function ($exp, $q) use($finaldate, $enddate) {
$exp->between('created_at ', $finaldate, $enddate);
return $exp;
})
->count();
此查询有效!问题是,我正在将worklet作为工作流程,因此有些时候最后一次加入失败了。我不知道如何避免它..