Эквивалент Oracle SYS.GLOBAL_NAME или MS- SQL SYS.DATABASES для баз данных IBM DB2 / iSeries - PullRequest
0 голосов
/ 09 июля 2020

В настоящее время я пишу программу, которая позволяет пользователю выбирать между базами данных MS SQL, Oracle, DB2 и iSeries. Приложение построено на VB. NET, и выбор «типа базы данных» отображается на переключатели. Когда пользователь щелкает переключатель, он вызывает экземпляр DataSourceEnumerator каждого провайдера. На основании полученной информации он заполняет поле со списком ServerName именами серверов, которые счетчик обнаруживает и может выбрать пользователь.

Я хотел, чтобы эта же функциональность продолжалась во всем приложении. Поэтому для следующего поля со списком пользователю необходимо выбрать базу данных на этом сервере. Для MS SQL я выполняю запрос,

SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');

И Oracle я использую

select * from SYS.global_name.

Это работает именно так, как я планировал, потому что результаты добавляются в поле со списком для выбора пользователем. У меня проблемы с поиском запроса для IBM DB2 и / или iSeries, который мог бы обеспечить такую ​​же функциональность. Я прочитал документацию по обоим и не могу найти то, что ищу. Разве такой запрос невозможен в DB2 / iSeries? И если это будет правильный запрос?

1 Ответ

0 голосов
/ 09 июля 2020

Db2 for LUW: список всех активных баз данных в том же экземпляре, который управляет подключенной в данный момент базой данных. Неактивные локальные базы данных невидимы для этого запроса.

SELECT DB_NAME FROM TABLE(SNAP_GET_DB(NULL))

У вас должны быть соответствующие права доступа, чтобы использовать эту SNAP_GET_DB функцию.

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