比较Oracle两张表的数据是否一样

爱搞机 2008-10-21 11:00

在某些情况下,我们会需要比较两张表的数据是否一样。

假设有两张表A与表B他的字段相同,但是当中的数据可能不同,而且有些字段的数据还有可能为空

方法一(手动):把需要比较的两张表的数据按照某种规则排序后导出为xls,这里我直接用PL/SQL Developer导出

然后用把xls文件转换成txt文件,这里我用的是batconv转换公式

现在我们就有了两个txt文件。

然后用beyond compare文件比较器比较内容。

优点:数据差异一目了然,缺点:比较费时。

方法二(通过Sql语句来比较)

创建表的语句:

create table student(

stuId varchar2(50) primary key--自动生成的,唯一的。

stuName varchar2(50),

stuContent varchar2(2000),

stuType varchar2(20),

)

当中除id不为空,其它三项均可能为空。

一般情况下我们可以用

select * from studentA A where not exists (select * from studentB B where A.stuName = B.stuName and A.stuContent = B.stuContent and A.stuType = B.stuType)

在oracle 情况下如果两张表的某个字段都为null则其通过A.*=B.*是比较不出来的。

因此要额外加上这样的判断or(A.stuContent is null and B.stuContent is null) or

(A.stuName is null and B.fomrulaName is null) or (A.stuType is null and B.stuType is null)

通过上面这个sql语句我们就可以找在A表中存在,但在B表中不存在的数据

反过来可以查询在B表中存在,但在A表中不存在的数据。

若两个查询都为空,则说明两张表的相应字段完全相同。

若这两张表在不同的数据库,则要通过建立DBLink,可以参见我的转贴

优点:数据比较快,特别是在数据量比较大的数据优势更加明显,

缺点:比较时不能很快看出两张表的差异。因为查询的只是当中的某一张表。

oracle两张表 比较好,比较Oracle两张表的数据是否一样相关推荐

  1. oracle多表联合查询更新,ORACLE 两表关联更新三种方式

    不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...

  2. oracle高级查询案例,oracle高级查询(实例基于scott用户四张表)

    oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ====================================================== ...

  3. oracle查询一张表的主键,Oracle查询表主键、外键

    Oracle查询表主键.外键 1. 查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user_indexe ...

  4. oracle三张表关联外查询,oracle三张表左连接 | 学步园

    三张表,要查询出结果是:第一张表全显示,其余两张表显示对应连接的信息 三张表分别是 SQL> select * from zr_stu; STUID STUNAME STUSEX ------- ...

  5. oracle scott 关系图,oracle下scott用户的四张表(emp,dept,bonus,salgrade)的建表语句:

    scott用户的四张表(emp,dept,bonus,salgrade)的建表语句 emp -- Create table create table EMP ( empno NUMBER(4) not ...

  6. oracle多表关联查询报表,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...

  7. oracle表空间可以迁移,Oracle 表空间迁移

    迁移表空间databump 使用databump导入导出,两个库用户必须一致,否则另一个库导入的时候会报错.所以两个库都是用helei用户. 给两个数据库的用户分别授予dba权限,这里只是实验更清晰而 ...

  8. oracle导出一个表数据库,excel怎么导出多个表格数据库数据-一个excel表格中有多个sheet,如何将其导入oracle数......

    一个excel表格中有多个sheet,如何将其导入oracle数... 解决方案如下: 可以新建一个查询,查询你所说的2个表中的所有数据 运行查询,这样查询结果就包含了你要的数据,再把查询结果导出 就 ...

  9. oracle表连接查询逗号隔开_Oracle多表连接查询

    连接:将一张表中的行按照某种条件和另一张表中的行连接起来形成一个新行的的过程. 根据连接查询返回的结果,分为3类: 内连接(inner join) 外连接(outer join) 交叉连接(cross ...

最新文章

  1. layui栅格布局问题
  2. 深度学习 CNN CUDA 版本2
  3. 计算机发展趋势是规格化,2016年春季计算机应用基础月考卷(4月).doc
  4. Linux 系统应用编程——网络编程(高级篇)
  5. 如何:添加缺少的 ContentPlaceHolder
  6. 利用支持MicroPython的TPYBoard开发板自制PM2.5检测仪(萝卜教育学科式编程)
  7. PocoClassGenerator:RDBMS所有表/视图生成Dapper POCO类代码
  8. springboot 分页查询参数_精通SpringBoot--分页查询功能的实现
  9. win7 nginx php 环境,win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel开发环境
  10. C++学习笔记(11) 重载流插入运算符和流提取运算符,以及自动类型转换
  11. 38..Node.js工具模块---底层的网络通信--Net模块
  12. Android 学习JNI,用JAVA调用C
  13. InstallShield 12 制作安装包
  14. C++ freopen 打开txt文件,读取,写入txt文件
  15. 华为od业务主管面试问题-我的回答
  16. Ext.js 自定义桌面注意
  17. Gvim中实现特定行文本的替换
  18. Linux内核之misc框架
  19. 改变input框disabled 属性的背景颜色以及字体颜色
  20. Mybatis开启一级、二级缓存

热门文章

  1. bldc不同载波频率_广播百科 频率调制
  2. python中正确的表达式_python中如何正确使用正则表达式的详细模式(Verbose mode expression)...
  3. xgboost回归预测模型_偏最小二乘回归分析法 从预测角度对所建立的回归模型进行比较...
  4. jQuery中的页面载入($()、ready(fn)、onload)
  5. jmeter启动警告项解决方案
  6. Java堆内存分配与回收策略
  7. [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI
  8. SpringMVC学习二
  9. 柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...
  10. shell之冒号的作用