CREATE OR REPLACE PROCEDURE Merge_Table(p_Src_Schema VARCHAR2,
p_Src_Table VARCHAR2,
p_Tar_Schema VARCHAR2,
p_Tar_Table VARCHAR2) AS
v_Sql VARCHAR2(32767);
v_Update_Str VARCHAR2(32767);
v_Insert_Str VARCHAR2(32767);
v_Update_Temp VARCHAR2(32767);
v_Insert_Temp1 VARCHAR2(32767);
v_Insert_Temp2 VARCHAR2(32767);
TYPE Column_List IS TABLE OF Tab_Col_Config%ROWTYPE;
v_Column_List Column_List;
BEGIN
SELECT * BULK COLLECT
INTO v_Column_List
FROM Tab_Col_Config
WHERE Source_Tab = p_Src_Table
AND Target_Tab = p_Tar_Table;
FOR i IN v_Column_List.First .. v_Column_List.Last LOOP
v_Update_Temp := v_Update_Temp || ' ' || v_Column_List(i).Target_Col ||
'=SRC.' || v_Column_List(i).Source_Col;
IF i < v_Column_List.Count THEN