DB2 SQL запрос для сравнения 2 схем - PullRequest
1 голос
/ 14 октября 2011

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

Мне сказали написать запрос для нашей базы данных DB2, используя Toad для взаимодействия, который сравнит 2 схемы и даст результат, если будут какие-либо различия. Я знаю, что такая возможность существует в Toad, но по каким-то причинам наш администратор БД не хочет ее использовать. Покупка дополнительного программного обеспечения не вариант.

У меня очень ограниченные знания / опыт работы с SQL, и это одна из моих «учебных» задач. Я не добился большого прогресса и чувствую себя очень застрявшим. Может ли кто-нибудь предложить мне предложения? Помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 25 июля 2012

Попробуйте IBM Data Studio, это бесплатно, вы можете выбрать любые 2 объекта и сравнить между ними.

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

Я предполагаю, что под схемами вы имеете в виду схемы таблицы, верно?Вся эта информация доступна через представления схемы syscat.Посмотрите, например, на SYSCAT.TABLES и SYSCAT.COLUMNS или смотрите документацию для получения дополнительной информации.Вы можете запросить эти представления, как и любое другое представление / таблицу, поэтому для сравнения, если две таблицы содержат одинаковые столбцы, вы можете сделать что-то вроде:

  SELECT colname, colno, typeschema, typename FROM syscat.columns WHERE tabname = 'tab1' AND tabschema = 'schema'
  EXCEPT
  SELECT colname, colno, typeschema, typename FROM syscat.columns WHERE tabname = 'tab2' AND tabschema = 'schema'

Это, например, не вернет все столбцы, которыенаходятся в tab1, но не в tab2.

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