Создание таблицы MsSql из файла Cobol fd - PullRequest
1 голос
/ 04 августа 2011

У меня есть следующие файлы COBOL: .DAT, .IDX и файл fd (определение файла).Мы используем COBOL Net Express от MicroFocus .

  1. Теперь сначала я хотел бы создать таблицу MsSql из этого определения файла Cobol.Определение файла имеет это внутри:

    Запись данных FD PREGLA IS FPG-REC.
    01 FPG-REC.
    02 FPG-STA PIC X (01).
    02 FPG-KEY.
    03 PIC FPG-FRM X (02).
    03 PIC FPD X (02).
    03 PIC 9 FPG-DOK 9 (08).
    02 PIC FPG POZ 9(06) BINARY.
    02 FPG-PRM.
    03 FPG-IND PIC 9 (01) происходит 10 раз.
    ......... и т. Д.

Можно ли импортировать этот файл в Microsoft SQL Server 2008?Мы также используем Sql сервер Managment studio.Теперь я попробовал мастер импорта и экспорта SQL-сервера, но у него нет импорта для этого типа файла.

Я также посмотрел в NET Express, но безуспешно.Возможно ли вообще получить определение таблицы SQL из COBOL fd?

1 Ответ

2 голосов
/ 04 августа 2011

Создание определений таблиц SQL из макетов записей COBOL не всегда прямой процесс (хотя идти другим путем довольно просто).

Проблема в том, что макеты записей COBOL могут быть довольно сложными с различными Наложения (переопределения Кобола) и денормализации (Происхождение Кобола). Это в значительной степени победить большинство попыток автоматизировать процесс отображения сложной записи COBOL в макет таблицы SQL.

Отображение типа данных также может быть проблемой. Файлы Net Express могут быть создан для целевых сред ASCII или EBCDIC (IBM Mainframe). Если ваши файлы закодированы в EBCDIC, вам, скорее всего, придется написать специальное программное обеспечение для преобразования так как Ваш файл содержит смешанные символьные / числовые данные (могут быть продукты сторонних производителей, которые могут автоматизировать или частично автоматизировать этот тип преобразования, но я не знаком с ними). ​​

Попробуйте посмотреть один из .DAT файлов с помощью простого текстового редактора (например, блокнота). Если Вы можете прочитать данные персонажа, тогда они основаны на ASCII - и у вас есть шанс на бой загрузки данных без особых усилий по конвертации.

Определения полей COBOL, которые PIC X содержат данные символов и переводить непосредственно в SQL CHAR данные аналогичной длины (то есть PIC X(4) становится CHAR(4)).

Определения полей COBOL, определенные как BINARY, переводятся в SQL INTEGER. Будь целое число Длинный или короткий зависит от количества цифр. Например, PIC S9(8) BINARY указывает двоичное целое число со знаком, состоящее из 8 цифр, которое занимало бы 4 байта. С другой стороны, PIC S9(4) BINARY имеет только 4 цифры, поэтому занимал бы 2 байта (короткое целое).

Другим распространенным определением поля COBOL является PACKED-DECIMAL или COMP-3. Эти поля может переводить в SQL DECIMAL типы данных.

SimoTime предоставляет очень хороший обзор для нескольких Определения полей COBOL. Разработка перевода в соответствующий тип данных SQL не должно быть сложно.

Примечание 1: Из фрагмента макета записи COBOL, представленного в вашем вопросе, я вижу предложение OCCURS. Из-за этого результирующая таблица не будет даже быть в первой нормальной форме. Этими таблицами может быть очень трудно управлять в среде баз данных.

Примечание 2: Используемые данные будут найдены в файлах .DAT. Формат записи будет соответствовать определению записи COBOL. Файлы .IDX содержат данные индексации, используемые MicroFocus при чтении / записи. Вы можете игнорировать их.

...