数据库比较两行数据区别的方法

比较两行数据是否有变化 那几个字段有变化

方法检索a行数据 并且通过自关联将b行数据的列检索在a的右侧如a.a,a.b,a.c, b.a,b.b, b.c

这样子相互比较是只需要将 列1 + 全量 = b的列1好处是一次检索就可以完成比较,不需要先检索 a行 然后再检索b行 在10w行数据的比较中速度可以提升很多(行数少的情况下随意)

通用的比较方法是 先将USER_TAB_COLUMNS的列保存在一个数组中,
然后更具数组循环得出 检索的sql。通过DBMS_SQL的方式打开游标,并且循环得出结果。

比较的时候只需要写 一个循环 数组

DBMS_SQL.COLUMN_VALUE(V_CUSOR, I, V_FROM_VAL);

DBMS_SQL.COLUMN_VALUE(V_CUSOR, I + ARR.COUNT, V_TO_VAL);

这两个取出来的值就是比较两行数据的比较列。

实测在10w行数据的情况下,50列数据的比较并且登录比较列的时间在2分钟左右,测试系统为i3 windows 4gmem oracle11g

原文地址:https://www.cnblogs.com/spchenjie/p/6025301.html