比較兩行數據是否有變化 那幾個字段有變化
方法檢索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