DM存储过程示例子-表的行数对比
1.DM存储过程示例子,表的行数对比
1 --1. ================全量
2 --select * from DM_VERI where c2 != c3;
3 --drop table DM_VERI;
4 --create table DM_VERI(c1 varchar(100) PRIMARY KEY, c2 int, c3 int);
5 --truncate table DM_VERI;
6
7 --1.1
8 CREATE OR REPLACE PROCEDURE proc_veri(v_user IN VARCHAR2)
9 AS
10 v_table varchar(40);
11 v_count number;
12 v_count2 number;
13 v_sql VARCHAR(1024);
14 v_sql2 VARCHAR(1024);
15 c1 CURSOR;
16 BEGIN
17 OPEN c1 FOR SELECT TABLE_NAME FROM dba_tables t where t.OWNER=v_user;
18 LOOP
19 FETCH c1 INTO v_table;
20
21 --1.dm
22 v_sql:='select COUNT(*) from' || v_table;
23 execute immediate v_sql into v_count;
24
25 --2.ora
26 --v_sql2:='select COUNT(*) from' || v_table||'@link01';
27 v_sql2:='select COUNT(*) from' || v_table;
28 execute immediate v_sql2 into v_count2;
29
30
31 insert into DM_VERI values (v_table, v_count, v_count2);
32
33 PRINT v_table || v_count||v_count2;
34 --PRINT v_count;
35
36 EXIT WHEN c1%NOTFOUND;
37
38 END LOOP;
39 CLOSE c1;
40 END;
41
42 --1.2
43 --call proc_veri('SYSDBA');
44
45
46 --======================================================================
47 --2. 分布sql
48 --2.1 ora
49 --select * from TEST_V_ORA where c2 != c3;
50 --drop table TEST_V_ORA;
51 --create table TEST_V_ORA(c1 varchar(100), c2 int);
52 --truncate table TEST_V_ORA;
53 CREATE OR REPLACE PROCEDURE proc_v_ora(v_user IN VARCHAR)
54 AS
55 v_table varchar(40);
56 v_count2 number;
57 v_sql2 VARCHAR(1024);
58 c1 CURSOR;
59 BEGIN
60 OPEN c1 FOR SELECT TABLE_NAME FROM dba_tables t where t.OWNER=v_user;
61 LOOP
62 FETCH c1 INTO v_table;
63
64 --2.ora
65 --v_sql2:='select COUNT(*) from' || v_table||'@link01';
66 v_sql2:='select COUNT(*) from' || v_table;
67 execute immediate v_sql2 into v_count2;
68
69
70 insert into TEST_V_ORA(c1,c3) values (v_table, v_count2);
71
72 PRINT v_table || v_count2;
73
74 EXIT WHEN c1%NOTFOUND;
75
76 END LOOP;
77 CLOSE c1;
78 commit;
79 END;
80
81 truncate table DM_VERI;
82
83 call proc_veri_ora('SYSDBA');
84
85 select * from DM_VERI;
86
87
88 --2.2 dm
89 --select * from TEST_V_DM where c2 != c3;
90 --drop table TEST_V_DM;
91 --create table TEST_V_DM(c1 varchar(100), c2 int);
92 --truncate table TEST_V_DM;
93 CREATE OR REPLACE PROCEDURE proc_v_dm(v_user IN VARCHAR)
94 AS
95 v_table varchar(40);
96 v_count number;
97 v_sql VARCHAR(1024);
98 c1 CURSOR;
99 BEGIN
100 OPEN c1 FOR SELECT TABLE_NAME FROM dba_tables t where t.OWNER=v_user;
101 LOOP
102 FETCH c1 INTO v_table;
103
104 --1.dm
105 v_sql:='select COUNT(*) from' || v_table;
106 execute immediate v_sql into v_count;
107
108
109 update TEST_V_DM set c2=v_count where c1=v_table;
110
111 PRINT v_table || v_count;
112
113 EXIT WHEN c1%NOTFOUND;
114
115 END LOOP;
116 CLOSE c1;
117 commit;
118 END;
119
120
121 call proc_v_dm('SYSDBA');
122
123 select * from TEST_V_DM;
124
125
126 ------==========================ORA 数据对比==============================
127
128 select 'select count(*) cnt,'''||TABLE_NAME||'''from ' || TABLE_NAME||' union all ' from (
129 select TABLE_NAME from DBA_TABLES
130 where OWNER like 'SYSDBA' AND TABLE_NAME NOT LIKE '##%' order by TABLE_NAME);
DM存储过程示例子-表的行数对比的更多相关文章
- 【SQL】统计所有表的行数
环境:mssql ent 2k8 r2 原理:遍历所有用户表,用sp_spaceused过程分别获取每张表的行数并写入临时表,最后返回临时表 IF OBJECT_ID('tempdb..#TableR ...
- 查看SqlAzure和SQLServer中的每个表数据行数
SqlAzure中的方式: select t.name ,s.row_count from sys.tables t join sys.dm_db_partition_stats s ON t.obj ...
- sqlserver查询所有表的行数的sql语句
原文:sqlserver查询所有表的行数的sql语句 select object_name(id),rowcnt from sysindexes where indid<2 and object ...
- 查询sql server 2008所有表和行数
查询sql server 2008所有表和行数 SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.i ...
- SQL Server遍历所有表统计行数
DECLARE CountTableRecords CURSOR READ_ONLY FOR SELECT sst.name, Schema_name(sst.schema_id) FROM sys. ...
- 统计sql server 2012表的行数
--功能:统计sql server 2012表的行数 SELECT a.name, a.object_id, b.rows, b.index_id FROM sys.tables AS a INNER ...
- 「日志」Navicat统计的行数竟然和表实际行数不一致
背景 近期为了保障线上数据库的稳定性,我决定针对一些大表的历史数据有计划地进行备份迁移,但是呢,发现一个奇特的现象,Navicat统计行数和表自身count统计数竟然不一致!?0.0 Navicat ...
- Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
--表名,表占用空间大小(MB),行数select table_name, round(num_rows * avg_row_len /1024/1024, 8) as total_len, num_ ...
- SQL SERVER 中 实现主表1行记录,子表多行记录 整合成一条虚拟列
表中有这样的记录,简单的主子表,现要想通过left join 语句把两表关联起来 select * from tbl_diary_reback a left join tbl_diary_reback ...
随机推荐
- 关于 K210 MaixPy 的 I2C 读取设备,搜索不到设备,通信失败的一些原因以及解决方案。
近来对 amigo 开发期间的遇到 I2C 问题做一下总结. 我们发现有一些 I2C 设备搜索不到,主要原因是 DATA 的信号衰减,也可能是 I2C 的总线被拉住了. 软件层面的问题 例如在实现 A ...
- 梯度下降法Gradient descent(最速下降法Steepest Descent)
最陡下降法(steepest descent method)又称梯度下降法(英语:Gradient descent)是一个一阶最优化算法. 函数值下降最快的方向是什么?沿负梯度方向 d=−gk
- 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象
077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
- P3545 [POI2012]HUR-Warehouse Store
题目描述 n天.第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择满足顾客的要求,或是无视掉他. 如果要满足顾客的需求,就必须要有足够的库存.问最多能够满足多少个顾客的需求. ...
- Java 客户端操作 FastDFS 实现文件上传下载替换删除
FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...
- python软件安装-Windows
开发语言: 高级语言:Java.C.PHP.Go.ruby.c++ #字节码 低级语言:C.汇编 #机器码 语 ...
- 2020 CSP-J 初赛答案及解析
部分咕咕咕的明天一定 单项选择 A A D 解析 : 与z的都是假 C 解析 : $ \frac{2048\times1024\times32}{8\times1024\times1024}=8$ C ...
- C# 范型约束 new() 你必须要知道的事
C# 范型约束 new() 你必须要知道的事 注意:本文不会讲范型如何使用,关于范型的概念和范型约束的使用请移步谷歌. 本文要讲的是关于范型约束无参构造函数 new 的一些底层细节和注意事项.写这篇文 ...
- Oracle使用技巧
Edit/Undo Ctrl+ZEdit/Redo Shift+Ctrl+ZEdit/PL/SQL Beautifier Ctrl+W (自定义) Shift+Home 选择光标位置到行首 Shift ...
- Spark学习总结
RDD及其特点 1.RDD是Spark的核心数据模型,但是个抽象类,全称为Resillient Distributed Dataset,即弹性分布式数据集. 2.RDD在抽象上来说是一种元素集合,包含 ...