汇总结果集中的记录
如果要分析或修改结果集中的大量记录,汇总这些记录可能会很有用。
GROUP 命令允许您根据某个资源表属性的值来汇总结果集中的记录。
注: 只能对长度不超过 251 的属性进行汇总。
发出 GROUP 命令时, CICSPlex ® SM 会汇总一个结果集中的记录,以创建新的汇总结果集。 摘要结果集是特殊类型的结果集。 它包含与源结果集中的一个或多个记录相对应的摘要资源表记录。
例如,可以使用 GROUP 命令来汇总包含 LOCTRAN 资源表记录的结果集。 如果要根据 STATUS 属性的值对记录进行分组,那么摘要结果集最多将包含两个记录: 一个表示 STATUS 值为 ENABLED 的记录,另一个表示 STATUS 为 DISABLED 的记录。 图 1 说明了 GROUP 命令的此用法。图 1。 使用 GROUP 来汇总结果集记录
通常,您可以采用与执行常规结果集相同的方式来处理汇总结果集。 可以使用 FETCH 命令从摘要结果集中检索记录。 您还可以检索摘要所基于的源结果集的各个记录。 FETCH 命令的 DETAIL 选项允许您检索源结果集中对应于特定摘要记录的记录子集。
图 2 显示了访存与摘要记录关联的详细记录的示例。 在这种情况下,摘要记录是表示所有已启用事务的 LOCTRAN 记录。图 2。 样本 FETCH DETAIL 输出
您可以使用 PERFORM 或 SET 命令修改摘要结果集中的记录。 这相当于修改源结果集中由给定摘要记录表示的所有记录。 但是,由于摘要结果集中的每条记录都有一条与之关联的 OBJSTAT 记录 (而不是每个正在修改的源记录都有一条) ,因此您可能想要使用 FETCH DETAIL 命令来确定摘要操作的结果。
使用汇总结果集中的个别记录的另一种方法是使用 EXPAND 命令。 当与 DETAIL 选项一起使用时,这类似于 FETCH 命令,但 EXPAND 会创建一个新的结果集,其中包含单个摘要记录中 GROUP 所汇总的每个记录的一个记录。 这允许您对结果集执行进一步的操作,包括使用其他 GROUP 或 FETCH 命令。 EXPAND 包含许多用于处理记录计数器的选项,以便选择要使用的摘要记录。 它也可以与MARK和UNMARK命令一起使用。
发出 GROUP 命令时,不会汇总源结果集中的 OBJSTAT 记录。 因此,摘要结果集中的 OBJSTAT 记录不表示所有源记录的 OBJSTAT 信息。 但是,摘要结果集中的 OBJSTAT 记录确实包含摘要计数,该计数指示组合了多少源记录以生成每个摘要记录。
应将汇总结果集及其源结果集视为一对要一起使用的结果集。 它们共享某些属性,并且摘要结果集对源结果集具有某些依赖关系:
- 如果没有从中构建摘要结果集的源结果集,那么该摘要结果集无法存在。 如果废弃源结果集,那么还将废弃从中构建的所有汇总结果集。
- 您只能复用汇总结果集以恢复同一源结果集中的记录。 现有摘要结果集不能用作其他源结果集的 GROUP 命令的目标。
- 摘要结果集不能用作 COPY 命令的源。
- 如果以任何方式修改源或摘要结果集,那么将重建从源结果集构建的所有摘要结果集。注: 要防止发生此情况,可以在 PERFORM 或 SET 命令上指定 NOREFRESH 选项。