📅  最后修改于: 2020-11-22 17:22:12             🧑  作者: Mango
VSAM命令用于对VSAM数据集执行某些操作。以下是最有用的VSAM命令-
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命令用于将数据加载到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命令用于获取VSAM数据集的目录详细信息。 Listcat命令提供有关VSAM数据集的以下信息-
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数据集的所有目录详细信息。
检查命令用于检查键排序的数据集集群的结构完整性。它检查索引和数据组件,如果发现任何问题,则将错误消息假脱机发送。您可以检查任何IDCxxxxx消息。
EXAMINE NAME(vsam-ksds-name) -
INDEXTEST DATATEST -
ERRORLIMIT(50)
在以上语法中,vsam-ksds-name是VSAM数据集名称,我们需要为其检查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数据集所有问题。
验证命令用于检查和修复错误后未正确关闭的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数据集中的错误。