[align=left][/align]在某些情況下,我們會需要比較兩張表的資料是否一樣。
假設有兩張表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 在某些情況下,我們會需要比較兩張表的資料是否一樣。假設有兩張表a與表b他的字段相同,但是當中的資料可能不同,而且有些欄位的資料還有可能為空 方法一 手動 把需要比較的兩張表的資料按照某種規則排序後匯出為xls,這裡我直接用pl sql developer匯出 然後用把xls檔案...
oracle中兩張表資料比較
資料庫 oracle 在某些情況下,我們會需要比較兩張表的資料是否一樣。假設有兩張表a與表b他的字段相同,但是當中的資料可能不同,而且有些欄位的資料還有可能為空 方法一 手動 把需要比較的兩張表的資料按照某種規則排序後匯出為xls,這裡我直接用pl sql developer匯出 然後用把xls檔案...
比較兩張表的資料是否一致
兩張表的結構相同,要比較兩張表的資料是否一致 例如 a表中列有 id,name,age b表中列有 id,name,age select b.id from a,b where a.name b.name and a.age b.age 以上的sql語句可以查出a,b兩個表中的相同資料。下面的sql...