The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT Level_View_Name
INTO l_Level_View_Nane
FROM BSC_SYS_FILTERS_VIEWS
WHERE Source_Type = BSC_DIM_FILTERS_PUB.SOURCE_TYPE_TAB
AND Source_Code = p_Tab_Id
AND Dim_Level_Id = p_Dim_Level_Id;
SELECT TF.Dim_Level_Id
FROM BSC_SYS_FILTERS_VIEWS TF
WHERE TF.Source_Type = BSC_DIM_FILTERS_PUB.SOURCE_TYPE_TAB
AND TF.Source_Code = p_Tab_Id
AND TF.Dim_Level_Id NOT IN
( SELECT SL.Dim_Level_Id
FROM BSC_TAB_INDICATORS TI
, BSC_KPI_DIM_LEVELS_B K
, BSC_SYS_DIM_LEVELS_B SL
WHERE SL.SOURCE <> 'PMF'
AND TI.Tab_Id = p_Tab_Id
AND K.INDICATOR = TI.INDICATOR
AND SL.Level_Table_Name = K.Level_Table_Name
);
DELETE a Filter metadata AND filter VIEW object
AND CHECK IF EXISTS ANY filter FOR a CHILD DIMENSION IN ORDER TO
deleted OR recreated. (BY now it will be DELETE. Later will be more intalligent
-------------------------------------------------------------------------------------------------------------------*/
PROCEDURE Drop_Filter
( p_Tab_Id IN NUMBER
, p_Dim_Level_Id IN NUMBER
, x_return_status OUT NOCOPY VARCHAR2
, x_msg_count OUT NOCOPY NUMBER
, x_msg_data OUT NOCOPY VARCHAR2
) IS
l_Count NUMBER;
SELECT Dim_Level_Id
FROM BSC_SYS_DIM_LEVEL_RELS
WHERE Parent_Dim_Level_Id = p_Dim_Level_Id
AND Relation_Type = 1;
SELECT COUNT(A.DIM_LEVEL_VALUE)
FROM BSC_SYS_FILTERS A
WHERE A.SOURCE_TYPE = 1
AND A.SOURCE_CODE = p_Tab_Id
AND A.DIM_LEVEL_ID = l_Child_Dim_Level_Id;
SAVEPOINT BcsFiltersPubDeleteFilterView;
ROLLBACK TO BcsFiltersPubDeleteFilterView;
ROLLBACK TO BcsFiltersPubDeleteFilterView;
DELETE a Filter metadata AND filter VIEW object
-------------------------------------------------------------------------------------------------------------------*/
PROCEDURE Drop_Filter_Objects
( p_Tab_Id IN NUMBER
, p_Dim_Level_Id IN NUMBER
, x_return_status OUT NOCOPY VARCHAR2
, x_msg_COUNT OUT NOCOPY NUMBER
, x_msg_data OUT NOCOPY VARCHAR2
) IS
l_Count NUMBER;
SAVEPOINT BcsFiltersPvtDeleteFilterView;
DELETE FROM BSC_SYS_FILTERS_VIEWS
WHERE Source_Type = BSC_DIM_FILTERS_PUB.SOURCE_TYPE_TAB
AND Source_Code = p_Tab_Id
AND Dim_Level_Id = p_Dim_Level_Id;
DELETE FROM BSC_SYS_FILTERS
WHERE Source_Type = BSC_DIM_FILTERS_PUB.SOURCE_TYPE_TAB
AND Source_Code = p_Tab_Id
AND Dim_Level_Id = p_Dim_Level_Id;
SELECT COUNT(OBJECT_NAME)
INTO l_Count
FROM USER_OBJECTS
WHERE OBJECT_NAME = l_Filter_Level_View_Name ;
ROLLBACK TO BcsFiltersPvtDeleteFilterView;
ROLLBACK TO BcsFiltersPvtDeleteFilterView;
SELECT DISTINCT KD.INDICATOR --Distinct need it
, SD.Level_Table_Name SYS_TABLE
, SD.Level_View_Name SYS_VIEW
, KD.Level_View_Name KPI_VIEW
, NVL(FV.Level_View_Name, SD.Level_View_Name) NEW_VIEW
FROM BSC_TAB_INDICATORS TI
, BSC_KPI_DIM_LEVELS_B KD
, BSC_SYS_DIM_LEVELS_B SD
, (
SELECT *
FROM BSC_SYS_FILTERS_VIEWS A
WHERE A.Source_Type = BSC_DIM_FILTERS_PUB.SOURCE_TYPE_TAB
AND A.Source_Code = p_Tab_Id
) FV
WHERE TI.Tab_Id = p_Tab_Id
AND KD.INDICATOR = TI.INDICATOR
AND KD.Level_Table_Name = SD.Level_Table_Name
AND FV.Level_Table_Name(+) = KD.Level_Table_Name
AND ( NVL(FV.Level_View_Name, SD.Level_View_Name) <> KD.Level_View_Name
-- OR KD.Level_View_Name IS NULL
);
SELECT DISTINCT KD.INDICATOR --Distinct need it
, SD.Level_Table_Name SYS_TABLE
, SD.Level_View_Name SYS_VIEW
, KD.Level_View_Name KPI_VIEW
FROM BSC_TAB_INDICATORS TI
, BSC_KPI_DIM_LEVELS_B KD
, BSC_SYS_DIM_LEVELS_B SD
WHERE KD.INDICATOR = TI.INDICATOR (+)
AND TI.Tab_Id IS NULL
AND KD.Level_Table_Name = SD.Level_Table_Name
AND KD.Level_View_Name <> SD.Level_View_Name;
UPDATE BSC_KPI_DIM_LEVELS_B
SET Level_View_Name = l_New_View_Name
WHERE INDICATOR = l_indicator
AND Level_Table_Name = l_Sys_Table_Name;
UPDATE BSC_KPI_DIM_LEVELS_B
SET Level_View_Name = l_Sys_View_Name
WHERE INDICATOR = l_indicator
AND Level_Table_Name = l_Sys_Table_Name;