Oracle两张表的数据比较

 我来答
黑科技1718
2022-11-20 · TA获得超过5886个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:82.3万
展开全部

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

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

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

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

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

  然后用beyond pare文件比较器比较内容

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

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

  创建表的语句          create table formula(          id varchar ( ) primary key 自动生成的 唯一的           formulaName varchar ( )           formulaContent varchar ( )           formulaType varchar ( )           )

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

  一般情况下我们可以用          select * from formula A where not exists (select * from formula B where A formulaName=          B formulaName and A formulaContent=B formulaContent and A formulaType=B formulaType)

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

  因此要额外加上这样的判断          or(A formulaContent is null and B formulaContent is null) or          (A fomrulaName is null and B fomrulaName is null) or (A formulaType is null and B fomrulaType is null)

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

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

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

  若这两张表在不同的数据库 则要通过建立DBLink

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

lishixinzhi/Article/program/Oracle/201311/18808

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式