- 學習 VSAM 教程
- VSAM - 首頁
- VSAM - 概述
- VSAM - 元件
- VSAM - 叢集
- VSAM - ESDS
- VSAM - KSDS
- VSAM - RRDS
- VSAM - LDS
- VSAM 命令
- VSAM - 備選索引
- VSAM - 目錄
- VSAM - 檔案狀態
- VSAM - 面試問題
- VSAM 有用資源
- VSAM - 快速指南
- VSAM - 有用資源
- VSAM - 討論
VSAM 命令
VSAM 命令用於對 VSAM 資料集執行某些操作。以下是最有用的 VSAM 命令:
- ALTER(更改)
- REPRO(複製)
- LISTCAT(列出目錄)
- EXAMINE(檢查)
- VERIFY(驗證)
ALTER(更改)
ALTER 命令用於修改 VSAM 檔案屬性。我們可以更改在 VSAM 叢集定義中提到的 VSAM 檔案的屬性。以下是更改屬性的語法:
ALTER file-cluster-name [password] [ADDVOLUMES(volume-serial)] [BUFFERSPACE(size)] [EMPTY / NOEMPTY] [ERASE / NOERASE] [FREESPACE(CI-percentage CA-percentage)] [KEYS(length offset)] [NEWNAME(new-name)] [RECORDSIZE(average maximum)] [REMOVEVOLUMES(volume-serial)] [SCRATCH / NOSCRATCH] [TO(date) / FOR(days)] [UPGRADE / NOUPGRADE] [CATALOG(catalog-name [password]]
上述語法顯示了我們可以在現有 VSAM 叢集中更改哪些引數。引數描述與 VSAM - 叢集模組中提到的相同。
示例
以下示例演示如何使用 ALTER 命令來增加空閒空間、新增更多卷和更改鍵:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * ALTER MY.VSAM.KSDSFILE [ADDVOLUMES(2)] [FREESPACE(6 6)] [KEYS(10 2)] /*
如果您在大型機伺服器上執行上述 JCL,它應該以 MAXCC = 0 執行,並且它將更改空閒空間、卷和鍵。
REPRO(複製)
REPRO 命令用於將資料載入到 VSAM 資料集中。它還用於將資料從一個 VSAM 資料集複製到另一個數據集。我們可以使用此命令將資料從順序檔案複製到 VSAM 檔案。IDCAMS 實用程式使用 REPRO 命令載入資料集。
REPRO INFILE(in-ddname) OUTFILE(out-ddname)
在上述語法中,in-ddname 是包含記錄的輸入資料集的 DD 名。out-ddname 是輸出資料集的 DD 名,輸入資料集的記錄將被複制到該輸出資料集。
示例
以下示例顯示如何將記錄從一個數據集複製到另一個 VSAM 資料集:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//IN DD DSN = MY.VSAM.KSDSFILE,DISP = SHR
//OUT DD DSN = MY.VSAM1.KSDSFILE,DISP = SHR
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
REPRO INFILE(IN)
OUTFILE(OUT)
/*
如果您在大型機伺服器上執行上述 JCL,它應該以 MAXCC = 0 執行,並且它將把所有記錄從 MY.VSAM.KSDSFILE 複製到 MY.VSAM1.KSDSFILE VSAM 檔案。
LISTCAT(列出目錄)
LISTCAT 命令用於獲取 VSAM 資料集的目錄詳細資訊。Listcat 命令提供有關 VSAM 資料集的以下資訊:
- SMS 資訊
- RLS 資訊
- 卷資訊
- 區域資訊
- 分配資訊
- 資料集屬性
LISTCAT ENTRY(vsam-file-name) ALL
在上述語法中,vsam-file-name 是我們需要所有資訊的 VSAM 資料集名稱。指定 ALL 關鍵字以獲取所有目錄詳細資訊。
示例
以下示例顯示如何使用 Listcat 命令獲取 VSAM 資料集的所有詳細資訊:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * LISTCAT ENTRY(MY.VSAM.KSDSFILE) ALL /*
如果您在大型機伺服器上執行上述 JCL,它應該以 MAXCC = 0 執行,並且它將顯示有關 MY.VSAM.KSDSFILE 資料集的所有目錄詳細資訊。
EXAMINE(檢查)
EXAMINE 命令用於檢查鍵順序資料集叢集的結構完整性。它檢查索引和資料元件,如果發現任何問題,則會將錯誤訊息傳送到輸出。您可以檢查任何 IDCxxxxx 訊息。
EXAMINE NAME(vsam-ksds-name) - INDEXTEST DATATEST - ERRORLIMIT(50)
在上述語法中,vsam-ksds-name 是我們需要檢查索引和資料部分的 VSAM 資料集名稱。
示例
以下示例顯示如何檢查 KSDS 資料集的索引和資料部分是否同步:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * EXAMINE NAME(MY.VSAM.KSDSFILE) - INDEXTEST DATATEST - ERRORLIMIT(50) /*
如果您在大型機伺服器上執行上述 JCL,它應該以 MAXCC = 0 執行,並且它將顯示輸出中 IDCxxxxx 訊息中 VSAM 資料集的所有問題。
VERIFY(驗證)
VERIFY 命令用於檢查和修復在錯誤後未正確關閉的 VSAM 檔案。該命令將正確的檔案結束記錄新增到檔案中。
VERIFY DS(vsam-file-name)
在上述語法中,vsam-file-name 是我們需要檢查錯誤的 VSAM 資料集名稱。
示例
以下示例顯示如何檢查和修復 VSAM 資料集中的錯誤:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * VERIFY DS(MY.VSAM.KSDSFILE) /*
如果您在大型機伺服器上執行上述 JCL,它應該以 MAXCC = 0 執行,並且它將修復 VSAM 資料集中的錯誤。
