レガシー データベース システムから情報をエクスポートする必要があります。データベースは「進捗」データベースであり、情報は拡張子 .b1 のファイルに保存されます。
すべてのデータベース テーブルをテキスト ファイルにエクスポートする最も簡単な方法は何ですか?
レガシー データベース システムから情報をエクスポートする必要があります。データベースは「進捗」データベースであり、情報は拡張子 .b1 のファイルに保存されます。
すべてのデータベース テーブルをテキスト ファイルにエクスポートする最も簡単な方法は何ですか?
.b1 ファイルは進捗データベースの一部ですが、実際にはデータベース自体ではありません。「変更前イメージ」データが含まれています。エラー/ロールバックなどの場合にデータベースが元に戻すことができるように、トランザクションを追跡するために使用されます。そのファイルのデータは実際には役に立ちません。
必要なのはデータベースファイルです。通常、.db、.d1、.d2、d3 などの名前が付けられます。
ただし、これらの (バイナリ) ファイルを読み取るのは非常に困難です。それらがどのように構築されているかについての仕様があるかどうかさえわかりません。すべてのデータをテキストファイルとしてダンプするためのツールに組み込まれている Progress を使用する方がはるかに簡単です。これらのテキスト ファイルは、Python のいくつかの単純なプログラムで簡単に読み取ることができます。システムにデータベースがインストールされている場合は、データベースなどにサービスを提供するプログラムを含むディレクトリが見つかります。そこにはいくつかのユーティリティもあります。
OS や Progress のバージョンによっては、見た目が少し異なる場合があります。データ管理ユーティリティに入り、Admin => Dump Data and Definitions に移動します。
データ定義 (スキーマ) の結果ファイル .df とデータ自体の .d を見ると、それがどのようにフォーマットされているかを理解できるはずです。リレーションはデータベースにまったく保存されません。Progress 環境では、基本的に DB にアクセスするアプリケーションにのみ存在します。
さまざまな形式のデータのエクスポートを選択することもできます (「テキスト」がおそらく最も興味深いでしょう)。
プログラムで Progress 環境にアクセスできる場合は、個々のテーブルをエクスポートする小さなプログラムを作成する方が簡単かもしれません。これにより、「table1」のセミコロンで区切られたファイルが作成されます。
OUTPUT TO C:\temp\table1.txt.
FOR EACH table1 NO-LOCK:
EXPORT DELIMITER ";" table1.
END.
OUTPUT CLOSE.