Как я могу создать псевдоним схемы в DB2 на System z? - PullRequest
2 голосов
/ 14 октября 2011

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

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

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

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

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

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

1 Ответ

2 голосов
/ 14 октября 2011

Я предполагаю, что под 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'

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

...