2011-08-04 13 views
1

ファイルFD私は、次のCOBOLファイルがあります.DAT、.IDXとFD(ファイル定義)ファイルを。我々はCOBOL Net Express from MicroFocusを使用しています。コボルからMSSQLテーブルを作成する

  1. は今、最初に私は、このCOBOLファイルdefinitonからMSSQLテーブルを作成したいと思います。ファイルdefintionは、この内部にあります。

    FD PREGLAデータレコードは、FPG-RECです。
    01 FPG-REC。
    02 FPG-STA PIC X(01)。
    02 FPG-KEY。
    03 FPG-FRM PIC X(02)。
    03 FPG-ODD PIC X(02)。
    03 FPG-DOK PIC 9(08)バイナリ。
    02 FPG-POZ PIC 9(06)バイナリ。
    02 FPG-PRM。
    03 FPG-IND PIC 9(01)10時間経過。
    .........ので

上では、Microsoft SQL Server 2008のには、このファイルをインポートすることは可能ですか?我々はまた、SQL Serverの管理スタジオを使用しています。今私はSQLサーバーのインポートとエクスポートウィザードを試しましたが、この種のファイルのインポートはありません。

私はまた、しかし、運のない、NET Expressで見てきました。 COBOL fdからSQLテーブル定義を取得することも可能ですか?

答えて

2

COBOLレコードレイアウトからSQLテーブル定義を作成することは、常に という単純な処理ではありません(ただし、他の方法はかなり簡単です)。

問題は、様々な オーバーレイ(COBOL REDEFINES)と非正規化(COBOL OCCURS)でCOBOLレコードレイアウトがかなり複雑になる可能性があることです。これらはかなり は、複雑なCOBOLレコードを SQLテーブルレイアウトにマッピングするプロセスを自動化しようとするほとんどの試みを打ち負かしています。

データタイプマッピングは、少し難題かもしれません。 Net Expressファイルは、ASCIIまたはEBCDIC(IBM Mainframe)ベースの環境のいずれかを対象にするために作成することができます。 あなたのファイルが がEBCDICでエンコードされている場合は、あなたのファイルが混在文字/数値データが含まれている ので、あなたが最も可能性の高いカスタム変換ソフトウェア を記述する必要があります(自動、また​​は一部を自動化し、変換のこのタイプの私できるサードパーティ製品があるかもしれません彼らには馴染みがない)。

シンプルなテキストエディタ(メモ帳など)で.DATのいずれかのファイルを見てみてください。 文字データを読み取ることができるのであれば、それはASCIIベースであり、多くの追加の変換作業を行うことなくデータをロードするための戦いのチャンスがあります( )。 PIC X何かある

COBOLのフィールド定義文字データが含まれていると (すなわちPIC X(4)CHAR(4)なり)SQLに直接同様の長さのCHARデータを変換します。 BINARYとして定義

COBOLフィールドの定義は、SQL INTEGERに変換されます。整数 が長いか短いかは、桁数によって異なります。たとえば、PIC S9(8) BINARYは、 を8桁の符号付き2進整数で指定します。これは4バイトを占有します。一方、 PIC S9(4) BINARYは4桁しかないので、2バイト(短い整数)を占有します。

もう1つの一般的なCOBOLフィールド定義は、PACKED-DECIMALまたはCOMP-3です。これらのフィールド は、データタイプDECIMALに変換される場合があります。

SimoTimeは、いくつかの COBOLフィールド定義の非常に良い概要を提供します。適切なSQLデータタイプ への変換作業は困難ではありません。

注1:あなたの質問に記載されているCOBOLレコードレイアウトの断片から、私はOCCURS節を見ることができます。 このため、結果の表は でも第1正規形にはなりません。 これらのテーブルは、データベース環境で管理するのに非常に苦労する可能性があります。

注2:使用可能なデータは.DATファイルにあります。レコードレイアウトは、COBOLレコード定義に対応します。 .IDXファイルには、読み取り/書き込み時にMicroFocusが使用するインデックスデータが含まれています。これらは無視することができます。

+0

お返事ありがとうございます。私はCOBOL fdからSQLテーブル定義を得ることが可能かどうか尋ねたところで、私はすでに誤っていました。私が言及していない大きな問題は、約100個のファイルがMsSql rdbに変換されていることです。私は、この種の自動化された変換のために存在するすべてのツールが販売用であり、フリーウェアは存在しないことを発見しました。しかし、いくつかのCOBOLフィールド定義の概要のリンクを提供してくれてありがとう、我々が手にしなければならないなら、これは良い参考になるだろう。 –

+0

続行:また、First Normal形式でない場合は、管理が難しいと言いました。 COBOLからMsSql rdbへの自動変換用のこれらの商用ツールは、1,2,3または4の標準形式である必要がありますか? –

+0

@ Jernej正規化されていないテーブルは、ほとんどのRDBMSで作成、照会、更新できます。正規化は、DBMSの実際の要件*ではありません。正規化されていないデータベースは、アプリケーションの長期的な悲嘆につながります。いくつかの[このSOの質問](http://stackoverflow.com/questions/246701/what-is-normalisation-or-normalization-why-is-it-important)の答えを見て正規化がなぜであるかを見てください良い考え。ファイルシステムを介して管理されるデータのRDBMSへの変換は、一般的に多くの分析を必要とするものであり、「オフザフール」変換ツールでは容易に自動化されません。 – NealB

関連する問題