增加顺序文件中的字段长度

时间:2017-07-26 18:40:51

标签: oracle11g cobol mainframe

如果要在顺序文件中扩展字段长度,是否要在记录末尾添加新字段,因为在固定记录格式中间增加字段长度会导致问题?

1 个答案:

答案 0 :(得分:3)

这种情况下的解决方案是添加 end 的字段。

未来

您还需要思考 关于未来。您不希望重新编译使用a的每个程序 文件每次更改副本。 有几种解决方案

  • 在最后添加填充 - 缺点浪费空间
  • 使用 VB文件 - VB文件不太常见且运输性较差
  • 文件驱动程序:在一个程序中执行所有IO,将程序与文件隔离。

采用任何选项意味着:

  • 只有使用 new 字段的程序需要重新编译
  • 实施将文件更改为生产时,创建文件的程序需要进入第一个。使用新字段程序可以在天/周/月后进入。这可以简化实现。一些小型实现比一个巨大的大爆炸实现简单得多。
  • 在大型机上,每当文件属性发生变化时,它都会保存更改JCL。

在末尾添加填充物

只需将文件定义为

即可
 01 My-Copybook
    05 First-field                         Pic ...
       ....
    05 Last-field                          Pic ...
    05 Filler                              Pic X(60).

在添加新字段时,最后使用一些填充符:

 01 My-Copybook
    05 First-field                         Pic ...
       ....
    05 Last-field                          Pic ...
    05 new-field                           pic X(10)
    05 Filler                              Pic X(50). *> reduced to 50

使用可变长度记录

您可以使用像

这样的VB文件
 01 Largest-possible-record                Pic x(500).

 01 My-Copybook
    05 First-field                         Pic ...
       ....
    05 Last-field                          Pic ...

您现在可以将记录扩展到500字节。

使用文件驱动程序

使用模块(文件驱动程序)读取/写入文件。所有应用程序 会调用文件驱动程序来执行实际的IO。

应用程序会像

这样的东西
 05 Large-Record                          Pic x(1000).
 05 My-Record   redefines Large-Record.
    10 First-field                        Pic ...
        ....
    10 Last-field                         Pic ...

文件驱动程序不仅可以编写文件,还可以添加/验证 标题/预告片或其他文件检查记录,而应用程序则不是 感兴趣的。