生產 Library (PRCDB) 與測試 Library (TESTDB) 各含數千物件,需找出存在於測試庫但不在生產庫的物件。
DSPOBJD OBJ(TESTDB/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(YNLIB/FILE1) DETAIL(*BASIC)
DSPOBJD OBJ(PRCDB/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(YNLIB/FILE2) DETAIL(*BASIC)
STRSQLSELECT ODOBNM FROM YNLIB/FILE1
WHERE ODOBNM NOT IN (SELECT ODOBNM FROM YNLIB/FILE2);
DSPOBJD 為 IBM i 原生命令,OUTPUT(*OUTFILE) 可將物件屬性導出資料庫表。ODOBNM 欄位儲存物件名稱。-- 找出兩邊都有但屬性不同的物件
SELECT A.ODOBNM, A.OOBJTP, B.OOBJTP
FROM YNLIB/FILE1 A JOIN YNLIB/FILE2 B ON A.ODOBNM = B.ODOBNM
WHERE A.OOBJTP <> B.OOBJTP;
-- 使用 EXCEPT (IBM i 7.1+ 支援)
SELECT ODOBNM FROM YNLIB/FILE1
EXCEPT
SELECT ODOBNM FROM YNLIB/FILE2;