
- JCL 教程
- JCL 主頁
- JCL - 概述
- JCL - 環境
- JCL - JOB 語句
- JCL - EXEC 語句
- JCL - DD 語句
- JCL - 基本庫
- JCL - 過程
- JCL - 條件處理
- JCL - 定義資料集
- JCL - 輸入/輸出方法
- JCL - 執行 COBOL 程式
- JCL - 實用程式
- JCL - 基本排序技巧
- JCL 有用資源
- JCL - 問題和解答
- JCL - 快速指南
- JCL - 有用資源
- JCL - 討論
JCL - DD 語句
資料集是大型機檔案,其記錄以特定格式組織。資料集儲存在大型機的直接存取儲存裝置 (DASD) 或磁帶上,是基本的資料儲存區域。如果需要在批處理程式中使用/建立這些資料,則在 JCL 中對檔案(即資料集)物理名稱以及檔案格式和組織進行編碼。
每個在 JCL 中使用的資料集的定義都使用DD 語句給出。作業步驟所需的輸入和輸出資源需要在 DD 語句中進行描述,其中包含資料集組織、儲存要求和記錄長度等資訊。
語法
以下是 JCL DD 語句的基本語法
//DD-name DD Parameters
描述
讓我們看看上面 DD 語句語法中使用的術語的描述。
DD-NAME
DD-NAME 標識資料集或輸入/輸出資源。如果這是 COBOL/彙編程式使用的輸入/輸出檔案,則程式在其中引用該檔案。
DD
這是用於將其識別為 DD 語句的關鍵字。
引數
以下是 DD 語句的各種引數。您可以根據需要使用一個或多個引數,並且它們之間用逗號分隔
引數 | 描述 |
---|---|
DSN | DSN 引數指的是新建立或現有資料集的物理資料集名稱。DSN 值可以由 1 到 8 個字元長度的子名稱組成,用句點分隔,總長度為 44 個字元(字母數字)。以下是語法 DSN=物理資料集名稱 臨時資料集僅在作業期間需要儲存空間,並在作業完成後刪除。此類資料集表示為DSN=&name或根本不指定 DSN。 如果作業步驟建立的臨時資料集要在下一個作業步驟中使用,則將其引用為DSN=*.stepname.ddname。這稱為反向引用。 |
DISP | DISP 引數用於描述資料集的狀態,以及在作業步驟正常和異常完成時結束時的處理方式。僅當資料集在同一作業步驟中建立和刪除時(如臨時資料集),DD 語句中不需要 DISP。以下是語法 DISP=(狀態, 正常處理方式, 異常處理方式) 以下是狀態的有效值
正常處理方式引數可以採用以下值之一
異常處理方式引數可以採用以下值之一
以下是 CATLG、UNCATLG、DELETE、PASS 和 KEEP 引數的描述
如果未指定 DISP 的任何子引數,則預設值為:
|
DCB | 資料控制塊 (DCB) 引數詳細說明了資料集的物理特性。此引數對於在作業步驟中新建立的資料集是必需的。 LRECL 是資料集中每個記錄的長度。 RECFM 是資料集的記錄格式。RECFM 可以儲存 FB、V 或 VB 值。FB 是固定塊組織,其中一個或多個邏輯記錄分組在一個物理塊中。V 是可變組織,其中一個可變長度邏輯記錄放置在一個物理塊中。VB 是可變塊組織,其中一個或多個可變長度邏輯記錄放置在一個物理塊中。 BLKSIZE 是物理塊的大小。塊越大,FB 或 VB 檔案的記錄數就越多。 DSORG 是資料集組織的型別。DSORG 可以儲存 PS(物理順序)、PO(分割槽組織)和 DA(直接組織)值。 當需要將一個數據集的 DCB 值複製到同一作業步驟或 JCL 中的另一個數據集時,將其指定為 DCB=*.stepname.ddname,其中 stepname 是作業步驟的名稱,ddname 是複製 DCB 的資料集。 請檢視下面的示例,其中 RECFM=FB、LRECL=80 構成資料集 OUTPUT1 的 DCB。 |
SPACE | SPACE 引數指定 DASD(直接存取儲存磁碟)中資料集所需的儲存空間。以下是語法 SPACE=(空間單位, (主空間, 次空間, 目錄), RLSE) 以下是所有使用引數的描述
|
UNIT | UNIT 和 VOL 引數列在系統目錄中以供編目資料集使用,因此只需使用物理 DSN 名稱即可訪問。但對於未編目資料集,DD 語句應包含這些引數。對於要建立的新資料集,可以指定 UNIT/VOL 引數,或者 Z/OS 分配合適的裝置和卷。 UNIT 引數指定儲存資料集的裝置型別。可以使用硬體地址或裝置型別組來識別裝置型別。以下是語法 UNIT=DASD | SYSDA 其中 DASD 代表直接存取儲存裝置,SYSDA 代表系統直接存取,並指下一個可用的磁碟儲存裝置。 |
VOL | VOL 引數指定由 UNIT 引數標識的裝置上的卷號。以下是語法 VOL=SER=(v1,v2) 其中 v1、v2 是卷序列號。您也可以使用以下語法 VOL=REF=*.DDNAME 其中 REF 是對 JCL 中任何先前作業步驟中資料集的卷序列號的反向引用。 |
SYSOUT | 到目前為止討論的 DD 語句引數對應於儲存在資料集中的資料。SYSOUT 引數根據指定的類別將資料定向到輸出裝置。以下是語法 SYSOUT=類別 其中,如果類別為 A,則將其輸出定向到印表機,如果類別為*,則將其輸出定向到與 JOB 語句中 MSGCLASS 引數相同的目的地。 |
示例
以下是一個示例,它使用了 DD 語句以及上面解釋的各種引數
//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K, // NOTIFY=&SYSUID //* //STEP010 EXEC PGM=ICETOOL,ADDRSPC=REAL //* //INPUT1 DD DSN=TUTO.SORT.INPUT1,DISP=SHR //INPUT2 DD DSN=TUTO.SORT.INPUT2,DISP=SHR,UNIT=SYSDA, // VOL=SER=(1243,1244) //OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE), // RECFM=FB,LRECL=80,SPACE=(CYL,(10,20)) //OUTPUT2 DD SYSOUT=*