可以将COBOL VISION数据库导出为逗号分隔的.csv吗?

时间:2011-08-30 16:09:50

标签: export cobol delimited-text

我们有一个基于AcuCobol和视觉文件的系统。

我们需要将整个数据文件转储到基于txt的文件中,以便导入到sql server中。

我们现在正在使用vutil来转储数据,但它正在创建一个固定宽度的文件,我们希望这是一个某种分隔的文件。我们现在使用的命令是:

vutil -unload -t sourcefile destinationfile

现在有没有人对此有任何体验,如果有的话,最适合的是什么呢?

3 个答案:

答案 0 :(得分:1)

Google是你的朋友......我做了一个快速搜索,并提出了NextForm声称将Vision转换为CSV(以及其他格式)。

从“精细打印”看起来你可以下载试用版,但是必须花费大约400.00美元来获得许可版本(不会删除随机记录)。

我绝对没有这个产品的经验,所以无法告诉你它是否真的能够完成这项工作。

修改

有时与其合作更有成效,而不是与遗留系统作斗争。

你看过AcuODBC了吗?这使Windows程序可以读取/导入 视觉文件。您可以使用它来从任何启用Windows ODBC的应用程序访问Vision文件。我相信您可能需要编译一个数据字典才能使其工作,但它可以在您所在的位置和您希望的位置之间建立桥梁。

另一种方法可能是在AcuCobol中编写自己的转储程序。阅读记录,格式和 写下来。编写这种复杂性的Cobol程序对于提供文件的任务来说不应该太具挑战性 没有复杂的结构(例如,同一文件中的多个记录类型/布局,或者在一个文件中重复字段) 单曲)。

如果需要对单个Vision文件进行后处理,您的任务将变得更加复杂 多个SQL Server表。不幸的是,复杂的转换是公平的 与Cobol遗留系统相同 因为他们倾向于使用丰富/复杂/非规范化的文件结构(不像SQL最适合使用 规范化表格数据)。

如果Vision文件比单个SQL Server表更复杂,那么也许您可以考虑使用 AcuXML Interface 将文件转储为XML,然后使用XSLT处理器创建CSV或其他任何格式 需要从那里。这将允许您使用相当复杂的Cobol记录结构。再次, 这种方法意味着编写一些相当基本的AcuCOBOL字体结束程序。

根据你对我原帖的评论,你不是一个顽固的Cobol程序员。也许会的 一个好主意,与你工作中具有语言和工作知识的人合作 在进一步推动之前的环境。我觉得这个任务比“转储和加载”要复杂一点。

答案 1 :(得分:1)

我要做的就是完成工作:

使用JCL将表卸载到文件中。 批量使用此文件, 使用与表格描述相匹配的字帖: (例如:如果您的表有3列[ID],[NAME]和[ADDRESS],则创建一个CC-1副本:

 O1 CC-1 
    05 ID   PIC X (16).
    05 NAME PIC X (35).
    05 ADDRESS PIC X (35).

对于每一行,将该行移动到副本CC-1中。

创建第二个副本CC-2

  O1 CC-2 
    05 ID   PIC X (16).
    05 FILLER PIC X VALUE ';'.
    05 NAME PIC X (35).
    05 FILLER PIC X VALUE ';'.
    05 ADDRESS PIC X (35).
    05 FILLER PIC X VALUE ';'.

执行CC-1到CC-2的移动 写入输出。 这对于每一行。输入中会显示所有数据的CSV文件。

您可以重复使用批处理和JCL,只需更改记录的大小和副本的描述以匹配要卸载的表。

自由自在。 :)

答案 2 :(得分:0)

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

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