Informatica存储库:如何获取SQL转换中存储的SQL查询

时间:2017-03-28 11:13:33

标签: repository transformation informatica

我想使用INFA repo表获取SQL转换中使用的以下sql查询。 在映射中 - > sql transformation - > SQL端口 - > SQL查询

1 个答案:

答案 0 :(得分:0)

您要查找的数据位于表格OPB_METAEXT_VAL.PM_VALUE

上的OPB_METAEXT_VAL列中
SELECT *
FROM OPB_METAEXT_VAL
WHERE METAEXT_NAME='SQL_Query' 

大型语句可能分布在多个行中,因此按OPB_METAEXT_VAL.LINE_NO排序。

您可以加入OPB_SUBJECT上的OPB_SUBJECT.SUBJ_ID = OPB_METAEXT_VAL.SUBJECT_ID以获取文件夹名称。 您也可以加入OPB_WIDGET_INST OPB_WIDGET_INST.WIDGET_ID = OPB_METAEXT_VAL.OBJECT_ID AND OPB_WIDGET_INST.REF_VERSION_NUMBER = OPB_METAEXT_VAL.VERSION_NUMBER以获取有关转化的其他详细信息。

然后,您可以进一步加入其他表,例如,如果您需要文件夹名称,工作流/工作组,会话,映射,转换,SQL和数据库连接,请使用以下内容:

  WITH OPB_SESS_CNX_REFS_WRAPPER AS
(
    SELECT OPB_SESS_CNX_REFS.*,
    rank() over(
           partition BY 
                  WORKFLOW_ID, 
                  SESSION_ID, 
                  SESSION_INST_ID, 
                  PROC_INSTANCE_ID  
           order by 
                  VERSION_NUMBER DESC, 
                  SESS_WIDG_INST_ID ASC 
    ) AS  THE_RANK
    FROM OPB_SESS_CNX_REFS
)
SELECT OPB_SUBJECT.SUBJ_NAME AS FOLDER
, WORKFLOW.TASK_NAME AS WORKFLOW_WORKLET_NAME
, OPB_TASK.TASK_NAME AS SESSION_NAME
, OPB_MAPPING.MAPPING_NAME
, OPB_WIDGET_INST.INSTANCE_NAME
, OPB_METAEXT_VAL.PM_VALUE
, OPB_METAEXT_VAL.LINE_NO
,(CASE WHEN OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_VALUE IN  ('$Target','$Source') THEN OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_VALUE ||'-->' ||OPB_TASK_ATTR.ATTR_VALUE
       ELSE NVL(OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_VALUE,OPB_CNX.OBJECT_NAME) END) AS CNX_NAME
FROM       OPB_MAPPING      
INNER JOIN OPB_SUBJECT               ON (OPB_MAPPING.SUBJECT_ID = OPB_SUBJECT.SUBJ_ID 
                                     AND OPB_MAPPING.IS_VISIBLE=1)        
INNER JOIN OPB_WIDGET_INST           ON (OPB_WIDGET_INST.MAPPING_ID = OPB_MAPPING.MAPPING_ID 
                                     AND OPB_WIDGET_INST.VERSION_NUMBER = OPB_MAPPING.VERSION_NUMBER)
LEFT JOIN OPB_WIDGET                 ON (OPB_WIDGET_INST.WIDGET_ID = OPB_WIDGET.WIDGET_ID 
                                     AND OPB_WIDGET.IS_VISIBLE = OPB_MAPPING.IS_VISIBLE)
INNER JOIN OPB_METAEXT_VAL           ON (OPB_METAEXT_VAL.OBJECT_ID = OPB_WIDGET_INST.WIDGET_ID
                                     AND OPB_METAEXT_VAL.VERSION_NUMBER = OPB_WIDGET_INST.REF_VERSION_NUMBER
                                     AND OPB_METAEXT_VAL.METAEXT_NAME='SQL_Query')   
INNER JOIN OPB_SESSION               ON (OPB_SESSION.MAPPING_ID = OPB_MAPPING.MAPPING_ID)
INNER JOIN OPB_TASK                  ON (OPB_SESSION.SESSION_ID = OPB_TASK.TASK_ID 
                                     AND OPB_TASK.IS_VISIBLE = OPB_MAPPING.IS_VISIBLE 
                                     AND OPB_SESSION.VERSION_NUMBER = OPB_TASK.VERSION_NUMBER)
INNER JOIN OPB_TASK         WORKFLOW ON (OPB_TASK.RU_PARENT_ID = WORKFLOW.TASK_ID 
                                     AND WORKFLOW.IS_VISIBLE = OPB_MAPPING.IS_VISIBLE)
INNER JOIN OPB_SWIDGET_INST          ON (OPB_SESSION.SESSION_ID =   OPB_SWIDGET_INST.SESSION_ID 
                                     AND OPB_SESSION.VERSION_NUMBER = OPB_SWIDGET_INST.VERSION_NUMBER 
                                     AND OPB_SWIDGET_INST.INSTANCE_ID = OPB_WIDGET_INST.INSTANCE_ID )
LEFT JOIN OPB_SESS_EXTNS             ON (OPB_SWIDGET_INST.SESSION_ID = OPB_SESS_EXTNS.SESSION_ID 
                                     AND OPB_SWIDGET_INST.VERSION_NUMBER = OPB_SESS_EXTNS.VERSION_NUMBER 
                                     AND OPB_SWIDGET_INST.SESS_WIDG_INST_ID = OPB_SESS_EXTNS.SESS_WIDG_INST_ID)                 
LEFT JOIN OPB_SESS_CNX_REFS_WRAPPER  ON (OPB_SESS_CNX_REFS_WRAPPER.THE_RANK = 1
                                     AND OPB_SESS_EXTNS.SESSION_ID = OPB_SESS_CNX_REFS_WRAPPER.SESSION_ID 
                                     AND OPB_SESS_EXTNS.PROC_INSTANCE_ID = OPB_SESS_CNX_REFS_WRAPPER.PROC_INSTANCE_ID)       
LEFT JOIN  OPB_CNX                   ON (OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_TYPE = OPB_CNX.OBJECT_TYPE 
                                     AND OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_SUBTYP = OPB_CNX.OBJECT_SUBTYPE 
                                     AND OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_ID = OPB_CNX.OBJECT_ID)
LEFT JOIN  OPB_MMD_TASK_ATTR         ON (OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_VALUE = SUBSTR(OPB_MMD_TASK_ATTR.ATTR_NAME,1,7) 
                                     AND OPB_SESS_CNX_REFS_WRAPPER.REF_OBJECT_VALUE IN ('$Target','$Source'))
LEFT JOIN  OPB_TASK_ATTR             ON (OPB_TASK_ATTR.TASK_TYPE = OPB_MMD_TASK_ATTR.OBJECT_TYPE_ID 
                                     AND OPB_TASK_ATTR.ATTR_ID = OPB_MMD_TASK_ATTR.ATTR_ID 
                                     AND OPB_TASK_ATTR.TASK_ID = OPB_TASK.TASK_ID 
                                     AND OPB_TASK_ATTR.VERSION_NUMBER = OPB_SWIDGET_INST.VERSION_NUMBER)
WHERE OPB_SUBJECT.SUBJ_NAME = '<YOUR FOLDER NAME>'
ORDER BY OPB_SUBJECT.SUBJ_NAME
, WORKFLOW.TASK_NAME
, OPB_TASK.TASK_NAME
, OPB_MAPPING.MAPPING_NAME
, OPB_WIDGET_INST.INSTANCE_NAME
, OPB_METAEXT_VAL.LINE_NO