SELECT EIM_TAB.NAME "EIM Table",
EIM_COL.NAME "EIM Column Name",
EIM_COL.USER_NAME "EIM Column User Name",
CASE EIM_COL.DATA_TYPE
WHEN 'V'
THEN 'Varchar'
WHEN 'C'
THEN 'Character'
WHEN 'N'
THEN 'Number'
WHEN 'U'
THEN 'Date/Time'
WHEN 'D'
THEN 'Date/Time'
WHEN 'S'
THEN 'Date/Time'
END AS "EIM Data Type",
EIM_COL.LENGTH "EIM Length",
BASE_TAB.NAME "Base Table ",
BASE_COL.NAME "Base Column Name",
BASE_COL.USER_NAME "Base Column User Name",
BASE_COL.REQUIRED "Required Flag",
BASE_COL.INACTIVE_FLG "Inactive Flag",
BASE_COL.USR_KEY_SEQUENCE "User Key",
CASE BASE_COL.DATA_TYPE
WHEN 'V'
THEN 'Varchar'
WHEN 'C'
THEN 'Character'
WHEN 'N'
THEN 'Number'
WHEN 'U'
THEN 'Date/Time'
WHEN 'D'
THEN 'Date/Time'
WHEN 'S'
THEN 'Date/Time'
END AS "Data Type",
BASE_COL.LENGTH "Length",
BASE_COL.LOV_BOUNDED,
BASE_COL.LOV_TYPE_CD,
ISNULL
(CASE
WHEN BASE_COL.DEFAULT_VAL IS NOT NULL
THEN BASE_COL.DEFAULT_VAL
ELSE ( (CASE BASE_COL.LOV_BOUNDED
WHEN 'Y'
THEN 'LOVB-->'
ELSE NULL
END
)
|| BASE_COL.LOV_TYPE_CD
)
END,
''
) AS "Default"
FROM SIEBEL.S_TABLE EIM_TAB INNER JOIN SIEBEL.S_REPOSITORY REP
ON EIM_TAB.REPOSITORY_ID = REP.ROW_ID
INNER JOIN SIEBEL.S_EIM_TBL_MAP BASE_TAB
ON BASE_TAB.IF_TBL_ID = EIM_TAB.ROW_ID
INNER JOIN SIEBEL.S_EIM_ATT_MAP ATT_MAP
ON BASE_TAB.ROW_ID = ATT_MAP.EIM_TBL_MAP_ID
LEFT OUTER JOIN SIEBEL.S_COLUMN BASE_COL
ON BASE_COL.ROW_ID = ATT_MAP.BTAB_ATT_COL_ID
LEFT OUTER JOIN SIEBEL.S_COLUMN EIM_COL
ON EIM_COL.ROW_ID = ATT_MAP.IFTAB_DATA_COL_ID
WHERE EIM_TAB.NAME = 'EIM_FN_ASSET1'
AND ISNULL (EIM_TAB.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (REP.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (BASE_TAB.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (ATT_MAP.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (BASE_COL.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (EIM_COL.INACTIVE_FLG, 'N') = 'N'
GROUP BY EIM_TAB.NAME,
EIM_COL.NAME,
EIM_COL.USER_NAME,
EIM_COL.DATA_TYPE,
EIM_COL.LENGTH,
BASE_TAB.NAME,
BASE_COL.NAME,
BASE_COL.USER_NAME,
BASE_COL.REQUIRED,
BASE_COL.INACTIVE_FLG,
BASE_COL.USR_KEY_SEQUENCE,
BASE_COL.DATA_TYPE,
BASE_COL.LENGTH,
BASE_COL.LOV_BOUNDED,
BASE_COL.LOV_TYPE_CD,
BASE_COL.DEFAULT_VAL,
BASE_COL.LOV_BOUNDED,
BASE_COL.LOV_TYPE_CD
UNION ALL
SELECT T6.NAME "EIM Table",
REPLACE (T2.NAME, '_BI', '_BU') "EIM Column Name",
T2.USER_NAME "EIM Column User Name",
CASE T2.DATA_TYPE
WHEN 'V'
THEN 'Varchar'
WHEN 'C'
THEN 'Character'
WHEN 'N'
THEN 'Number'
WHEN 'U'
THEN 'Date/Time'
WHEN 'D'
THEN 'Date/Time'
WHEN 'S'
THEN 'Date/Time'
END AS "EIM Data Type",
T2.LENGTH "EIM Length",
T5.NAME "Base Table",
T3.NAME "Base Column",
COLS.USER_NAME "Base Column User Name",
T2.REQUIRED "Required Flag",
T2.INACTIVE_FLG "Inactive Flag",
T2.USR_KEY_SEQUENCE "User Key",
COLS.DATA_TYPE "Data Type",
COLS.LENGTH "Length",
COLS.LOV_BOUNDED,
COLS.LOV_TYPE_CD,
ISNULL (CASE
WHEN T2.DEFAULT_VAL IS NOT NULL
THEN T2.DEFAULT_VAL
ELSE ( (CASE T2.LOV_BOUNDED
WHEN 'Y'
THEN 'LOVB-->'
ELSE NULL
END
)
|| T2.LOV_TYPE_CD
)
END,
''
) AS "Default"
FROM SIEBEL.S_EIM_FK_MAPCOL T1 INNER JOIN SIEBEL.S_COLUMN T2
ON T1.IFTAB_COL_ID = T2.ROW_ID
INNER JOIN
(SIEBEL.S_EIM_FK_MAP T3
INNER JOIN
(SELECT S_TABLE.NAME TBL,
S_TABLE.ROW_ID TBL_ID,
S_COLUMN.NAME COL,
S_COLUMN.USER_NAME,
S_COLUMN.ROW_ID COL_ID,
CASE S_COLUMN.DATA_TYPE
WHEN 'V'
THEN 'Varchar'
WHEN 'C'
THEN 'Character'
WHEN 'N'
THEN 'Number'
WHEN 'U'
THEN 'Date/Time'
WHEN 'D'
THEN 'Date/Time'
WHEN 'S'
THEN 'Date/Time'
END AS DATA_TYPE,
S_COLUMN.LENGTH,
S_COLUMN.LOV_BOUNDED,
S_COLUMN.LOV_TYPE_CD
FROM (SIEBEL.S_TABLE INNER JOIN SIEBEL.S_COLUMN
ON S_TABLE.ROW_ID = S_COLUMN.TBL_ID)
) COLS ON COLS.COL = T3.NAME)
ON T1.EIM_FK_MAP_ID = T3.ROW_ID
INNER JOIN SIEBEL.S_USER_KEY_ATT T4 ON T1.USER_KEY_ATT_ID = T4.ROW_ID
LEFT OUTER JOIN SIEBEL.S_EIM_TBL_MAP T5 ON T3.EIM_TBL_MAP_ID =
T5.ROW_ID
LEFT OUTER JOIN SIEBEL.S_TABLE T6 ON T5.IF_TBL_ID = T6.ROW_ID
LEFT OUTER JOIN SIEBEL.S_PROJECT T7 ON T6.PROJECT_ID = T7.ROW_ID
LEFT OUTER JOIN SIEBEL.S_REPOSITORY T8 ON T1.REPOSITORY_ID =
T8.ROW_ID
LEFT OUTER JOIN SIEBEL.S_COLUMN T9 ON T1.MAP_COL_ID = T9.ROW_ID
WHERE T6.NAME = 'EIM_FN_ASSET1'
AND T5.NAME = COLS.TBL
AND ISNULL (T1.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T2.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T3.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T4.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T5.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T6.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T7.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T8.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T9.INACTIVE_FLG, 'N') = 'N'
GROUP BY T6.NAME,
T2.NAME,
T2.USER_NAME,
T2.DATA_TYPE,
T2.LENGTH,
T5.NAME,
T3.NAME,
COLS.USER_NAME,
T2.REQUIRED,
T2.INACTIVE_FLG,
T2.USR_KEY_SEQUENCE,
COLS.DATA_TYPE,
COLS.LENGTH,
COLS.LOV_BOUNDED,
COLS.LOV_TYPE_CD,
T2.DEFAULT_VAL,
T2.LOV_BOUNDED,
T2.LOV_TYPE_CD
UNION ALL
SELECT T4.NAME "EIM Table",
T2.NAME "EIM Column Name",
T2.USER_NAME "EIM User Name",
CASE T2.DATA_TYPE
WHEN 'V'
THEN 'Varchar'
WHEN 'C'
THEN 'Character'
WHEN 'N'
THEN 'Number'
WHEN 'U'
THEN 'Date/Time'
WHEN 'D'
THEN 'Date/Time'
WHEN 'S'
THEN 'Date/Time'
END AS "EIM Data Type",
T2.LENGTH,
T3.NAME "Base Column",
T8.NAME "Base Column Name",
T8.USER_NAME "Base Column User Name",
T8.REQUIRED "Required Flag",
T8.INACTIVE_FLG "Inactive Flag",
T8.USR_KEY_SEQUENCE "User Key",
CASE T8.DATA_TYPE
WHEN 'V'
THEN 'Varchar'
WHEN 'C'
THEN 'Character'
WHEN 'N'
THEN 'Number'
WHEN 'U'
THEN 'Date/Time'
WHEN 'D'
THEN 'Date/Time'
WHEN 'S'
THEN 'Date/Time'
END AS "Data Type",
T8.LENGTH "Length",
T8.LOV_BOUNDED,
T8.LOV_TYPE_CD,
ISNULL (CASE
WHEN T8.DEFAULT_VAL IS NOT NULL
THEN T8.DEFAULT_VAL
ELSE ( (CASE T8.LOV_BOUNDED
WHEN 'Y'
THEN 'LOVB-->'
ELSE NULL
END
)
|| T8.LOV_TYPE_CD
)
END,
''
) AS "Default"
FROM SIEBEL.S_EIM_EXPPR_MAP T1 INNER JOIN SIEBEL.S_REPOSITORY REP
ON T1.REPOSITORY_ID = REP.ROW_ID
INNER JOIN SIEBEL.S_COLUMN T2
ON T1.IFTAB_PRFLG_COL_ID = T2.ROW_ID -- EIM COLUMN NAME
INNER JOIN SIEBEL.S_COLUMN T8
ON T1.BTAB_PC_COL_ID = T8.ROW_ID -- BASE COLUMN NAME
LEFT OUTER JOIN SIEBEL.S_EIM_TBL_MAP T3 ON T1.EIM_TBL_MAP_ID =
T3.ROW_ID
LEFT OUTER JOIN SIEBEL.S_TABLE T4 ON T3.IF_TBL_ID = T4.ROW_ID
LEFT OUTER JOIN SIEBEL.S_COLUMN T5 ON T1.BTAB_PC_COL_ID = T5.ROW_ID
LEFT OUTER JOIN SIEBEL.S_PROJECT T6 ON T4.PROJECT_ID = T6.ROW_ID
LEFT OUTER JOIN SIEBEL.S_REPOSITORY T7 ON T1.REPOSITORY_ID =
T7.ROW_ID
WHERE T4.NAME = 'EIM_FN_ASSET1'
AND ISNULL (T1.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T2.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T3.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T4.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T5.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T6.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T7.INACTIVE_FLG, 'N') = 'N'
AND ISNULL (T8.INACTIVE_FLG, 'N') = 'N'
GROUP BY T4.NAME,
T2.NAME,
T2.USER_NAME,
T2.DATA_TYPE,
T2.LENGTH,
T3.NAME,
T8.NAME,
T8.USER_NAME,
T8.REQUIRED,
T8.INACTIVE_FLG,
T8.USR_KEY_SEQUENCE,
T8.DATA_TYPE,
T8.LENGTH,
T8.LOV_BOUNDED,
T8.LOV_TYPE_CD,
T8.DEFAULT_VAL,
T8.LOV_BOUNDED,
T8.LOV_TYPE_CD;
viernes, 1 de febrero de 2013
Como Automatizar Siebel EIM Mapping con SQL
Tomado de www.onlysiebel.blogspot.com mejorando el script del artículo "Automate Siebel EIM Mapping using SQL (Oracle)
Just Replace"
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario