CREATE OR REPLACE PROCEDURECOMPARE_UC_TABLESAS
BEGIN
execute immediate 'delete from sdu_tables';execute immediate 'delete from bmp_tables';execute immediate 'delete from uc_table_different';execute immediate 'insert into sdu_tables select
A.Table_Name,
A.column_name ,A.data_type ,A.data_length ,A.data_precision ,
A.Data_Scale ,A.nullable ,Default_value(a.OWNER,a.Table_Name,a.column_name) as Data_default
from
dba_tab_columns A
where
A.owner=''SDU''and SUBSTR(TABLE_NAME,1,4) !=''BIN$''';execute immediate 'insert into bmp_tables select
A.Table_Name,
A.column_name ,A.data_type ,A.data_length ,A.data_precision ,
A.Data_Scale ,A.nullable ,Default_value(a.OWNER,a.Table_Name,a.column_name) as Data_default
from
dba_tab_columns A
where
A.owner=''BMP''and SUBSTR(TABLE_NAME,1,4) !=''BIN$''';DELETE FROM sdu_tables WHERE TABLE_NAME IN (SELECT TABLE_NAME FROMESPACE_TABLE);DELETE FROM bmp_tables WHERE TABLE_NAME IN (SELECT TABLE_NAME FROMESPACE_TABLE);DELETE FROM sdu_tables S WHERE EXISTS (SELECT 1 FROM ESPACE_COLUMN E WHERE E.TABLE_NAME = S.TABLE_NAME AND E.COLUMN_NAME =S.COLUMN_NAME);DELETE FROM bmp_tables B WHERE EXISTS (SELECT 1 FROM ESPACE_COLUMN E WHERE E.TABLE_NAME = B.TABLE_NAME AND E.COLUMN_NAME =B.COLUMN_NAME);commit;execute immediate 'insert into uc_table_different select *
from (select s.Table_Name s_Table_Name,
b.Table_Name b_Table_Name,
s.column_name s_column_name,
b.column_name b_column_name,
s.data_type s_data_type,
b.data_type b_data_type,
s.data_length s_data_length,
b.data_length b_data_length,
s.data_precision s_data_precision,
b.data_precision b_data_precision,
s.Data_Scale s_Data_Scale,
b.Data_Scale b_Data_Scale,
s.nullable s_nullable,
b.nullable b_nullable,
s.Data_default s_Data_default,
b.Data_default b_Data_default
from sdu_tables s
full join bmp_tables b on s.Table_Name = b.Table_Name
and s.column_name = b.column_name)
where s_column_name is null
or b_column_name is null
or s_data_type != b_data_type
or s_data_length != b_data_length
or s_data_precision != b_data_precision
or s_Data_Scale != b_Data_Scale
or s_nullable != b_nullable
or s_Data_default != b_Data_default';commit;ENDCOMPARE_UC_TABLES;