📜  VSAM-命令(1)

📅  最后修改于: 2023-12-03 15:21:03.169000             🧑  作者: Mango

VSAM 命令介绍

VSAM(Virtual Storage Access Method)是 IBM 在1960年代和1970年代开发的一种高性能的存储访问方法。它是存储文件的一种方式,通常用于处理大型数据集合。

VSAM 提供了各种命令来管理数据集合。以下是一些常见的 VSAM 命令:

DEFINE 命令

DEFINE 命令用于创建一个新的 VSAM 数据集合或修改已经存在的数据集合。

//DEFVSAM EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
 DEFINE CLUSTER 
  - (NAME(cluster.name)
     [,[MAXRECS(record.count)]
     [,[RECORDSIZE(record.length)]
     [,[SHAREOPTIONS(share.opt)]
     [,[KEYS(key.length)]
     [,[DATA(data.length)]
     [,[IF(MAXGEN(10))]]
     [,[NONSPANNED]]
     [,[NOERASE]]
     [,[NOIMBED]]
     [,[RECOVERY(RECOVERY)]
     [,[REUSE]]
     [,[SPANNED]]

这个示例中,我们定义了一个名为 cluster.name 的新的 VSAM 数据集合。

  • MAXRECS 指定数据集合中的最大记录数量。
  • RECORDSIZE 指定数据集合中的每个记录的长度。
  • SHAREOPTIONS 指定了数据集合的共享选项。共享选项可以是 PRIVATECONTROLLED.
  • KEYS 指定了数据集合中的键的长度。这个参数只在定义 INDEXED 数据集合时使用。
  • DATA 指定了 KSDSRRDS 数据集合中的数据区的长度。
  • MAXGEN 指定了数据集合的最大代数。只对 GDG 数据集合使用。
  • NONSPANNED 指定数据集合为非跨越式。
  • NOERASE 使 IDCAMS 不会擦除重定向数据集的内容。只有在使用 ALTER 命令生成新代时才需要指定此选项。
  • NOIMBED 使用此选项可优化基于 ASN(Alternate Symbolic Name)的恢复过程。不过这需要一些额外的配置。
  • RECOVERY 指定恢复记录的 GN 的数量或时间间隔。
  • REUSE 表示禁用关联的交换空间。
  • SPANNED 表示数据集合会跨过多个卷。
REPRO 命令

REPRO 命令用于将数据复制到不同的数据集合中。

//REPRO EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
 REPRO -
   INFILE(IN.dataset.name) -
   OUTFILE(OUT.dataset.name)

在这个示例中,我们将名为 IN.dataset.name 的数据集合中的数据复制到名为 OUT.dataset.name 的数据集合中。

DELETE 命令

DELETE 命令用于删除一个 VSAM 数据集合。

//DELVSAM EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
 DELETE cluster.name

这个示例中,我们删除了名为 cluster.name 的数据集合。

EXPORT 命令

EXPORT 命令用于将 VSAM 数据集合导出到一个可识别的文件格式(如 CSV)。

//EXPORT EXEC PGM=IKJEFT01
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
 $DSNUTILS
 EXPORT -
   INDDN(SYSREC) -
   OUTDDN(SYSUT1) -
   OPTFILE(opt.file.name) -
   HEADER(NO)

在这个示例中,我们将名为 IN.dataset.name 的 VSAM 数据集合导出到一个名为 opt.file.name 的可选文件中。此文件包含需要导出的列和其他必需的选项。

IMPORT 命令

IMPORT 命令用于将某种可识别的文件格式(如 CSV)导入到 VSAM 数据集合中。

//IMPORT EXEC PGM=IKJEFT01
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
 $DSNUTILS
 IMPORT -
   INDDN(SYSREC) -
   OUTDDN(SYSUT1) -
   OPTFILE(opt.file.name) -
   INFILE(dataset.name) -
   REPLACE -
   HEADER(NO)

在这个示例中,我们将名为 dataset.name 的 VSAM 数据集合导入到一个名为 out.file.name 的文件中。此文件包含要导入的列和其他必需选项。所有已经存在的记录将被替换。

以上是一些常见的 VSAM 命令,您可以使用它们来管理数据集合。要了解更多信息,请参阅 IBM 的文档和参考手册。