Я хочу получить следующий SQL-запрос, используемый в преобразовании SQL, с использованием таблиц репозитория INFA. В сопоставлениях --> преобразование sql --> порты SQL --> запрос SQL
Репозиторий Informatica: как сохранить SQL-запрос в преобразовании SQL
Ответы (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