CREATE OR REPLACE TYPE RPT_E_COMMERCE_CUSTOMER_DETAIL_ROW AS OBJECT
(
DEPT_ID VARCHAR2(255) --事业部ID
,DEPT_NM VARCHAR2(255) --事业部名称
,PROJ_ID VARCHAR2(255) --项目ID
,PROJ_NM VARCHAR2(255) --项目名称
,PROJ_CD VARCHAR2(255) --项目编码
,CAM_TRADE_MODE VARCHAR2(255) --操盘方式
,IS_MASTER VARCHAR2(255) --是否营销主操
,PROJ_STAGE VARCHAR2(255) --项目阶段
,IS_XK VARCHAR2(255) --是否上旭客家
,TYPE_ID VARCHAR2(255) --类型id
,TYPE_NAME VARCHAR2(255) --类型名称
,TITLE_NAME VARCHAR2(500) --标题名称
,USER_NAME VARCHAR2(255) --用户名称
,CREATETIME DATE --时间
)
CREATE OR REPLACE TYPE RPT_E_COMMERCE_CUSTOMER_DETAIL_TAB IS TABLE OF RPT_E_COMMERCE_CUSTOMER_DETAIL_ROW
;
/
CREATE OR REPLACE FUNCTION FN_RPT_E_COMMERCE_CUSTOMER_DETAIL
/****************************************************************
函数中文名: 电商客户明细表
功能描述: 根据输入的日期区间和IDM短位项目编号,获取电商客户明细表
编写人: YQQ
编写日期: 2021-11-19
修改记录:
****************************************************************/
(
I_ST_DT VARCHAR2,
I_END_DT VARCHAR2,
SRC VARCHAR2,
DELIMITER VARCHAR2
)
RETURN RPT_E_COMMERCE_CUSTOMER_DETAIL_TAB PIPELINED
AS
RSLT_TABLE RPT_E_COMMERCE_CUSTOMER_DETAIL_ROW;
PRAGMA AUTONOMOUS_TRANSACTION;
V_START_DT DATE;
V_END_DT DATE;
BEGIN
V_START_DT := TO_DATE(I_ST_DT, 'YYYY-MM-DD');
V_END_DT := TO_DATE(I_END_DT, 'YYYY-MM-DD') + 1;
-- select least(TO_DATE(I_END_DT, 'YYYY-MM-DD') + 1, trunc(max(DATETIME))+1) into V_END_DT from ODS.XKJ_OPERATION_PRE;
INSERT INTO PARA_PROJ_LIST
(
IDM_PROJ_ID
,KD_PROJ_ID
,PROJ_CD
)
SELECT T1.IDM_PROJ_ID
,T1.KD_PROJ_ID
,T1.PROJ_CD
FROM ODS.T02_PROJ_TREE T1
INNER JOIN (
SELECT B.ORGDEPID AS PORJGUID
FROM TABLE(FN_TKT_MAP_STR(SRC, DELIMITER)) A
INNER JOIN V_MY_IDM_PROJ_SHORT B
ON A.COLUMN_VALUE = B.SHORT_ORGDEPID
) T2
ON T1.IDM_PROJ_ID = T2.PORJGUID
;
INSERT INTO IDM_TO_JD_TEP
SELECT B.P_PROJECTID
FROM MV_MYS_P_PROJECT B
INNER JOIN MV_MY_IDM_PROJ_RELA A
ON (A.PROJGUID = B.PARENTGUID OR A.PROJGUID = B.P_PROJECTID)
WHERE A.ORGDEPID IN (
SELECT IDM_PROJ_ID AS PORJGUID
FROM PARA_PROJ_LIST
)
;
FOR MYROW IN (
SELECT /*+ LEADING(T1, T2) */
T2.DEPT_ID