Я хочу добавить новое поле в физический файл, но в нем нет DDS. В этой библиотеке присутствует только объект (lib1). Источник находится в другой библиотеке (назовите ее lib2). Я внес изменения в файл в lib2Как мне отразить эти изменения в lib1 без компиляции и потери данных.
Все, что вам нужно, это:
CHGPF FILE(lib1/file) SRCFILE(lib2/qddssrc)
Он будет корректировать файл, сохраняя любые существующие записи, а также корректировать любые связанные логические файлы.Я бы перекомпилировал программы, которые касаются файлов, чтобы избежать проверки уровня, или использовал «LVLCHK (* NO)» в команде CHGPF.
Я предполагал, что, поскольку вы изменили файл в lib2, источник существуеттам и по авторитетным причинам вы не можете скопировать в lib1.Если в lib2 нет источника, есть полезная утилита:
https://www.mcpressonline.com/programming-other/cl/retrieve-dds-source-for-a-physical-or-logical-file
как насчет использования sql как
alter table library.file add column abc char(25) ccsid 37 not null default ''
, затем измените проверку уровня, чтобы избежать компиляции вашей программы
CHGPF FILE(library/file) LVLCHK(*NO)