1

我需要从遗留数据库系统中导出信息。该数据库是“进度”数据库,信息存储在扩展名为 .b1 的文件中

将所有数据库表导出到文本文件的最简单方法是什么?

4

1 回答 1

2

.b1 文件是进度数据库的一部分,但实际上不是数据库本身。它包含“前图像”数据。它用于跟踪事务,以便数据库可以在错误/回滚等情况下撤消。该文件中的数据实际上对您没有帮助。

您想要的是数据库文件。通常命名为 .db、.d1、.d2、d3 等。

但是读取这些(二进制)文件将非常棘手。我什至不确定它们是如何构建的。使用 Progress 内置工具将所有数据转储为文本文件会容易得多。这些文本文件可以很容易地被 Python 中的一些简单程序读取。如果您在系统上安装了数据库,您将找到一个目录,其中包含为数据库提供服务的程序等。在那里您还将找到一些实用程序。

根据操作系统和进度的版本,它可能看起来有点不同。您可能希望进入 Data Administration 实用程序并进入 Admin => Dump Data and Definitions。

进度数据管理屏幕截图

如果您查看数据定义(模式)的结果文件 .df 和数据本身的 .d 文件,您应该能够弄清楚它的格式。关系根本不存储在数据库中。在 Progress 环境中,它们基本上只存在于访问数据库的应用程序中。

您还可以选择各种格式的导出数据(“文本”可能是最有趣的)。

如果您可以通过编程方式访问 Progress 环境,那么编写一个导出单个表的小程序可能会更容易。这将为“table1”创建一个以分号分隔的文件:

OUTPUT TO C:\temp\table1.txt.
FOR EACH table1 NO-LOCK:
  EXPORT DELIMITER ";" table1.
END.
OUTPUT CLOSE.
于 2013-04-22T07:29:30.780 回答