Oracle DBlink 比较两边对象和数据

2024-02-01 09:08

本文主要是介绍Oracle DBlink 比较两边对象和数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对象比较

select a.object_type,a.ds_count,b.dt_count,ds_count - dt_count minus_countfrom (select object_type, count(*) ds_countfrom dba_objects@dbverifywhere generated = 'N'and object_name not like 'BIN$%'and owner in ('SAPSR3')group by object_type) aleft join (select object_type, count(*) dt_countfrom dba_objectswhere generated = 'N'and object_name not like 'BIN$%'and owner in ('SAPSR3')group by object_type) bon a.object_type = b.object_typeorder by abs(ds_count - dt_count) desc;

数据比较

create or replace procedure proc_tab_rowcnt authid current_user islv_own  varchar2(30);lv_tab  varchar2(30);lv_ds_num  number := 0;lv_num  number := 0;lv_dt_num  number := 0;lv_diff_num number := 0;lv_sql  varchar2(300) := '';lv_sql2 varchar2(300) := '';lv_sql3 varchar2(300) := '';lv_sql4 varchar2(300) := '';lv_sql5 varchar2(300) := '';lv_sql6 varchar2(300) := '';type cur is ref cursor;t_cur cur;
begin
lv_sql6 := 'truncate table DSG.YX_TAB_ROWCNT';
execute immediate lv_sql6;
insert into dsg.yx_tab_rowcnt(table_owner,table_name,chk_flag)
select owner, table_name,0 from dsg.real_sync_tables order by owner, table_name;
commit;while 1=1
loop
lv_sql3 := 'select count(*) from yx_tab_rowcnt where chk_flag = '||chr(39)||'0'||chr(39);
execute immediate lv_sql3 into lv_num;
if lv_num = 0 thenreturn;
end if;
lv_sql := 'select table_owner,table_name from yx_tab_rowcnt where chk_flag = '||chr(39)||'0'||chr(39)||' order by table_owner,table_name';open t_cur for lv_sql;fetch t_cur into lv_own,lv_tab;lv_sql4 := 'update yx_tab_rowcnt set chk_flag = '||chr(39)||'1'||chr(39)||', begin_time = sysdate where table_owner = '||chr(39)||lv_own||chr(39)||' and table_name = '||chr(39)||lv_tab||chr(39);execute immediate lv_sql4;commit;lv_sql2 := 'select /*+parallel(t,8)*/ count(*) from '||lv_own||'."'||lv_tab||'" t';lv_sql5 := 'select /*+parallel(t,8)*/ count(*) from '||lv_own||'."'||lv_tab||'"@dbverify t';execute immediate lv_sql5 into lv_ds_num;execute immediate lv_sql2 into lv_dt_num;lv_diff_num := lv_ds_num - lv_dt_num;lv_sql4 := 'update yx_tab_rowcnt set ds_count = '||lv_ds_num||',dt_count = '||lv_dt_num||',diff_count = '||lv_diff_num||', chk_flag = '||chr(39)||'2'||chr(39)||', end_time = sysdate where table_owner = '||chr(39)||lv_own||chr(39)||' and table_name = '||chr(39)||lv_tab||chr(39);execute immediate lv_sql4;commit;close t_cur;end loop;exceptionWHEN no_data_foundTHENBEGINdbms_output.put_line('End of File reached. Closing file');END;
end proc_tab_rowcnt;CREATE TABLE "DSG"."YX_TAB_ROWCNT" (	"TABLE_OWNER" VARCHAR2(30) NOT NULL ENABLE, "TABLE_NAME" VARCHAR2(30) NOT NULL ENABLE, "DS_COUNT" NUMBER, "DT_COUNT" NUMBER, "DIFF_COUNT" NUMBER, "CHK_FLAG" CHAR(1) DEFAULT '0', "BEGIN_TIME" DATE, "END_TIME" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ;


这篇关于Oracle DBlink 比较两边对象和数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666776

相关文章

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库