數據集記錄格式 傳統的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’