dBeaver (CE): соединение DB2 LUW с SQL ERROR 42704. Схема таблицы не открывается, но может писать запросы SQL

Примерно через полтора года я, наконец, смог подключиться к базе данных DB2, которая у нас есть, через dBeaver. Соединение успешно установлено как LUW (наша db2 — это z/os). Я смог получить необходимые драйверы после установки IBM Data Studio.

Как только я подключаюсь, я спускаюсь по схеме, перехожу к таблицам и, щелкнув по ней, получаю следующую ошибку.

SQL Error [42704]: SYSCAT.SCHEMATA IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.69.56
SYSCAT.SCHEMATA IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.69.56
THE DESCRIBE STATEMENT DOES NOT SPECIFY A PREPARED STATEMENT. SQLCODE=-516, SQLSTATE=26501, DRIVER=3.69.56
THE CURSOR SQL_CURLH200C1 IS NOT IN A PREPARED STATE. SQLCODE=-514, SQLSTATE=26501, DRIVER=3.69.56
SQL Error [42704]: SYSCAT.SCHEMATA IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.69.56

Однако, если проигнорировать ошибку и перейти к новому SQL-запросу и написать простой

Select * from schema.table

он отлично работает и дает результаты, которые я хочу.

Учитывая время, которое я потратил, чтобы добраться сюда, этого достаточно, но для развертывания в качестве решения в моем отделе мне нужно иметь возможность просматривать список таблиц (схему).

Любая помощь будет потрясающей.

EDIT1: проблема в том, что нет SCHEMA с именем SYSCAT и нет таблицы с именем SCHEMATA.


person Rahul P    schedule 12.10.2018    source источник
comment
Я предполагаю, что вы используете файл класса db2java.zip, поставляемый с версией Db2 для z/OS? Можете ли вы подтвердить, откуда вы взяли драйвер?   -  person Hogstrom    schedule 12.10.2018
comment
Наши ИТ отстой.... и я не могу не подчеркнуть этого. Я дал им именно то, что мне было нужно, и они все еще были потеряны. После долгих поисков и после установки IBM Data Studio я смог найти оба нужных мне файла драйверов. Я не IT, кстати. Вот два файла, которые я использую в качестве драйверов: db2jcc.jar и db2jcc_license_cisuz.jar. Не уверен, что это ответ на ваш вопрос   -  person Rahul P    schedule 12.10.2018
comment
Смотрите мой ответ ниже... Я думаю, что это отвечает на вопрос. Это проблема с драйвером. Если вам нужна дополнительная помощь, прокомментируйте ответ.   -  person Hogstrom    schedule 12.10.2018
comment
Драйверы сервера данных можно загрузить отсюда www-01.ibm.com /support/docview.wss?uid=swg27016878. Те, что в Data Studio, такие же, но, возможно, не последний уровень исправления.   -  person Paul Vernon    schedule 12.10.2018


Ответы (3)


Каталог z/OS Db2 имеет другие имена, чем те, которые используются в Db2 на распределенных серверах (Linux Unix Windows, также известный как LUW). Вот список объектов в Db2. z/OS, которые вы можете просмотреть.

Похоже, вы используете dBeaver для навигации через пользовательский интерфейс по объектам в Db2 for z/OS. Вам нужно убедиться, что у вас есть драйвер db2 jcc, предназначенный для z/OS Db2. Похоже, вы используете один из LUW, поскольку SYSCAT.SCHEMATA является объектом LUW, а не объектом z/OS.

Ваш другой запрос работает, потому что вы указываете известное имя таблицы. Другие запросы должны быть в порядке. Проблема в том, что интерфейс в dbeaver просматривает системные объекты Db2 для LUW, а не для z/OS. Это будет продолжаться до тех пор, пока вы не решите проблему с драйвером.

person Hogstrom    schedule 12.10.2018
comment
Ты обалденный. Посмотрев на ваше решение, как я уже упоминал изначально, я использовал LUW для подключения. Мне не удалось найти z/os в качестве опции при настройке соединения с DB2. Я использовал панель поиска и набрал то же самое, а затем из ниоткуда получил вариант. Как только я добавил информацию, сменил драйвер с MS Access на DB2, сослался на те же 2 драйвера, о которых я упоминал выше, а затем на главном экране изменил требуемую базу данных/схему на просто базу данных, игнорирующую схему, все заработало отлично. - person Rahul P; 12.10.2018
comment
Удивительно слышать, что это исправлено. Проехав распределенные пути и пути z/OS, мне (не)повезло, что я ударился головой о несколько стен :) - person Hogstrom; 12.10.2018

Драйверы IBM Data Server также требуют настройки на стороне сервера. См. эту информацию https://www.ibm.com/support/knowledgecenter/SSEPEK_12.0.0/java/src/tpc/imjcc_jccenablespsandtables.html

person Chris    schedule 12.10.2018
comment
Есть ли фрагмент связанной страницы, которую вы можете процитировать здесь? Ссылки имеют свойство ломаться со временем. - person Erigami; 12.10.2018

В DBeaver при создании подключения выберите параметр «Драйвер DB2 z/OS» в раскрывающемся списке Db2 при подключении к DB2 для z/OS.

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

person Paul Vernon    schedule 12.10.2018