Example Code
Example Code
lv_var1 VARCHAR2(100);
lv_var2 VARCHAR2(100);
lv_var3 VARCHAR2(100);
lv_var4 VARCHAR2(100);
v_select VARCHAR2(1000);
v_insert VARCHAR2(1000);
BEGIN
FOR i IN (
SELECT
/* LISTAGG('A.' || col_name, ',') WITHIN GROUP(
ORDER BY
tab_name
),
LISTAGG('B.' || col_name1, ',') WITHIN GROUP(
ORDER BY
tab_name1
), */
col_name sc_colname,
col_name1 tg_colname,
tab_name AS sr_tab,
tab_name1 AS tg_tab,
tab_name
|| ' A inner join '
|| tab_name1
|| ' B on (a.id=b.id )' tab_name
FROM
test_diff
) LOOP
dbms_output.put_line('Test');
v_select := 'select a.id as sr_id, b.id as tg_id, '''
|| i.sr_tab
|| ''' as sr_tab, '''
|| i.sc_colname
|| ''' as sr_colname, a.'
|| i.sc_colname
|| ' as sr_value , '''
|| i.tg_tab
|| ''' as tg_tab, '''
|| i.tg_colname
|| ''' as tg_colname, b.'
|| i.tg_colname
|| ' as tg_value'
|| ' from '
|| i.tab_name
|| ' where a.'
|| i.sc_colname
|| ' != b.'
|| i.tg_colname;
----------
DECLARE
lv_var1 VARCHAR2(100);
lv_var2 VARCHAR2(100);
lv_var3 VARCHAR2(100);
lv_var4 VARCHAR2(100);
v_select VARCHAR2(1000);
v_insert varchar2(1000);
BEGIN
SELECT
LISTAGG('A.' || col_name, ',') WITHIN GROUP(
ORDER BY
tab_name
) ,
LISTAGG('B.' || col_name1, ',') WITHIN GROUP(
ORDER BY
tab_name1
)
INTO
lv_var1,
lv_var2
FROM
test_diff;
lv_var3 := i.col_name;
lv_var4 := i.col_name;
v_insert := 'insert into testc (sc_id,sc_value,sc_column) select a.id, '
|| i.col_name
|| ' from testa a minus select b.id, '
|| i.col_name1
|| ' from testb b';
-----------
FROM
test_diff
group by tab_name,tab_name1
/
insert into testc
(sc_id,tab_name,sc_colname,sc_value,tg_id,tg_name,tg_colname,tg_value)select a.id
as sr_id, 'TESTA' as sr_tab, 'NAME1' as sr_colname, a.NAME1 as sr_value , 'TESTB'
as tg_tab, 'NAME1' as tg_colname, b.NAME1 as tg_value from TESTA A inner join
TESTB B on (a.id=b.id ) where a.NAME1 != b.NAME1
/
DECLARE
lv_var1 VARCHAR2(100);
lv_var2 VARCHAR2(100);
lv_var3 VARCHAR2(100);
lv_var4 VARCHAR2(100);
v_select VARCHAR2(1000);
v_insert VARCHAR2(1000);
BEGIN
FOR i IN (
SELECT
/* LISTAGG('A.' || col_name, ',') WITHIN GROUP(
ORDER BY
tab_name
),
LISTAGG('B.' || col_name1, ',') WITHIN GROUP(
ORDER BY
tab_name1
), */
tab_name
|| ' A inner join '
|| tab_name1
|| ' B on (a.id=b.id )'
FROM
test_diff
GROUP BY
tab_name,
tab_name1
) LOOP
dbms_output.put_line('Test');
v_select:=
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Issue' || sqlerrm);
END;
/
alter table testc add tg_tabname varchar2(100)