我拥有哪个COBOL数据库?

时间:2018-08-06 13:29:08

标签: database cobol acucobol-gt

一个简单但还是奇怪的问题。希望在好的部分,无法在整个互联网中找到合适的答案。

首先,它看起来很像COBOL(ACUCOBOL?),但我不确定。

我有带有扩展名的二进制文件:.AC,.vix,.SC;每个数兆字节。大多数文件是成对的,例如。 ADDRESSES.AC + ADDRESSES.vixCOMPANIES.SC + COMPANIES.vix。 在这些文件的中间,我可以看到部分记录,但是它似乎是一组二进制文件。

在Cobol数据库中不存在人类可读的索引,地图,方言,配置文件,标头-无需使用某些常规文本工具进行解析。也没有CPY,RDD,XFD文件。只是不时包含大量二进制数据和部分记录/ ID(?)的文件。因此,我可以确定,例如,一个文件包含一组地址,下一个显然是销售的,下一个客户数据等。

问题是:

如何确定我正在使用哪个版本的COBOL数据库? (通常是为了获得提取数据的适当工具。)

如何将这个数据库转换为可以解析并移动到其他文件(甚至包括Excel)的文件?

我无法访问使用该数据库的计算机,因为它已深入垃圾箱多年了,没有其他东西了,只有一个包含数据库文件的文件夹。

有人遇到同样的问题吗?

以下是示例: enter image description here

3 个答案:

答案 0 :(得分:6)

  

如何确定我正在使用哪个版本的COBOL数据库?

您不是使用数据库,而是ISAM文件,非常可能是ACUCOBOL GT文件格式5。有关格式的详细信息,请参见official documentation

  

主要是为了获得提取数据的合适工具。

正确的工具应该是vutil和命令vutil -u -t ADDRESSES.AC ADDRESSES.TXT,它将为您提供一个文本文件,该文本文件很可能采用定长格式(可变格式是相对不常见的)->步骤1。

由于数据可能包含二进制字段,因此您必须调查数据以检查实际的格式/记录布局->步骤2,并从二进制字段->步骤3计算十进制值。 但是有一些工具可以帮助您完成第2步和第3步,我建议您在RecordEditor上查看数据,可以设置字段宽度/类型(定义记录布局,类似于Excel导入,但是允许您使用二进制COBOL类型),并将生成的文件转换为CSV。

如果您无权访问vutil(或Windows上的vutil32.exe),则可能会找到可以访问此工具并为您转换数据的人。或获得评估版(将是旧下载,ACUCOBOL-GT的新产品所有者是MicroFocus,仅提供其不兼容的“ Visual COBOL”产品的评估版)。

或者,您也可以对格式进行逆向工程(记录布局在vix文件中,用十六进制编辑器打开并潜入其中),但这可能是一个更大的任务...

摘要:

  • 确定如何执行步骤1,vutil / vutil32.exe是最简单的方法
  • 1:将数据转换为文本格式
  • 2:调查文件并检查记录布局(字段宽度,类型)
  • 3:加载文件,转换二进制字段,导出为csv

答案 1 :(得分:1)

您肯定具有视觉索引数据文件,因为您将看到匹配的.vix文件,如果您没有.vix文件,则它是一个没有记录集的相对文件。

如果工具菜单下有Acubench,则有Vision File Utility选项,您可以从其中将Vision Data卸载到制表符分隔的文本文件中。

您可以从此处将其作为制表符分隔的文件导入Excel,然后重新另存为csv文件。

答案 2 :(得分:0)

所以毕竟我想这是ISAM版本。

为此,需要使用以下工具:

  1. 首先是一些迁移工具。就我而言,是ISMIGRATE GUI向导:

enter image description here

此软件包来自isCOBOL 2017 R1,您可以找到一些免费演示下载。请注意,您不需要安装所有软件包,只需安装此迁移工具。 然后,您可以使用ctree2-> jisam转换,或尝试所有可用的选项(并非每个选项都可能导致缺少付费的库)

  1. 转换后,您将得到如下内容:

enter image description here

在更坏的情况下,会有一些ASCII特殊字符,但是您可以使用某些工具(例如Notepad ++甚至Excel)来摆脱它们。我的意思是用十六进制代码搜索它们并用空格替换(请注意,空格将替换一个丢失的字符以保留列顺序)

请注意,您还可以使用从MS Access / MS Excel导入ASCII文本文件的特殊功能。真的很有帮助。

  1. 要正确放置所有内容,剪切此文件并进行所有调整(然后导出到csv),您可以使用http://record-editor.sourceforge.net 那是免费的。请注意,经过几次试验,我注意到,其他甚至付费的工具也无济于事。问题出在第一点:转换。

  2. 为确保一切正常,您甚至可以运行MS Access或类似软件,以查看如何创建外键并对所有数据库进行反向工程。有了有效的预览功能,就可以轻松进行更大范围的预览,例如在PostgreSQL / Oracle中。

就是这样。我希望它对某人有用。

什么是不成功

  1. 稳定Actian Vector服务器;它确实是一个很棒的免费工具,但对您没有太大帮助

  2. 尝试一些在线工具(尽管谁知道数据将发送到哪里)

  3. 任何其他ASCII编辑器,在我看来都是由于文件大小以及某些控制字符(?)导致它们崩溃了