показать все таблицы в DB2 с помощью команды LIST - PullRequest
21 голосов
/ 04 мая 2010

Это смущает, но я не могу найти способ перечислить имена таблиц в нашей базе данных DB2. Вот что я попробовал:

root@VO11555:~# su - db2inst1
root@VO11555:~# . ~db2inst1/sqllib/db2profile
root@VO11555:~# LIST ACTIVE DATABASES

Мы получаем эту ошибку: SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

Ниже приведен номер версии DB2.

root@VO11555:~# db2level
DB21085I  Instance "db2inst1" uses "64" bits and DB2 code release "SQL09071"
with level identifier "08020107".
Informational tokens are "DB2 v9.7.0.1", "s091114", "IP23034", and Fix Pack
"1".
Product is installed at "/opt/db2V9.7".

Ответы [ 6 ]

30 голосов
/ 21 мая 2012

Чтобы получить список таблиц для текущей базы данных в DB2 ->

Подключение к базе данных:

db2 connect to DATABASENAME user USER using PASSWORD

Запустите этот запрос:

db2 LIST TABLES

Это эквивалент SHOW TABLES в MySQL.

Возможно, вам придется выполнить «set schema myschema» для правильной схемы перед запуском команды list tables. По умолчанию при входе ваша схема совпадает с вашим именем пользователя, которое часто не содержит таблиц. Вы можете использовать 'значения текущей схемы', чтобы проверить, какая схема в данный момент установлена.

20 голосов
/ 20 марта 2014

Подключение к базе данных:

db2 connect to <database-name>

Список всех таблиц:

db2 list tables for all

Чтобы вывести список всех таблиц в выбранной схеме, используйте:

db2 list tables for schema <schema-name>

Чтобы описать таблицу, введите:

db2 describe table <table-schema.table-name>

кредит http://onewebsql.com/blog/list-all-tables

17 голосов
/ 04 мая 2010
select * from syscat.tables where type = 'T'

вы можете захотеть ограничить запрос своей табхемой

5 голосов
/ 14 марта 2017

Я использую db2 7.1 и SQuirrel. Это единственный запрос, который работал для меня.

select * from SYSIBM.tables where table_schema = 'my_schema' and table_type = 'BASE TABLE';
2 голосов
/ 25 февраля 2014

Запустите эту командную строку в предпочитаемом сеансе оболочки:

db2 "select tabname from syscat.tables where owner = 'DB2INST1'"

Может быть, вы хотите изменить имя владельца, и вам необходимо проверить список текущих владельцев?

db2 "select distinct owner from syscat.tables"
0 голосов
/ 04 мая 2010

Вы установили пользователя db2inst2, я думаю, я помню, что db2inst1 очень административный

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