Как создать псевдоним схемы в DB2 на System z?

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

Однако некоторые клиенты сохранили свои данные в другой схеме PLUGH. Есть ли способ в DB2/z создать псевдоним всей схемы XYZZY для ссылки на объекты в схеме PLUGH?

Инструментарий создания отчетов работает поверх ODBC с использованием драйверов DB2 Connect Enterprise Edition или Personal Edition 9.1.

Я знаю, что могу настроить индивидуальные псевдонимы для таблиц и представлений, но у нас много сотни этих объектов базы данных, и это будет серьезной проблемой. Было бы намного проще просто заставить DB2 автоматически транслировать всю схему целиком.

Имейте в виду, что мы не стремимся работать с несколькими схемами, нам просто нужен способ перенаправить все запросы к объектам базы данных на одну схему с разными именами.

Конечно, если есть способ получить несколько схем для каждого соединения, это тоже было бы хорошо. Но я бесполезен.


person paxdiablo    schedule 14.10.2011    source источник


Ответы (1)


Я предполагаю, что под схемой DB/2 вы подразумеваете квалифицирующее имя в каком-то имени объекта, состоящем из двух частей. Например, если имя таблицы из двух частей: PLUGH.SOME_TABLE_NAME. Вы хотите определить XYZZY как псевдоним для PLUGH, чтобы программа отчетности могла ссылаться на таблицу как XYZZY.SOME_TABLE_NAME.

Я не знаю, как это сделать напрямую (насколько мне известно, имена схем не используют псевдонимы). Возражение, которое у вас есть, чтобы определить отдельные имена псевдонимов, используя что-то вроде:

CREATE ALIAS XYZZY.SOME_TABLE_NAME FOR PLUGH.SOME_TABLE_NAME 

заключается в том, что их сотни, что делает это настоящей болью. Думали ли вы об использовании SELECT для каталога DB/2 для создания операторов CREATE ALIAS для каждого из объектов, на которые вам нужно ссылаться? Что-то типа:

SELECT 'CREATE ALIAS XYZZY.' || NAME || ' FOR PLUGH.' || NAME
FROM SYSIBM.SYSTABLES
WHERE CREATOR = 'PLUGH'

Запишите вывод в файл, затем выполните его. Команд может быть сотни, но, по крайней мере, вам не нужно их писать.

person NealB    schedule 14.10.2011