SELECT'A1'AS SOURCE,OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,COLUMN_ID FROM ALL_TAB_COLUMNS WHERE OWNER IN('模式名','模式名')ORDERBY OWNER,TABLE_NAME,COLUMN_ID;
1
3 查询数据源 A2的表结构
SELECT'A2'AS SOURCE,OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,COLUMN_ID FROM ALL_TAB_COLUMNS WHERE OWNER IN('模式名','模式名')ORDERBY OWNER,TABLE_NAME,COLUMN_ID;
1
4 将数据源A1,A2的结果导入比对表中
INSERTINTO SYSDBA.TAB_DIFF (SELECT'A1'AS SOURCE,OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,COLUMN_ID FROM ALL_TAB_COLUMNS WHERE OWNER IN('模式名','模式名')ORDERBY OWNER,TABLE_NAME,COLUMN_ID);COMMIT;
1
2
3
INSERTINTO SYSDBA.TAB_DIFF (SELECT'A2'AS SOURCE,OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,COLUMN_ID FROM ALL_TAB_COLUMNS WHERE OWNER IN('模式名','模式名')ORDERBY OWNER,TABLE_NAME,COLUMN_ID);COMMIT;
1
2
3
5 查询比对结果
SELECT*FROM(SELECT*FROM SYSDBA.TAB_DIFF WHERE SOURCE='A1') A1 FULLOUTERJOIN(SELECT*FROM SYSDBA.TAB_DIFF WHERE SOURCE='A2') A2 ON A1.OWNER=A2.OWNER AND A1.TABLE_NAME=A2.TABLE_NAME AND A1.COLUMN_NAME = A2.COLUMN_NAME;