ある順次ファイルに全く同じデータが紛れ込んでしまってどのレコードが重複しているのかも
不明な状況に陥ったとする。
仮にその重複レコードを含んでいるファイルがライブラリー MYLIB
の DBFILE
という
名前であったとする。
重複したレコードを除去する方法を紹介しよう。
1. 元のファイルと同じ空のファイルを作成する。
CRTDUPOBJ DBFILE MYLIB *FILE TOLIB(MYLIB) NEWOBJ(WRKFILE) DATA(*NO)
によってライブラリー MYLIB
に WRKFILE
という名前の空のファイルを作成する。
2. SQL によって重複しないレコードだけを WRKFILE に作成する。
INSERT INTO MYLIB/WRKFILE SELECT DISTINCT * FROM MYLIB/DBFILE
3. 元のDBFILE へ WRKFILE のデータをすべてコピーする。
CPYF FROMFILE(MYLIB/WRKFILE) TOFILE(MYLIB/DBFILE) MBROPT(*REPLACE)
もちろんこれらの作業は十分に BACKUP をとっておいてから行うべきであるのは言うまでもない。