我必須刪除一些被認爲無用的記錄。清除AS/400上的記錄
有一個地址文件和一個訂單歷史文件。在擁有消費品的公司中,他們獲得了許多產品查詢或開始銷售,從未成爲銷售。
每個查詢都會在地址文件中記錄客戶編號。訂單歷史記錄文件是相同的客戶列和後綴字段。這是從000開始,並在有新訂單時遞增。事實上大部分的業務都是經常性的模式。
一個只有'000'記錄的客戶(可能有多個000),意味着他們從未買過任何我們希望從這些文件中清除它們的東西。
我正在考慮一個簡單的RPG程序,但我也有興趣只使用SQL如果可能或其他方法。
在這個階段,我們實際上不會刪除,但照搬建議記錄吹掃到將被審查的輸出文件也將被存儲的情況下,有必要恢復。
F Addressfile IF E
F OrderHistory IF E
**** create 2 output file clones but with altered name for now.
F Zaddressfile O E
F ZorderHistory O E
*inlr doweq *off
Read Addressfile lr
*inlr ifeq *off
move *off Flg000
exsr Chk000
Flg000 ifeq *on
iter
else exsr purge
endif
endif
enddo
Chk000 begsr
**基本上SETLL到不同的邏輯上的orderhistory 和裏德爲我們只要有匹配的客戶數量 ,如果有一個後綴不是= 000,然後我們打開標誌 並獲得出。
清除子程序將不得不再次讀取通過使用相同的客戶號碼清除訂單歷史文件所需的記錄,該客戶號碼仍將在地址文件的讀取中。因爲我不確定subr有什麼價值,對於顧客,我不想存儲它。
那麼它會寫入新文件含地址文件,然後我們就可以ITER讀取下 客戶的地址文件。
我們也不能假設,如果有人沒有買,他們有001也許是多年來刪除了。
如果我們這樣做,我可以簡單地鏈接。
是什麼這個問題? –
我可以發誓我會讀一些東西,顯示使用SQL進行批處理和本機IO的速度增益,但不知道它現在在哪裏。有趣的是,我在這裏重新編寫了一個過程(以及一些新的索引,這些索引對於本機IO來說很難'使用'),從大約24小時開始......到2 –