将字段添加到现有COBOL数据文件

时间:2010-02-17 19:45:23

标签: cobol

我有一个现有的MF COBOL 4.0程序,在ISAM文件中有多年的数据,但我需要在现有文件中添加一个新字段。该记录目前有1208个字符,我需要再添加10个字符。

如果我只是将额外的PIC X(10)字段放在我的字帖中,它会给我一个错误。

4 个答案:

答案 0 :(得分:2)

您需要修改基础数据文件以匹配COBOL中的文件定义。一种方法是定义一行输出,就像你现在的数据行一样,但在它的末尾有一个额外的Pic x(10)。然后,您将逐行读取数据,并将其输出到新位置,并在其末尾添加10个额外空格。这样你的数据就会长10个字符,你可以返回并将额外的Pic x(10)添加到你的主程序中。它应该在那之后工作。

答案 1 :(得分:0)

通过更改副本,您只需更改程序中使用的数据的表示形式。你不应该重组数据源(即ISAM文件)吗?

答案 2 :(得分:0)

迟到的答案,但我认为你可能会感兴趣。

我已经在我们的Cobol系统上工作了20多年,我们已经多次遇到过这个问题。

对我们的索引文件结构的更改是我们认为的“主要版本”。这些需要特定的转换程序:

  1. 重命名物理文件,将其移至“旧”文件
  2. 打开文件的“旧版”(在更改前使用版本的副本)
  3. 打开(创建)文件的“新”版本
  4. 将每个“旧”记录的内容移至“新”记录并将其写入
  5. 当然,这些转换需要系统“关闭”,因此它们被视为主要版本。

    如果您的文件将来可能会添加字段,则可以在索引文件的末尾添加额外的FILLER,以便您处理要添加的新字段。我们倾向于添加50或100的填充。当然,如果您更改现有字段之一,甚至任何键的结构,这对您没有帮助。

答案 3 :(得分:0)

对于文件错误,您需要保留一个方便的列表。我建议从你在网上找到的列表开始,任何时候你得到一个你在5秒内无法弄清楚的错误,添加一个解决方案的详细解释,这样你下次发生时就会把它放在你的笔记中。这里有几个像

开头的体面列表

在我的列表中,文件状态39为:

  • OPEN-CONFLICT-FILE-ATR - 'open'语句不成功,因为在程序中为该文件指定的固定文件属性之间检测到冲突。这些属性包括文件的组织(顺序,相对或索引),主记录键,备用记录键,代码集,最大记录大小和记录类型(固定或变量)。

这来自个性化的说明:检查您在JCL中分配给ddname的文件。特别是长度分配。在您的情况下,您知道长度不匹配,因为您刚刚更改了程序。

有些实用程序可以重新格式化数据集,尤其是SYNCSORT。或者你当然可以自己写。