Файлы AS400 — преобразование PF и LF в SQL

Я работаю в среде IBM, особенно с машинами AS400 и базами данных DB2.
Моя следующая задача — преобразовать все возможные файлы из PF и LF в SQL (например, CREATE TABLE... и CREATE VIEW... ).

Бывают ли случаи, когда я не могу этого сделать?
Я знаю, что для множественного формата файла записи вы не можете, это правда?


person LppEdd    schedule 28.07.2016    source источник
comment
FWiW, если нет конкретной известной ценности от внесения такого изменения с DDS на SQL, это будет изменением ради изменения; введение изменения без конкретной цели скорее вызовет проблемы, чем из-за того, что изменение не было сделано\внесено. Есть некоторые, кто может делать дикие заявления о преимуществах таких слепых изменений, но в отличие от таких продавцов змеиного масла, есть другие, которые лучше понимают глупость - хотя бы по опыту.   -  person CRPence    schedule 01.08.2016


Ответы (3)


С помощью System i Navigator на ПК подключитесь к своему серверу и перейдите к базам данных и схеме. Нажмите «Таблицы» или «Представления», чтобы просмотреть список (возможно, все) PF или LF в этой библиотеке. Затем щелкните правой кнопкой мыши выбор и выберите «Создать SQL». Я предлагаю выбрать генерацию в «Выполнить сценарии SQL».

Результатом будет сценарий SQL с инструкциями CREATE TABLE или CREATE VIEW для всех выбранных объектов. Наиболее важные операторы LABEL также будут включены для атрибутов столбцов. Вы можете сохранить сценарий в файл .SQL на ПК или в сетевом ресурсе. Обычно я копирую/вставляю сценарий, а не сохраняю его, но вы захотите поэкспериментировать, чтобы понять, как в вашем случае могут быть сгенерированы окончания строк (CR и LF).

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

Что касается многоформатных LF, я не думаю, что видел их использование в какой-либо системе, с которой я работал, с тех пор, как SQL стал полностью доступным. Поскольку хорошего эквивалента SQL не существует, маловероятно, что существует какой-либо автоматизированный метод. Может быть, кто-то знает неясную возможность.

Если ваш вопрос касается среды System/36, отредактируйте свой вопрос, указав это. Могут потребоваться многочисленные дополнительные комментарии.

person user2338816    schedule 29.07.2016
comment
Потрясающий! Между прочим, нет System/36! Использует ли System Navigator команду QSQGNDDL для создания оператора SQL? - person LppEdd; 29.07.2016
comment
@LppEdd Да, это так. - person Adrian Bannister; 29.07.2016
comment
@LppEdd, переход от DDS к SQL DDL хорошо задокументирован. Взгляните на главу 9 Модернизация приложений IBM i от базы данных до пользователя. Интерфейс и все, что между ними. Что в основном содержит содержание этой старой книги Redbook Модернизация доступа к данным приложений IBM eServer iSeries — дорожная карта Краеугольный камень - person Charles; 29.07.2016

Да, бывают случаи, когда файл невозможно «преобразовать в SQL».
Многоформатная логика — один из таких случаев. Программа описываемого медосмотра является другой. Могут быть и другие, где API не может генерировать DDL. Это звучит так, как будто вы заменяете IBM i чем-то другим. Имейте в виду, что DB2 для i несколько отличается от диалекта DB2 LUW и сильно отличается от MS SQL Server или MySQL. Потребуется серьезное тестирование, чтобы убедиться, что данные соответствуют желаемым.

person Buck Calabro    schedule 29.07.2016

Да, один случай - это когда файл имеет более одного члена. Любой pf с максимальным числом членов больше 1 вызовет проблемы. Вы можете создать список всех PF с несколькими членами с помощью команды dspfd.

dspfd file(*all/*allusr) type(*mbr) output(*outfile) outfile(mylib/myfile)

Найдите во внешнем файле максимальное количество участников > 1.

Посмотрите здесь для получения дополнительной информации, мы называем это Cruikshanking там, где я работаю

person danny117    schedule 29.07.2016
comment
PF с несколькими элементами почти напрямую можно преобразовать в таблицы SQL, хотя для этого могут потребоваться некоторые незначительные программные изменения, а также добавление столбца или двух, идентифицирующих данные элемента. Кроме того, для хорошо финансируемых сайтов DB2 Multisystem может преобразовать участников в разделы. - person user2338816; 29.07.2016
comment
@user2338816 user2338816 вы можете добавить изменение столбца, ключи сохранят систему GIGO на месте. Однако в V7.2 перенос на DDL-таблицы — пустая трата человеческих ресурсов. powerwire.eu/ - person danny117; 30.07.2016
comment
Это правда, и по мере развития SQE те, кто все еще полагаются на Query/400 или OPNQRYF и т. д., увидят облегчение. Однако не уверен, как это связано с этим вопросом. Преобразование в DDL дает преимущества, выходящие далеко за рамки этих двух областей, которые, как мы надеемся, исчезнут. - person user2338816; 30.07.2016