Я думаю, у вас есть идея сохранить схемы и имена таблиц в таблице. Ваше представление создается в этой схеме с помощью внутреннего соединения этой схемы и таблицы с syscolumns для создания представления.
При желании вы можете рассмотреть возможность использования DDS вместо SQL для создания логического файла (представления) по syscolumns для каждой библиотеки. Не знаю, с какими библиотеками вы имеете дело, но если их всего несколько, это может сработать.
Чтобы использовать DDS с выбором:
SYSCOLUMNS уже является представлением, поэтому для создания DDS LF для Select / Omit необходимо создать его поверх базового физического файла QADBIFLD (также задействован QADBXSFLD, но я не думаю, что вам нужны какие-либо поля из этого файла для этого приложения ):
A R QDBIFLD PFILE(QADBIFLD)
A S DBILB2 COMP(EQ 'SCHEMANAME')
A S DBILFI COMP(EQ 'TABLENAME')
Вы можете использовать DBILIB и DBIFIL, если ваша схема и имена таблиц 10 или меньше. Если вам нужны имена SYSCOLUMN, вам нужно переименовать некоторые поля.
Райан, я не прав, так как вы могли бы сделать это с помощью представления SQL:
CREATE VIEW MYSCHEMA/MYSYSCOLUMN AS
SELECT *
FROM SYSCOLUMNS
WHERE SYSCOLUMNS.DBNAME = 'SCHEMANAME'
AND SYSCOLUMNS.TBNAME = 'TABLENAME'
Чтобы использовать объединение:
CREATE TABLE MYSCHEMA/MYTABLESELECT
( MYSCHEMA VARCHAR (128),
MYTABLE VARCHAR (128) );
INSERT INTO MYTABLESELECT VALUES( 'SCHEMANAME', 'TABLENAME' );
CREATE VIEW MYSCHEMA/MYSYSCOLUMN AS
SELECT SYSCOLUMNS.*
FROM SYSCOLUMNS, MYTABLESELECT
WHERE SYSCOLUMNS.DBNAME = MYTABLESELECT.MYSCHEMA
AND SYSCOLUMNS.TBNAME = MYTABLESELECT.MYTABLE;
Заказы не выполняются ни в DDS, ни в представлении.