Ibm midrange 如何在as400中创建联接逻辑文件
我有一个物理文件包含偶数(2,4,6,8,10),另一个PF包含奇数(1,3,5,7,9)。我们可以创建连接逻辑文件,我必须在RPGLE pgm中使用它来按(1到10)的顺序显示数字Ibm midrange 如何在as400中创建联接逻辑文件,ibm-midrange,Ibm Midrange,我有一个物理文件包含偶数(2,4,6,8,10),另一个PF包含奇数(1,3,5,7,9)。我们可以创建连接逻辑文件,我必须在RPGLE pgm中使用它来按(1到10)的顺序显示数字 如何为此场景创建联接逻辑文件 将每个物理文件视为一个网格或表格,其中文件中的记录是行,文件中的字段是列。(这些也是SQL中使用的术语。)想象一下将两个表并排放置。联接将在键匹配的位置连接并合并行,以构建新的结果行,每个结果行包含两个表中的值 但这根本不是您描述的场景。您希望将两个表垂直组合,更像是将两堆卡片按所需顺
如何为此场景创建联接逻辑文件 将每个物理文件视为一个网格或表格,其中文件中的记录是行,文件中的字段是列。(这些也是SQL中使用的术语。)想象一下将两个表并排放置。联接将在键匹配的位置连接并合并行,以构建新的结果行,每个结果行包含两个表中的值
但这根本不是您描述的场景。您希望将两个表垂直组合,更像是将两堆卡片按所需顺序排列成一堆。将每个物理文件视为一个网格或表格,其中文件中的记录为行,文件中的字段为列。(这些也是SQL中使用的术语。)想象一下将两个表并排放置。联接将在键匹配的位置连接并合并行,以构建新的结果行,每个结果行包含两个表中的值
但这根本不是您描述的场景。您希望将两个表垂直组合,更像是将两堆卡片按所需顺序排列成一堆。将每个物理文件视为一个网格或表格,其中文件中的记录为行,文件中的字段为列。(这些也是SQL中使用的术语。)想象一下将两个表并排放置。联接将在键匹配的位置连接并合并行,以构建新的结果行,每个结果行包含两个表中的值
但这根本不是您描述的场景。您希望将两个表垂直组合,更像是将两堆卡片按所需顺序排列成一堆。将每个物理文件视为一个网格或表格,其中文件中的记录为行,文件中的字段为列。(这些也是SQL中使用的术语。)想象一下将两个表并排放置。联接将在键匹配的位置连接并合并行,以构建新的结果行,每个结果行包含两个表中的值
但这根本不是您描述的场景。您希望将两个表垂直合并,更像是将两堆卡片按所需顺序排列成一堆。您不是在描述连接逻辑,它将一个表中的记录连接到另一个表中的一个或多个记录 相反,您描述的是DDS源中的已知记录,其看起来是这样的(假设文件之间的记录格式相同): 但是,如果这两个文件有不同的记录格式,并且您希望每个文件都有不同的字段……那么看起来是这样的:
A R ODDFILER PFILE(ODDFILE)
A RECNO
A FLD1
A FLD3
A K RECNO
A
A R EVENFILER PFILE(EVENFILE)
A RECNO
A FLD2
A FLD4
A K RECNO
这里有一篇关于使用连接和多格式逻辑的文章。
正如CRPence的回答所提到的,MFLF类似于sqlunionall视图
不同之处在于,在我的第二个示例中,MFLF允许FLD1为字母,FLD2为数字。SQL联合视图不允许这样做;SQL中选择的列必须是相同(或兼容)类型。您不是在描述连接逻辑,它将一个表中的记录连接到另一个表中的一个或多个记录 相反,您描述的是DDS源中的已知记录,其看起来是这样的(假设文件之间的记录格式相同): 但是,如果这两个文件有不同的记录格式,并且您希望每个文件都有不同的字段……那么看起来是这样的:
A R ODDFILER PFILE(ODDFILE)
A RECNO
A FLD1
A FLD3
A K RECNO
A
A R EVENFILER PFILE(EVENFILE)
A RECNO
A FLD2
A FLD4
A K RECNO
这里有一篇关于使用连接和多格式逻辑的文章。
正如CRPence的回答所提到的,MFLF类似于sqlunionall视图
不同之处在于,在我的第二个示例中,MFLF允许FLD1为字母,FLD2为数字。SQL联合视图不允许这样做;SQL中选择的列必须是相同(或兼容)类型。您不是在描述连接逻辑,它将一个表中的记录连接到另一个表中的一个或多个记录 相反,您描述的是DDS源中的已知记录,其看起来是这样的(假设文件之间的记录格式相同): 但是,如果这两个文件有不同的记录格式,并且您希望每个文件都有不同的字段……那么看起来是这样的:
A R ODDFILER PFILE(ODDFILE)
A RECNO
A FLD1
A FLD3
A K RECNO
A
A R EVENFILER PFILE(EVENFILE)
A RECNO
A FLD2
A FLD4
A K RECNO
这里有一篇关于使用连接和多格式逻辑的文章。
正如CRPence的回答所提到的,MFLF类似于sqlunionall视图
不同之处在于,在我的第二个示例中,MFLF允许FLD1为字母,FLD2为数字。SQL联合视图不允许这样做;SQL中选择的列必须是相同(或兼容)类型。您不是在描述连接逻辑,它将一个表中的记录连接到另一个表中的一个或多个记录 相反,您描述的是DDS源中的已知记录,其看起来是这样的(假设文件之间的记录格式相同): 但是,如果这两个文件有不同的记录格式,并且您希望每个文件都有不同的字段……那么看起来是这样的:
A R ODDFILER PFILE(ODDFILE)
A RECNO
A FLD1
A FLD3
A K RECNO
A
A R EVENFILER PFILE(EVENFILE)
A RECNO
A FLD2
A FLD4
A K RECNO
这里有一篇关于使用连接和多格式逻辑的文章。
正如CRPence的回答所提到的,MFLF类似于sqlunionall视图
不同之处在于,在我的第二个示例中,MFLF允许FLD1为字母,FLD2为数字。SQL联合视图不允许这样做;SQL中选择的列必须具有相同(或兼容)的类型。FWiW,使用与相同容量的联合视图而不是[n隐式]多格式逻辑文件的示例
ovrdbf the_File tofile(evens_odds) mbr(*first) share(*yes)
opnqryf the_File keyfld((nbr))
/* optionally, the next three commands to test and review results: */
cpyfrmqryf the_File *print
dspsplf qsysprt splnbr(*last)
posdbf the_File *start
/* call the RPG program that could read by key or sequentially */
call the_RPGpgm
R ODDS_EVENS PFILE(ODD_NBRS EVEN_NBRS)
NBR
NBRTEXT
K NBR
cpyf ODDS_EVENS *print fromrcd(*start)
dspsplf qsysprt splnbr(*last)
R ODDS_EVENS PFILE(ODD_NBRS EVEN_NBRS)
TEXT('NBR fld only; 1-digit values')
NBR
K NBR
K *NONE
K *NONE
S NBR COMP(LT 10)
R ODDS_ONLY PFILE(ODD_NBRS)
TEXT('NBR,NBRTEXT mapped to zoned')
NBR
NBRTEXT 2S00
K NBR
K NBRTEXT
K *NONE
R EVENS_ONLY PFILE(EVEN_NBRS)
TEXT('NBR to alpha and more zoned')
NBR
NBR2S00 2S00 RENAME(NBR) COLHDG('NBR2S00')
NBR2A 2A I SST(NBR2S00 1 2) COLHDG('NBR2A')
NBRTEXT
K *NONE
K *NONE
K NBR2S00