java程序对Oracle两张表结构相似的表的数据对比,具体如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序对Oracle两张表结构相似的表的数据对比,具体如下相关的知识,希望对你有一定的参考价值。

table_a
A 主键,

B 字段,

C 字段,

D 字段,

E 字段



table_b
A 主键,

B 字段,

C 字段,

D 字段,

E 字段

需求:对比 table_a 跟 table_b 的主键对比,得到结果 1.a表主键存在,b表不存在;2.a表主键不存在,b表存在;3.a表和b表都存在一样的主键,那么就 a表的B字段跟b表的B字段对比, a表的C字段跟b表的C字段对比 。可以在数据库方面使用函数、 存储过程等。还有 两张表的数据可能超过千万条,求各位大神有没有好的建议。
这边只能悬赏100,,分数还可以追加的

总结下需求是在B表中找到于A表一样的记录

因为存在主键A B表本身不会存在重复值,所以最多是一对一的存在。
千万条记录不适合一次性全部load出来
直接使用sql联合查询应该更适合select a.A from A a,B b where a.A=b.A and a.B=b.B and a.C=b.C and a.D=b.D and a.E=b.E;
参考技术A 1: select * from table_b b where not exist (select 1 from table_a a where a.A = b.A)
2: select * from table_a a where not exist (select 1 from table_b b where a.A = b.A)
3: select * from table_a a where exist (select 1 from table_b b where a.A = b.A and a.B=b.B and a.C=b.C)

PL/SQL中 如何将两张结构完全一样的表合并?

查询数据库得到两张结构一样的表,我现在想把两张表直接合并,例如:
表1:
a 1
b 2
c 1

表2:
a 1
c 1
d 4
e 6

合并后得到表3:
a 1
b 2
c 1
a 1
c 1
d 4
e 6

请问各位高手该如何实现?

1、查询的话
select * from 表1
union all
select * from 表2

2、新建表的话(包含数据)
create table 表3 as
select * from 表1
union all
select * from 表2

2、新建表的话(不包含数据)
create table 表3 as
select * from 表1
union all
select * from 表2
where 1=2
参考技术A 不能 union all,不然会有重复数据
把ALL去掉才行
create table 表3 as
select * from 表1
union
select * from 表2
参考技术B creat bable 表3 as
select * from 表1
union all
select * from 表2

以上是关于java程序对Oracle两张表结构相似的表的数据对比,具体如下的主要内容,如果未能解决你的问题,请参考以下文章

[原]用SQL比较两张结构完全相同的表数据

oracle 中如何将一张500万数据的表从一个库快速转移到另外一个库

SQL怎么把查询的结果插入到另一张表中,两张表的表结构不一样可以吗?

PL/SQL中 如何将两张结构完全一样的表合并?

在Oracle数据库中,如何对两个有关联关系的表进行分页?

Oracle两张表关联批量更新其中一张表的数据