Репозиторий Informatica: как сохранить SQL-запрос в преобразовании SQL

Я хочу получить следующий SQL-запрос, используемый в преобразовании SQL, с использованием таблиц репозитория INFA. В сопоставлениях --> преобразование sql --> порты SQL --> запрос SQL


person Psingla    schedule 28.03.2017    source источник
comment
Я изо всех сил пытаюсь понять, почему вы не можете открыть клиент информатики и посмотреть на само преобразование. Единственная причина, которая приходит на ум, это то, что у вас нет разрешения на вход в клиент.   -  person Daniel Machet    schedule 29.03.2017
comment
Таких сопоставлений много, и я хочу использовать ускорение процесса с помощью tsql.   -  person Psingla    schedule 31.03.2017


Ответы (1)


Данные, которые вы ищете, находятся в столбце 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
person Brett Moan    schedule 05.01.2018