[英]DB2 - Iseries (AS/400) DDS to DDL (FIFO, LIFO)
在我們的IBM iSeries v7r4 - DB2 中,我們需要將DDS 文件轉換為DDL-SQL 。
如果我們可以將子句“FIFO”轉換為 DDL,它是視圖還是索引或任何東西都沒有關系。
我們需要轉換的邏輯文件 (LF) 有這個 DDS 描述:
A FIFO
A R AHMVTF PFILE(AHMVTP)
A FORMAT(AHMVTP)
A K HM$092
A K HMA098
那么,有誰知道是否有任何選項或替代方法可以使用子句 FIFO、LIFO 等在 SQL 上創建索引/視圖?
此致,
沒有保證 FIFO 檢索的 SQL 關鍵字或子句。 您可能可以在order by
子句中使用RRN()
,但這將取決於重用已刪除記錄關鍵字REUSEDLT(*NO)
。
請注意,DDS 默認為 REUSEDLT(*NO),但 DDL 默認為 REUSEDLT(*YES),這會將已刪除的相關記錄編號重新分配給新記錄,並且您不會在可靠的基礎上得到FIFO
、 LIFO
或FCFO
。
沒有 SQL 關鍵字來設置REUSEDLT
,因此您必須在創建表后執行CHGPF
以設置該選項。
解決此問題的另一種方法是向表中添加一個序列字段,您可以使用該字段對使用 SQL 的記錄進行排序。 您不必在查詢表期間顯示該字段,但您必須將其包含在寫入中。
現在我想到了,另一種處理方法是使新字段成為自動遞增的身份字段。 即使在插入時,您也不必顯示這樣的字段。 當然,您仍然無法僅靠文件更改而逃脫。 仍然需要進行一些代碼更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.