spool /home/oracle/sql/tan/c.log
set timing on
prompt begin
drop table QUERYVALUE purge;
create table QUERYVALUE
(
SCHAMENAME VARCHAR2(100) not null,
TABLENAME VARCHAR2(200) not null,
RECORDNUMS NUMBER(20,2) not null
);
create or replace procedure onetable(user1 varchar,user2 varchar,tabname varchar) is
v_sql varchar2(2000);
v_rows NUMBER(20,2);
type cur is ref cursor;
cura cur;
begin
v_sql := 'select count(*) from (select * from ' || user1 || '.' || tabname || '@tapdblink222 minus select * from ' || user2 || '.' || tabname || ') a';
open cura for v_sql;
loop
fetch cura into v_rows;
exit when cura%notfound;
insert into queryvalue select user1,tabname,v_rows from dual;
end loop;
close cura;
commit;
end;
/
create or replace procedure usertable(user1 varchar,user2 varchar) is
v_sql varchar2(2000);
v_table varchar2(200);
type cur is ref cursor;
cura cur;
begin
v_sql:='select * from (select t.table_name from dba_tables t where owner=upper(''' || user1 || ''') and t.table_name <>''TMP_JYSLDTOJPMORGAN'' minus select table_name from dba_tab_columns where
owner=upper(''' || user1 || ''') and (to_char(data_type) like ''%LOB%'' or to_char(data_type) like ''%LONG%'')) order by table_name';
open cura for v_sql;
loop
fetch cura into v_table;
exit when cura%notfound;
onetable(user1,user2,v_table);
end loop;
close cura;
end;
/
create or replace procedure allcheck is
begin
delete from queryvalue;
commit;
usertable('fagmv25','fagmv25');
end;
/
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') "start_allcheck" from dual;
exec allcheck;
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') "end_allcheck" from dual;
set wrap off
set linesize 200
col SCHAMENAME for a20
col TABLENAME for a40
col RECORDNUMS for a80
select * from sys.queryvalue where rownum <10 order by 1,2;
select count(*) from sys.queryvalue;
set timing off;
spool off;
/*
select count(*) from (select * from faqdii.TMP_JYSLDTOJPMORGAN@tapdblink222 minus select * from faqdii.TMP_JYSLDTOJPMORGAN);
select count(*) from (select t.table_name from dba_tables t
where owner=upper('faqdii') minus
select table_name from dba_tab_columns
where owner=upper('fazhv25')
and (to_char(data_type) like '%LOB%' or to_char(data_type) like '%LONG%')) a order by table_name desc;
select distinct(data_type) from dba_tab_columns where owner = upper('fagmv25');
select distinct(data_type) from dba_tab_columns where owner = upper('faqdii');
select distinct(data_type) from dba_tab_columns where owner = upper('fazhv25');
select 'select count(*) '|| table_name || ' from (select * from fagmv25.' || table_name || '@tapdblink222 minus select * from fagmv25.'||table_name||'); '
from
dba_tables where owner=upper('fagmv25') and table_name not in (select table_name from dba_tab_columns where owner=upper('fagmv25')
and (to_char(data_type) like '%LOB%' or to_char(data_type) like '%LONG%')) order by table_name desc;
set wrap off
set linesize 200
col data_type for a20
col owner for a10
select owner ,table_name ,column_name ,data_type ,DATA_LENGTH,COLUMN_ID from dba_tab_columns where owner=upper('fagmv25') and table_name not like 'BIN$%'
order by table_name,column_name;
faqdii.TMP_JYSLDTOJPMORGAN
fagmv25.XGSDXX
fagmv25.TFILEPATH
create table faqdii.TMP_JYSLDTOJPMORGAN_NEW as select * from faqdii.TMP_JYSLDTOJPMORGAN@tapdblink222;
create table fagmv25.XGSDXX_NEW as select * from fagmv25.XGSDXX@tapdblink222;
create table fagmv25.TFILEPATH_NEW as select * from fagmv25.TFILEPATH@tapdblink222;
select count(*) from (select * from faqdii.TMP_JYSLDTOJPMORGAN@tapdblink222 minus select * from faqdii.TMP_JYSLDTOJPMORGAN_NEW);
select count(*) from (select * from fagmv25.XGSDXX@tapdblink222 minus select * from fagmv25.XGSDXX_NEW);
select count(*) from (select * from fagmv25.TFILEPATH@tapdblink222 minus select * from fagmv25.TFILEPATH_NEW);
select count(*) from (select * from faqdii.TMP_JYSLDTOJPMORGAN@tapdblink222 minus select * from faqdii.TMP_JYSLDTOJPMORGAN);
select count(*) from (select * from fagmv25.XGSDXX@tapdblink222 minus select * from fagmv25.XGSDXX);
select count(*) from (select * from fagmv25.TFILEPATH@tapdblink222 minus select * from fagmv25.TFILEPATH);
select owner ,table_name ,column_name ,data_type ,DATA_LENGTH,COLUMN_ID from dba_tab_columns where owner=upper('faqdii') and table_name= 'TMP_JYSLDTOJPMORGAN_NEW'
order by table_name,column_name;
select count(*) from (select * from faqdii.TMP_JYSLDTOJPMORGAN@tapdblink222 minus select * from faqdii.TMP_JYSLDTOJPMORGAN_NEW);
*/