数据集记录格式
传统的z/OS数据集是面向记录的。正常使用下,它没有PC系统和UNIX系统中的
字节流文件。(z/OS UNIX有字节流文件,并且字节流函数也存在于其他特定区域
中。这些不是传统的数据集。)
在z/OS中,没有新行(NL)或回车换行(CR+LF)字符来指示记录的结束。在一个给
定的数据集里,记录可以是定长或变长的。例如,当用ISPF编辑数据集时,每一
行都是一个记录。
LRECL
最大记录长
度—
数据集 DCB
属性之一。
172 Chapter 5. Working with data sets     第5章  数据集操作  133
传统的数据集可以有如下五种记录格式:
F-Fixed   定长不组块记录格式是指磁盘上的一个物理块就是一
个逻辑记录,并且所有的块/记录大小相同。该格式很
少用。
FB-Fixed Blocked   定长组块记录格式是指一些逻辑记录组合成一个物理
块。这能提供有效的空间利用和操作。该格式通常适
用于定长记录。
V-Variable   变长不组块记录格式是指一个逻辑记录就作为一个物
理块,变长逻辑记录包含一个记录描述字(RDW),之
后是数据。 记录描述字是一个4字节的用来描述记录的
域。前2位包含了逻辑记录的长度(包括这4字节的
RDW)。长度可以从4到32760字节。第3和第4字节必
须是0,因为其他值是用来表示跨范围记录的。该格式
很少被使用。 
VB-Variable Blocked     变长组块记录格式,是指一个物理块由若干条变
长逻辑记录组成,每条记录都有RDW描述。软件必须
在块的开始处放一个附加的块描述字(BDW),里面包
含了整个块的长度。
U-Undefined    无定义格式,  该格式是由没有预定义结构的变长
的物理记录/块组成的。虽然这种格式可能对许多特殊
的应用程序来说很有吸引力,但是它通常只用于可执
行模块。
我们必须强调块和记录之间的区别。块是写在磁盘上的而记录是一个逻辑实体。
这里提到的术语在z/OS环境中都是普遍使用的。关键的术语有:
►  块大小(BLKSIZE)是针对F和FB记录的写在磁盘上的物理块大小。对V,VB
和U记录格式,是数据集可以使用的最大物理块大小。
►  逻辑记录大小(LRECL)是数据集的逻辑记录的大小(F, FB)或允许的最大逻辑
记录大小(V,VB)。U格式记录没有LRECL。
►  记录格式(RECFM)有F,FB,V,VB或U,正如前面介绍的。
这些术语都是数据控制块(DCB)特性,这是根据它们在汇编语言程序中定义的控
制块来命名的。创建一个新数据集时,用户应该给这些参数指定参数值。数据集
的类型和长度是根据记录格式(RECFM)和逻辑记录长度(LRECL)来决定的。固定
长度的数据集的RECFM可能是F,FB,FBS等。变长数据集的RECFM可能是V,
VB,VBS等。
RECFM=FB及LRECL=25是一个固定长度(FB)的数据集,记录长度为25个字节
(B表示blocked)。 对一个FB数据集来说, LRECL告诉您数据集中每个记录的长度;
几乎所有记录都是一样长的。FB记录中第一个数据字节在位置1。LRECL值为25
的FB数据集中一条记录可能是这样的:
  位置1-3:  Country Code = ‘USA’
  位置4-5:  State Code = ‘CA’
块大小
是针对 F 和
FB 记录的
写在磁盘上
的物理块大
小。
RECFM
记录格式;
是数据控制
块特征之
一。
174
173134  Introduction to the New Mainframe: z/OS Basics   新型主机介绍:z/OS基础
 
  位置6-25:  City = ‘San Jose’ 右边用12个空格填满。
RECFM=VB,LRECL=25的数据集是一个变长的数据集,最大记录长度为25个字
节。 在一个VB数据集中, 记录长度可以不同。 每个记录的头四个字节包含了RDW,
RDW的头两个字节包含了那条记录的长度(以字节为单位)。一条VB记录的第一个
数据字节位于位置5,在4个字节的RDW之后。LRECL值为25的VB数据集的一条
记录可能是这样的:
位置1-2:    Length in RDW = hex 0011 = decimal 17
位置3-4:    Zeros in RDW = hex 0000 = decimal 17
位置5-7:    Country Code = ‘USA’
位置8-9:    State Code = ‘CA’
位置10-17:City = ‘San Jose’