簡體   English   中英

DB2 - Iseries (AS/400) DDS 到 DDL (FIFO, LIFO)

[英]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),這會將已刪除的相關記錄編號重新分配給新記錄,並且您不會在可靠的基礎上得到FIFOLIFOFCFO

沒有 SQL 關鍵字來設置REUSEDLT ,因此您必須在創建表后執行CHGPF以設置該選項。

解決此問題的另一種方法是向表中添加一個序列字段,您可以使用該字段對使用 SQL 的記錄進行排序。 您不必在查詢表期間顯示該字段,但您必須將其包含在寫入中。

現在我想到了,另一種處理方法是使新字段成為自動遞增的身份字段。 即使在插入時,您也不必顯示這樣的字段。 當然,您仍然無法僅靠文件更改而逃脫。 仍然需要進行一些代碼更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM