You are on page 1of 19

CREATE OR REPLACE PROCEDURE VISION_DQ.

Dq_Pr_Standardizer_t (
P_Project_Id IN VARCHAR2,
P_Mapping_Id IN VARCHAR2,
Tran_Seq IN VARCHAR2,
P_Transformation_Id IN VARCHAR2,
Prev_Trans_Seq IN VARCHAR2,
P_Error OUT VARCHAR2)
IS

Lv_Col_Out VARCHAR2 (2000);


Lv_Inp_Col VARCHAR2 (2000);
Lv_Input_Column_1 VARCHAR2 (2000);
Lv_Input_Column VARCHAR2 (2000);
Lv_Inp_Tab VARCHAR2 (2000);
Lv_Out_Col VARCHAR2 (2000);
Lv_Ref_Tab VARCHAR2 (2000);
Lv_Ref_Correction_Column VARCHAR2 (2000);
Lv_Ref_Correct_Column VARCHAR2 (2000);
Lv_Custom_Correction_Text VARCHAR2 (2000);
Lv_Custom_Correct_Text VARCHAR2 (2000);
Lv_Trail_Lead_Space VARCHAR2 (2000);
Lv_Multiple_Space VARCHAR2 (2000);
Lv_Delimiter VARCHAR2 (2000);
Lv_Standadizer_Type VARCHAR2 (2000);
Lv_Scope VARCHAR2 (2000);
Lv_Case VARCHAR2 (2000);
Lv_Trans_in VARCHAR2 (2000);
Lv_Out_type VARCHAR2 (2000);
Lv_Trim_Open VARCHAR2 (20);
Lv_Trim_Close VARCHAR2 (20);
Lv_Space_Open VARCHAR2 (50);
Lv_Space_Close VARCHAR2 (50);
Lv_Query VARCHAR2 (2000);
Lv_Conv VARCHAR2 (2000);
Lv_Conv1 VARCHAR2 (2000);
LV_Sample_Col VARCHAR2 (2000);
Var VARCHAR2 (2000) := 1;
Cnt NUMBER;
LV_Pattern VARCHAR2 (2000);
Lv_Group_ID VARCHAR2 (2000);
LV_Text VARCHAR2 (2000);
Lv_Query2 VARCHAR2 (2000);
Lv_Case_Open VARCHAR2 (200);
Lv_Temp_tab Varchar2(200);
Lv_Query_Where Varchar2(200);
Lv_Query_Order Varchar2(200);
Lv_Query_Group Varchar2(200);
Lv_Query_Select_1 Varchar2(2000);
Lv_Query_Select Varchar2(2000);
Lv_Query_from Varchar2(2000);
Lv_sample_query Varchar2(2000);
Lv_Time_2 NUMBER;
Lv_Time_1 NUMBER;
Lv_Index varchar2(2000);

CURSOR C1
IS
SELECT Table_Name || '.' || Column_Name Column_Name,
Delimiter,
Strategy_Type,
Table_Name || '.' || Condition Condition
FROM MAPPING_MNTNCE_1707
WHERE Project_Id = P_Project_Id
AND Mapping_Id = P_Mapping_Id
AND Transformation_Seq = Tran_Seq
AND Derived_Column = 'Y';

CURSOR C2
IS
SELECT DISTINCT GROUP_ID
FROM MAPPING_MNTNCE_1707
WHERE Project_Id = P_Project_Id
AND Mapping_Id = P_Mapping_Id
AND Transformation_Seq = Tran_Seq
AND Derived_Column = 'N';
BEGIN

OPEN C2;

FETCH C2 INTO Lv_Group_ID;

IF Lv_Group_ID IS NULL
THEN
SELECT Query_Select,
Query_From,
Query_Where,
Query_Order,
Query_Group
INTO Lv_Query_Select,
Lv_Query_From,
Lv_Query_Where,
Lv_Query_Order,
Lv_Query_Group
FROM Dq_Query_Maintenance
WHERE Project_Id = P_Project_Id
AND Mapping_Id = P_Mapping_Id
AND Transformation_Seq = Prev_Trans_Seq;
ELSIF Lv_Group_ID IS NOT NULL
THEN
SELECT Query_Select,
Query_From,
Query_Where,
Query_Order,
Query_Group
INTO Lv_Query_Select,
Lv_Query_From,
Lv_Query_Where,
Lv_Query_Order,
Lv_Query_Group
FROM Dq_Query_Maintenance
WHERE Project_Id = P_Project_Id
AND Mapping_Id = P_Mapping_Id
AND Transformation_Seq = Prev_Trans_Seq
AND GROUP_ID = Lv_Group_ID;
END IF;

CLOSE C2;
dbms_output.put_line(Lv_INPUT_COLUMN);

FOR I
IN (SELECT NVL2 (Column_Name, Table_Name || '.' || Column_Name, NULL)
AS Column_Name
FROM MAPPING_MNTNCE_1707
WHERE PROJECT_ID = P_Project_ID
AND MAPPING_ID = P_Mapping_ID
AND TRANSFORMATION_SEQ = Tran_seq
)
LOOP
Lv_INPUT_COLUMN := Lv_INPUT_COLUMN || ',';
Lv_INPUT_COLUMN := Lv_INPUT_COLUMN || I.Column_name;

Lv_INPUT_COLUMN := SUBSTR (Lv_INPUT_COLUMN, 2);

dbms_output.put_line(Lv_INPUT_COLUMN);

IF Lv_Trail_Lead_Space = 'Y'
THEN
Lv_Trim_Open := ' Trim( ';
Lv_Trim_Close := ' ) ';
END IF;

IF Lv_Multiple_Space = 'Y'
THEN
Lv_Space_Open := ' regexp_replace( ';
Lv_Space_Close := ' ,'' {1,}'','' '') ';
END IF;

IF LV_Case = 'Y'
THEN
Lv_Case_Open := 'c';
ELSIF LV_Case = 'N'
THEN
Lv_Case_Open := 'i';
END IF;

/*
##############>>>>>>>>>>>> Remove Custom String without delimiter
<<<<<<<<<<<<<<<<########

*/
FOR I IN C1
LOOP
IF Lv_Delimiter IS NULL
THEN
IF Lv_Scope = 'ANYWHERE'
AND I.Strategy_Type = 'REMOVE CUSTOM STRING'
THEN
Lv_Conv :=
Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Regexp_Replace ('
|| Lv_INPUT_COLUMN
|| ' , '''
|| Lv_Custom_Correction_Text
|| ''' , '''',1,0,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col;

dbms_output.put_line(Lv_Conv);

/*
##############>>>>>>>>>>>> Replace Custom String without delimiter
<<<<<<<<<<<<<<<<########

*/
ELSIF Lv_Scope = 'ANYWHERE'
AND I.Strategy_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Conv :=
Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Regexp_Replace ('
|| Lv_INPUT_COLUMN
|| ' , '''
|| Lv_Custom_Correction_Text
|| ''' , '''
|| Lv_Custom_Correct_Text
|| ''',1,0,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col;

/*
##############>>>>>>>>>>>> Remove Reference Table Matches without Delimiter
<<<<<<<<<<<<<<<<########

*/

ELSIF
Lv_Scope = 'ANYWHERE'
AND I.Strategy_Type = 'REMOVE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Regexp_Replace ('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ' , '''',1,0,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' From '
|| Lv_Inp_Tab
|| ' Full Outer Join '
|| Lv_Ref_Tab
|| ' On Regexp_like('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';
/*
##############>>>>>>>>>>>> Replace Reference Table Matches without Delimiter
<<<<<<<<<<<<<<<<########

*/

ELSIF Lv_Scope = 'ANYWHERE'


AND I.Strategy_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
'Select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Regexp_Replace ('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ' , '
|| Lv_Ref_Correct_Column
|| ',1,0,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' From '
|| Lv_Inp_Tab
|| ' Full Outer Join '
|| Lv_Ref_Tab
|| ' On Regexp_like('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';

/*
##############>>>>>>>>>>>> Remove Custom String without delimiter in the start
<<<<<<<<<<<<<<<<########

*/
ELSIF
Lv_Scope = 'START'
AND I.Strategy_Type = 'REMOVE CUSTOM STRING'
THEN
Lv_Conv :=
'Select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Regexp_Replace ( '
|| Lv_INPUT_COLUMN
|| ' , '''
|| Lv_Custom_Correction_Text
|| ''' , '''',1,1,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab;

/*
##############>>>>>>>>>>>> Replace Custom String without delimiter in the start
<<<<<<<<<<<<<<<<########

*/

ELSIF Lv_Scope = 'START'


AND I.Strategy_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Conv :=
'Select '
|| Lv_INPUT_COLUMN
|| ' ,'
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Regexp_Replace ( '
|| Lv_INPUT_COLUMN
|| ' , '''
|| Lv_Custom_Correction_Text
|| ''' , '''
|| Lv_Custom_Correct_Text
|| ''',1,1,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab;
/*
##############>>>>>>>>>>>> Remove Reference Table Matches without delimiter in the
start <<<<<<<<<<<<<<<<########

*/

ELSIF Lv_Scope = 'START'


AND I.Strategy_Type = 'REMOVE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' regexp_replace ('
|| Lv_INPUT_COLUMN
|| ', '
|| Lv_Ref_Correction_Column
|| ','''',1,1,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| '
from '
|| Lv_Inp_Tab
|| ' full outer join '
|| Lv_Ref_Tab
|| ' on regexp_like ('
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';

/*
##############>>>>>>>>>>>> Replace Reference Table Matches without delimiter in the
start <<<<<<<<<<<<<<<<########

*/

ELSIF Lv_Scope = 'START'


AND I.Strategy_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' regexp_replace ('
|| Lv_INPUT_COLUMN
|| ', '
|| Lv_Ref_Correction_Column
|| ','
|| Lv_Ref_Correct_Column
|| ',1,1,'''
|| Lv_Case_Open
|| ''') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| '
from '
|| Lv_Inp_Tab
|| ' full outer join '
|| Lv_Ref_Tab
|| ' on regexp_like ('
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';

/*
##############>>>>>>>>>>>> Remove Custom String without delimiter in the end
<<<<<<<<<<<<<<<<########

*/

ELSIF Lv_Scope = 'END' AND I.Strategy_Type = 'REMOVE CUSTOM STRING'


THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Reverse(regexp_replace (Reverse('
|| Lv_INPUT_COLUMN
|| '), Reverse('''
|| Lv_Custom_Correction_Text
|| '''),'''',1,1,'''
|| Lv_Case_Open
|| ''')) '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' as '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab;

/*
##############>>>>>>>>>>>>Replace Custom String without delimiter in the End
<<<<<<<<<<<<<<<<########

*/

ELSIF Lv_Scope = 'END'


AND I.Strategy_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Reverse(regexp_replace (Reverse('
|| Lv_INPUT_COLUMN
|| '), Reverse('''
|| Lv_Custom_Correction_Text
|| '''),Reverse('''
|| Lv_Custom_Correct_Text
|| ''') ,1,1,'''
|| Lv_Case_Open
|| ''')) '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' as '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab; --Replace Custom String'
ELSIF Lv_Scope = 'END'
AND I.Strategy_Type = 'REMOVE REFERENCE TABLE MATCHES'
THEN --Remove Reference Table Matches without delimiter in the End
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ', '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| 'Reverse(regexp_replace (Reverse('
|| Lv_INPUT_COLUMN
|| '), Reverse('
|| Lv_Ref_Correction_Column
|| '),'''',1,1,'''
|| Lv_Case_Open
|| ''')) '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| '
as '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab
|| ' full outer join '
|| Lv_Ref_Tab
|| ' on regexp_like ('
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';
ELSIF Lv_Scope = 'END'
AND I.Strategy_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN --Replace Reference Table Matches without delimiter in the End
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Reverse(regexp_replace (Reverse('
|| Lv_INPUT_COLUMN
|| '), Reverse('
|| Lv_Ref_Correction_Column
|| '),Reverse('
|| Lv_Ref_Correct_Column
|| '),1,1,'''
|| Lv_Case_Open
|| ''')) '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| '
as '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab
|| ' full outer join '
|| Lv_Ref_Tab
|| ' on regexp_like ('
|| Lv_INPUT_COLUMN
|| ','
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';
END IF;

ELSIF Lv_Delimiter IS NOT NULL


THEN
EXECUTE IMMEDIATE
'select max(REGEXP_COUNT('
|| Lv_INPUT_COLUMN
|| ' , ''['
|| Lv_Delimiter
|| ']'')) from '
|| Lv_Inp_Tab
INTO Cnt;

IF Lv_Standadizer_Type = 'REMOVE CUSTOM STRING'


THEN
Lv_Pattern := '''' || Lv_Custom_Correction_Text || '''';
LV_Text := '''''';
ELSIF Lv_Standadizer_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Pattern := '''' || Lv_Custom_Correction_Text || '''';
LV_Text := '''' || Lv_Custom_Correct_Text || '''';
ELSIF Lv_Standadizer_Type = 'REMOVE REFERENCE TABLE MATCHES'
THEN
Lv_Pattern := Lv_Ref_Correction_Column;
LV_Text := '''''';
ELSIF Lv_Standadizer_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN
Lv_Pattern := Lv_Ref_Correction_Column;
LV_Text := Lv_Ref_Correct_Column;
END IF;

IF Lv_Scope = 'ANYWHERE'
THEN
Lv_Conv1 :=
' REGEXP_REPLACE((REGEXP_SUBSTR('
|| Lv_INPUT_COLUMN
|| ' , ''[^'
|| Lv_Delimiter
|| ']+'',1)), '
|| Lv_Pattern
|| ' , '
|| Lv_Text
|| ',1,0,'''
|| Lv_Case_Open
|| ''') ';

FOR I IN 1 .. Cnt
LOOP
Var := Var + 1;
Lv_Conv1 :=
Lv_Conv1
|| '||'''
|| Lv_Delimiter
|| '''|| REGEXP_REPLACE((REGEXP_SUBSTR('
|| Lv_INPUT_COLUMN
|| ' , ''[^'
|| Lv_Delimiter
|| ']+'',1,'
|| Var
|| ')), '
|| Lv_Pattern
|| ' , '
|| Lv_Text
|| ',1,0,'''
|| Lv_Case_Open
|| ''') ';
END LOOP;
IF Lv_Standadizer_Type = 'REMOVE CUSTOM STRING'
OR Lv_Standadizer_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ' ,'
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Trim ( '''
|| Lv_Delimiter
|| ''' From '
|| Lv_Query2
|| ') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab;
ELSIF Lv_Standadizer_Type = 'REMOVE REFERENCE TABLE MATCHES'
OR Lv_Standadizer_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
'Select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Trim ('''
|| Lv_Delimiter
|| ''' From '
|| Lv_Query2
|| ') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| '
from '
|| Lv_Inp_Tab
|| ' Full Outer Join '
|| Lv_Ref_Tab
|| ' On Regexp_like('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';
END IF;
ELSIF Lv_Scope = 'START'
THEN
Lv_Conv1 :=
' REGEXP_REPLACE((REGEXP_SUBSTR('
|| Lv_INPUT_COLUMN
|| ' , ''[^'
|| Lv_Delimiter
|| ']+'',1)), '
|| Lv_Pattern
|| ' , '
|| Lv_Text
|| ',1,1,'''
|| Lv_Case_Open
|| ''') ';

FOR I IN 1 .. Cnt
LOOP
Var := Var + 1;
Lv_Conv1 :=
Lv_Conv1
|| ' ||'''
|| Lv_Delimiter
|| '''||REGEXP_REPLACE((REGEXP_SUBSTR('
|| Lv_INPUT_COLUMN
|| ' , ''[^'
|| Lv_Delimiter
|| ']+'',1,'
|| Var
|| ')), '
|| Lv_Pattern
|| ' , '
|| Lv_Text
|| ',1,1,'''
|| Lv_Case_Open
|| ''') ';
END LOOP;

IF Lv_Standadizer_Type = 'REMOVE CUSTOM STRING'


OR Lv_Standadizer_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Trim ( '''
|| Lv_Delimiter
|| ''' From '
|| Lv_Conv1
|| ') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab;
ELSIF Lv_Standadizer_Type = 'REMOVE REFERENCE TABLE MATCHES'
OR Lv_Standadizer_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
'Select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Trim ('''
|| Lv_Delimiter
|| ''' From '
|| Lv_Conv1
|| ') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| '
from '
|| Lv_Inp_Tab
|| ' Full Outer Join '
|| Lv_Ref_Tab
|| ' On Regexp_like('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';
END IF;
ELSIF Lv_Scope = 'END'
THEN
Lv_Conv1 :=
' Reverse(REGEXP_REPLACE(Reverse((REGEXP_SUBSTR('
|| Lv_INPUT_COLUMN
|| ' , ''[^'
|| Lv_Delimiter
|| ']+'',1))), Reverse('
|| Lv_Pattern
|| ') , Reverse('
|| Lv_Text
|| '),1,1,'''
|| Lv_Case_Open
|| ''')) ';

FOR I IN 1 .. Cnt
LOOP
Var := Var + 1;
Lv_Conv1 :=
Lv_Conv1
|| ' ||'''
|| Lv_Delimiter
|| '''||Reverse(REGEXP_REPLACE(Reverse((REGEXP_SUBSTR('
|| Lv_INPUT_COLUMN
|| ' , ''[^'
|| Lv_Delimiter
|| ']+'',1,'
|| Var
|| '))), Reverse('
|| Lv_Pattern
|| ') , Reverse('
|| Lv_Text
|| '),1,1,'''
|| Lv_Case_Open
|| ''')) ';
END LOOP;

IF Lv_Standadizer_Type = 'REMOVE CUSTOM STRING'


OR Lv_Standadizer_Type = 'REPLACE CUSTOM STRING'
THEN
Lv_Conv :=
'select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Trim ( '''
|| Lv_Delimiter
|| ''' From '
|| Lv_Conv1
|| ') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| ' from '
|| Lv_Inp_Tab;
ELSIF Lv_Standadizer_Type = 'REMOVE REFERENCE TABLE MATCHES'
OR Lv_Standadizer_Type = 'REPLACE REFERENCE TABLE MATCHES'
THEN
Lv_Conv :=
'Select '
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Trim_Open
|| ' '
|| Lv_Space_Open
|| ' Trim ('''
|| Lv_Delimiter
|| ''' From '
|| Lv_Conv1
|| ') '
|| Lv_Space_Close
|| ' '
|| Lv_Trim_Close
|| ' As '
|| Lv_Out_Col
|| '
from '
|| Lv_Inp_Tab
|| ' Full Outer Join '
|| Lv_Ref_Tab
|| ' On Regexp_like('
|| Lv_INPUT_COLUMN
|| ' , '
|| Lv_Ref_Correction_Column
|| ','''
|| Lv_Case_Open
|| ''')';

DBMS_OUTPUT.put_line(Lv_Conv);
DBMS_OUTPUT.put_line(Lv_Conv1);
END IF;
END IF;
END IF;

UPDATE MAPPING_MNTNCE_1707
SET Column_Query = Lv_Conv
WHERE Project_Id = P_Project_Id
AND Mapping_Id = P_Mapping_Id
AND Column_Name =
SUBSTR (i.Column_Name, INSTR (i.Column_Name, '.', 1) + 1);

LV_Sample_Col := LV_Sample_Col || ' , ';


LV_Sample_Col :=
LV_Sample_Col
|| Lv_Conv
|| ' As '
|| SUBSTR (i.Column_Name, INSTR (i.Column_Name, '.', 1) + 1);
END LOOP;

DBMS_OUTPUT.put_line(LV_Sample_Col);

IF Lv_Query_Where IS NULL
THEN
Lv_Sample_Query :=
Lv_Query_Select
|| ' '
|| Lv_Query_From
|| ' '
|| Lv_Query_Where||' Where Rownum <201'
|| ' '
|| Lv_Query_Order
|| ' '
|| Lv_Query_Group
|| ' ';
ELSIF Lv_Query_Where IS NOT NULL
THEN
Lv_Sample_Query :=
Lv_Query_Select
|| ' '
|| Lv_Query_From
|| ' '
|| Lv_Query_Where||' And Rownum <201'
|| ' '
|| Lv_Query_Order
|| ' '
|| Lv_Query_Group
|| ' ';
END IF;

Lv_Query_Select := 'Select ' || Lv_Conv || Lv_Conv;

Lv_Sample_Query :=
Lv_Query_Select
|| ' '
|| Lv_Query_From
|| ' '
|| Lv_Query_Where
|| ' '
|| Lv_Query_Order
|| ' '
|| Lv_Query_Group
|| ' ';
DBMS_OUTPUT.put_line(Lv_Query_Select);

DBMS_OUTPUT.put_line(LV_Sample_Col);
/* INSERT INTO Dq_Query_Maintenance (Project_Id,
Mapping_Id,
Transformation_Seq,
Transformation_Id,
GROUP_ID,
Query_Select,
Query_From,
Query_Where,
Query_Order,
Query_Group,
Sample_Query)
VALUES (P_Project_Id,
P_Mapping_Id,
Tran_Seq,
P_Transformation_Id,
Lv_Group_ID,
Lv_Query_Select,
Lv_Query_From,
Lv_Query_Where,
Lv_Query_Order,
Lv_Query_Group,
Lv_Sample_Query);

COMMIT;*/

END LOOP;

EXCEPTION
WHEN OTHERS
THEN
P_Error :=
'Error Happened '
|| DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
|| ' - '
|| DBMS_UTILITY.FORMAT_ERROR_STACK;
END;
/
/*-------------------

COUNTRY 1 Y VARCHAR2 (4 Byte) None


False
LE_BOOK 2 Y VARCHAR2 (20 Byte) None
False
PROJECT_ID 3 1 Y VARCHAR2 (20 Byte) None
False
MAPPING_ID 4 2 Y VARCHAR2 (20 Byte) None
False
TRANSFORMATION_SEQ 5 3 Y NUMBER None
False
TRANSFORMATION_ID 6 Y NUMBER None
False
TRANSFORMATION_NAME 7 Y VARCHAR2 (30 Byte) None
False
TRANSFORAMATION_DESC 8 Y VARCHAR2 (50 Byte) None
False
COLUMN_NAME 9 Y VARCHAR2 (50 Byte) None
False
DERIVED_COLUMN 10 Y VARCHAR2 (1 Byte) None
False
COLUMN_TYPE 11 Y VARCHAR2 (50 Byte) None
False
COLUMN_QUERY 12 Y VARCHAR2 (4000 Byte) None
False
TABLE_NAME 13 Y VARCHAR2 (50 Byte) None
False
REFERENCE_COLUMN 14 Y VARCHAR2 (50 Byte) None
False
REFERENCE_TABLE 15 Y VARCHAR2 (50 Byte) None
False
STRATEGY_NAME 16 Y VARCHAR2 (4000 Byte) None
False
STRATEGY_DESC 17 Y VARCHAR2 (4000 Byte) None
False
STRATEGY_TYPE 18 Y VARCHAR2 (4000 Byte) None
False
DELIMITER 19 Y VARCHAR2 (1 Byte) None
False
GROUP_ID 20 Y VARCHAR2 (30 Byte) None
False
UNION_ID 21 Y VARCHAR2 (20 Byte) None
False
CONDITION 22 Y VARCHAR2 (4000 Byte) None
False
NULL_FLAG 23 Y VARCHAR2 (1 Byte) None
False
REGEXP_PATTERN 24 Y VARCHAR2 (4000 Byte) None
False
RETURN_COL 25 Y VARCHAR2 (50 Byte) None
False
REF_CORRECTION_COLUMN 26 Y VARCHAR2 (30 Byte) None
False
REF_CORRECT_COLUMN 27 Y VARCHAR2 (30 Byte) None
False
CUSTOM_CORRECTION_TEXT 28 Y VARCHAR2 (4000 Byte) None
False
CUSTOM_CORRECT_TEXT 29 Y VARCHAR2 (4000 Byte) None
False
TRAIL_LEAD_SPACE 30 Y VARCHAR2 (1 Byte) None
False
MULTIPLE_SPACE 31 Y VARCHAR2 (1 Byte) None
False
SCOPE 32 Y VARCHAR2 (10 Byte) None
False
CASE_SENSITIVE 33 Y VARCHAR2 (1 Byte) None
False
ALPHABET_FLAG 34 Y VARCHAR2 (1 Byte) None
False
ALPHABET_EXCEPTION 35 Y VARCHAR2 (4000 Byte) None
False
NUMBER_FLAG 36 Y VARCHAR2 (1 Byte) None
False
NUMBER_EXCEPTION 37 Y VARCHAR2 (4000 Byte) None
False
SPECIAL_FLAG 38 Y VARCHAR2 (1 Byte) None
False
SPECIAL_EXCEPTION 39 Y VARCHAR2 (4000 Byte) None
False
MIN_DIGIT 40 Y NUMBER None
False
MAX_DIGIT 41 Y NUMBER None
False
BLIND_REPETITION 42 Y VARCHAR2 (4000 Byte) None
False
INCREMENTAL_REPETITION 43 Y VARCHAR2 (4000 Byte) None
False
EXPRESSION_EDITOR 44 Y VARCHAR2 (4000 Byte) None
False
DQ_FILTER_TRANS_STATUS_NT 45 Y NUMBER None
False
DQ_FILTER_TRANS_STATUS 46 Y NUMBER None
False
RECORD_INDICATOR_NT 47 Y NUMBER None
False
RECORD_INDICATOR 48 Y NUMBER None
False
MAKER 49 Y NUMBER None
False
VERIFIER 50 Y NUMBER None
False
INTERNAL_STATUS 51 Y NUMBER None
False
DATE_LAST_MODIFIED 52 Y DATE None
False
DATE_CREATION 53 Y DATE None
False

--------------------------
*/---

You might also like