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

相关文章

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2